国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

補(bǔ)充:es與mysql之間的數(shù)據(jù)同步 2 使用分頁(yè)導(dǎo)入的方式把大量數(shù)據(jù)從mysql導(dǎo)入es

這篇具有很好參考價(jià)值的文章主要介紹了補(bǔ)充:es與mysql之間的數(shù)據(jù)同步 2 使用分頁(yè)導(dǎo)入的方式把大量數(shù)據(jù)從mysql導(dǎo)入es。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

本片文章只是對(duì)之前寫(xiě)的文章的補(bǔ)充,

es與mysql之間的數(shù)據(jù)同步

http://t.csdn.cn/npHt4

補(bǔ)充一:

之前的文章對(duì)于交換機(jī)、隊(duì)列、綁定,使用的是@bean,

而這里使用的是純注解版

在消費(fèi)方,聲明交換機(jī):

package com.hmall.search.mq;

import com.hmall.search.service.IsearchService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.yaml.snakeyaml.events.Event;

/**
 * @author ning
 * @since 2022/12/12 0:16
 */

@Slf4j
@Component
public class ItemListener {

    @Autowired
    private IsearchService isearchService;

    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(name = "up.queue"),//聲明隊(duì)列
            exchange = @Exchange(name = "item.topic",type = ExchangeTypes.TOPIC),//聲明交換機(jī)
            key = "item.up"http://聲明綁定關(guān)系
    ))
    private void listenItemUp(Long id){
        log.info("監(jiān)聽(tīng)到上架消息:"+ id);
        isearchService.saveitById(id);
    }

    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(name = "down.queue"),
            exchange = @Exchange(name = "item.topic",type = ExchangeTypes.TOPIC),
            key = "item.down"
    ))
    private void listenItemDown(Long id){
        log.info("監(jiān)聽(tīng)到下架消息:"+ id);
        isearchService.deleteItemById(id);
    }

}

補(bǔ)充二:

之前的文章是直接使用es操作數(shù)據(jù),新增和修改,這樣做不是很合適,而且沒(méi)有遵守單一原則,所以這里使用feign遠(yuǎn)程調(diào)用其他模塊的接口方法,

1、新建一個(gè)feign模塊(如果沒(méi)有的話)

可以參考

http://t.csdn.cn/GqMVN

2、在模塊中新建一個(gè)接口ItemClient(使用哪個(gè)模塊就用哪個(gè)模塊名+Client),在模塊中定義你要在es中調(diào)用的方法,(也就是es需要操作數(shù)據(jù)庫(kù),但是其他模塊已經(jīng)寫(xiě)完的方法,就不需要再寫(xiě)一遍了)

例如:需要根據(jù)id查詢數(shù)據(jù)庫(kù),就把其他模塊寫(xiě)完的根據(jù)id查詢數(shù)據(jù)庫(kù)的方法寫(xiě)到接口里

package com.hmall.client;

import com.hmall.common.dto.Item;
import com.hmall.common.dto.PageDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 商品模塊的遠(yuǎn)程調(diào)用
 *
 * @author ning
 * @since 2022/12/9 18:39
 */
//表示對(duì)應(yīng)的是itemservice服務(wù)器
@FeignClient("itemservice")
public interface ItemClient {

    //分頁(yè)查詢
    @GetMapping("/item/list")
    public PageDTO<Item> list(@RequestParam("page") Integer page, @RequestParam("size") Integer size);

    //根據(jù)id查詢數(shù)據(jù)
    @GetMapping("/item/{id}")
    public Item selectById(@PathVariable("id") Long id);
}

以上接口中還有分頁(yè)查詢的內(nèi)容,詳情可以參考

使用分頁(yè)導(dǎo)入的方式把大量數(shù)據(jù)從mysql導(dǎo)入es

http://t.csdn.cn/XECXD文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-527455.html

3、生產(chǎn)方和消費(fèi)方的代碼,只有消費(fèi)方新增的代碼有一點(diǎn)不同,其他的都一樣

    //注入es的工具類
    @Autowired
    private RestHighLevelClient client;
    //注入feign遠(yuǎn)程調(diào)用的接口
    @Autowired
    private ItemClient itemClient;

    @Override
    public void saveitById(Long id) {
        try {
            //使用feign的遠(yuǎn)程調(diào)用接口,查詢數(shù)據(jù)庫(kù)
            //查詢一條商品數(shù)據(jù),并轉(zhuǎn)為json
            Item item = itemClient.selectById(id);
            ItemDoc itemDoc = new ItemDoc(item);
            String jsonString = JSON.toJSONString(itemDoc);

            //創(chuàng)建請(qǐng)求
            IndexRequest request = new IndexRequest("item").id(id.toString());
            //設(shè)置參數(shù)
            request.source(jsonString, XContentType.JSON);
            //執(zhí)行請(qǐng)求
            client.index(request, RequestOptions.DEFAULT);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

到了這里,關(guān)于補(bǔ)充:es與mysql之間的數(shù)據(jù)同步 2 使用分頁(yè)導(dǎo)入的方式把大量數(shù)據(jù)從mysql導(dǎo)入es的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用Flink CDC將Mysql中的數(shù)據(jù)實(shí)時(shí)同步到ES

    最近公司要搞搜索,需要把mysql中的數(shù)據(jù)同步到es中來(lái)進(jìn)行搜索,由于公司已經(jīng)搭建了flink集群,就打算用flink來(lái)做這個(gè)同步。本來(lái)以為很簡(jiǎn)單,跟著官網(wǎng)文檔走就好了,結(jié)果沒(méi)想到折騰了將近一周的時(shí)間…… 我也是沒(méi)想到,這玩意網(wǎng)上資源竟然這么少,找到的全部都是通過(guò)

    2024年02月11日
    瀏覽(25)
  • 使用Logstash和JDBC將MySQL的數(shù)據(jù)導(dǎo)入到Elasticsearch(ES)的過(guò)程

    使用Logstash和JDBC將MySQL的數(shù)據(jù)導(dǎo)入到Elasticsearch(ES)的過(guò)程包含多個(gè)步驟。請(qǐng)注意,首先你需要準(zhǔn)備好的JDBC驅(qū)動(dòng),Logstash實(shí)例,Elasticsearch實(shí)例,以及你希望導(dǎo)入的MySQL數(shù)據(jù)。 安裝Logstash JDBC Input Plugin :Logstash包含大量插件,其中一個(gè)就是JDBC Input Plugin,可以用于從JDBC兼容的數(shù)據(jù)庫(kù)

    2024年02月15日
    瀏覽(35)
  • 【clickhouse】ClickHouse與MySQL之間實(shí)時(shí)同步數(shù)據(jù)(MySQL引擎),將MySQL數(shù)據(jù)實(shí)時(shí)同步到clickhouse

    【clickhouse】ClickHouse與MySQL之間實(shí)時(shí)同步數(shù)據(jù)(MySQL引擎),將MySQL數(shù)據(jù)實(shí)時(shí)同步到clickhouse

    參考1:MySQL(通過(guò)該配置實(shí)現(xiàn)了實(shí)時(shí)同步) 參考2:experimental MaterializedMySQL 參考3:[experimental] MaterializedMySQL(包含設(shè)置 allow_experimental_database_materialized_mysql) MySQL引擎用于將遠(yuǎn)程的MySQL服務(wù)器中的表映射到ClickHouse中,并允許您對(duì)表進(jìn)行INSERT和SELECT查詢,以方便您在ClickHouse與MySQL之間進(jìn)行

    2024年01月16日
    瀏覽(16)
  • Mysql不同數(shù)據(jù)庫(kù)之間表結(jié)構(gòu)同步

    Mysql不同數(shù)據(jù)庫(kù)之間表結(jié)構(gòu)同步

    開(kāi)發(fā)環(huán)境的Mysql表結(jié)構(gòu)做了修改,要同步到其他環(huán)境數(shù)據(jù)庫(kù)中使用數(shù)據(jù)庫(kù)管理工具JookDB的表結(jié)構(gòu)同步功能就很方便。雖然Navicat也有這個(gè)功能但是有免費(fèi)的當(dāng)然是用免費(fèi)的。 用JookDB添加數(shù)據(jù)庫(kù)后在數(shù)據(jù)庫(kù)節(jié)點(diǎn)上右鍵選擇“同步結(jié)構(gòu)”即可開(kāi)始表結(jié)構(gòu)同步。 1.選擇結(jié)構(gòu)同步的源庫(kù)

    2024年02月05日
    瀏覽(24)
  • Elasticsearch和MySQL之間的數(shù)據(jù)同步問(wèn)題

    Elasticsearch和MySQL之間的數(shù)據(jù)同步問(wèn)題

    前言:大家好,我是小威,24屆畢業(yè)生,在一家滿意的公司實(shí)習(xí)。本篇文章參考網(wǎng)上的課程,介紹Elasticsearch和MySQL之間的數(shù)據(jù)同步問(wèn)題。 如果文章有什么需要改進(jìn)的地方還請(qǐng)大佬不吝賜教 ????。 小威在此先感謝各位大佬啦~~???? ??個(gè)人主頁(yè):小威要向諸佬學(xué)習(xí)呀 ??個(gè)人

    2023年04月19日
    瀏覽(12)
  • Mysql和ES、Redis數(shù)據(jù)同步方案匯總_redis同步數(shù)據(jù)從mysql到es

    Mysql和ES、Redis數(shù)據(jù)同步方案匯總_redis同步數(shù)據(jù)從mysql到es

    文章目錄 前言 一、數(shù)據(jù)同步方案 1.同步雙寫(xiě) [2.異步雙寫(xiě)(MQ方式)](#2MQhttpssocsdnnetsosearchqMQspm1001210130017020_53) 3.基于Mysql表定時(shí)掃描同步 [4.基于Binlog實(shí)時(shí)同步](#4BinloghttpssocsdnnetsosearchqBinlogspm1001210130017020_119) [二、數(shù)據(jù)遷移同步工具選型](#httpssocsdnnetsosearchqspm1001210130017020_141) 總結(jié)

    2024年04月23日
    瀏覽(26)
  • ELK增量同步數(shù)據(jù)【MySql->ES】

    ELK增量同步數(shù)據(jù)【MySql->ES】

    ? ? ? ? 1.? linux,已經(jīng)搭建好的logstash+es+kibana【系列版本7.0X】,es 的plugs中安裝ik分詞器 ES版本: ?Logstash版本: ?(以上部署,都是運(yùn)維同事搞的,我不會(huì)部署,同事給力) 1、在Logstash安裝目錄下【/usr/share/logstash】,新建XX.sh,內(nèi)容如下: 2. 在Logstash安裝目錄下【/usr/shar

    2024年02月11日
    瀏覽(21)
  • es與mysql的數(shù)據(jù)同步問(wèn)題

    es與mysql的數(shù)據(jù)同步問(wèn)題

    方案一:同步調(diào)用 ?缺點(diǎn):1.業(yè)務(wù)耦合 ? ? ? ? ? ? 2.降低整體性能 ? ? ? ? ? ? 3.當(dāng)一個(gè)業(yè)務(wù)出現(xiàn)問(wèn)題則直接卡死 方案二:異步通知(解除了兩個(gè)服務(wù)之間的耦合) ?缺點(diǎn):比較依賴與mq 方案三:監(jiān)聽(tīng)MySQL的binlog日志 ?三種方式優(yōu)缺點(diǎn)對(duì)比 ?方案二: 1.引入依賴 2.編寫(xiě)配置

    2023年04月17日
    瀏覽(22)
  • Logstash同步Mysql數(shù)據(jù)至ES

    Logstash同步Mysql數(shù)據(jù)至ES

    官方文檔 注意版本要和自己的es版本一致 下載地址:logstash 上傳至服務(wù)器并進(jìn)行解壓。 1、通過(guò)官網(wǎng)下載mysql連接jar包 下載地址:mysql 連接jar包 根據(jù)自己mysql版本和系統(tǒng)進(jìn)行選擇 ?? ? ? ? ? ? ? ? 2、在IDEA中復(fù)制msyql連接jar包 ? ? ? 將jar包移動(dòng)至/logstash/logstash-core/lib

    2024年02月10日
    瀏覽(20)
  • Mysql和ES數(shù)據(jù)同步方案匯總

    Mysql和ES數(shù)據(jù)同步方案匯總

    在實(shí)際項(xiàng)目開(kāi)發(fā)中,我們經(jīng)常將Mysql作為業(yè)務(wù)數(shù)據(jù)庫(kù),ES作為查詢數(shù)據(jù)庫(kù),用來(lái)實(shí)現(xiàn)讀寫(xiě)分離,緩解Mysql數(shù)據(jù)庫(kù)的查詢壓力,應(yīng)對(duì)海量數(shù)據(jù)的復(fù)雜查詢。這其中有一個(gè)很重要的問(wèn)題,就是如何實(shí)現(xiàn)Mysql數(shù)據(jù)庫(kù)和ES的數(shù)據(jù)同步,今天和大家聊聊Mysql和ES數(shù)據(jù)同步的各種方案。 為什么

    2024年01月20日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包