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

Elasticsearch實(shí)戰(zhàn)-數(shù)據(jù)同步(解決es數(shù)據(jù)增量同步)

這篇具有很好參考價(jià)值的文章主要介紹了Elasticsearch實(shí)戰(zhàn)-數(shù)據(jù)同步(解決es數(shù)據(jù)增量同步)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、數(shù)據(jù)同步問(wèn)題分析

之前測(cè)試的數(shù)據(jù)都是一次從mysql導(dǎo)入到es,隨著時(shí)間的推移,每天都有可能發(fā)生增刪改查,不可能每次都全量同步,所以需要考慮增量同步問(wèn)題。
Elasticsearch實(shí)戰(zhàn)-數(shù)據(jù)同步(解決es數(shù)據(jù)增量同步)

二、解決方案

1、同步調(diào)用

Elasticsearch實(shí)戰(zhàn)-數(shù)據(jù)同步(解決es數(shù)據(jù)增量同步)

缺點(diǎn):
耦合性高,服務(wù)之間會(huì)相互影響

2、異步通知

依賴消息隊(duì)列的可靠性
Elasticsearch實(shí)戰(zhàn)-數(shù)據(jù)同步(解決es數(shù)據(jù)增量同步)

3、監(jiān)聽(tīng)binlog

Elasticsearch實(shí)戰(zhàn)-數(shù)據(jù)同步(解決es數(shù)據(jù)增量同步)

4、方案對(duì)比

Elasticsearch實(shí)戰(zhàn)-數(shù)據(jù)同步(解決es數(shù)據(jù)增量同步)

三、案例-利用MQ實(shí)現(xiàn)Mysql與Elasticsearch數(shù)據(jù)同步

Elasticsearch實(shí)戰(zhàn)-數(shù)據(jù)同步(解決es數(shù)據(jù)增量同步)

1、導(dǎo)入hotel-admin項(xiàng)目

啟動(dòng):端口8099
Elasticsearch實(shí)戰(zhàn)-數(shù)據(jù)同步(解決es數(shù)據(jù)增量同步)

2、申明exchange、queue、RoutingKey

Elasticsearch實(shí)戰(zhàn)-數(shù)據(jù)同步(解決es數(shù)據(jù)增量同步)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-510827.html

/**
 * 定義隊(duì)列和exchange
 * @author edevp
 */
@Configuration
public class MqConfig {
    @Bean
    public TopicExchange topicExchange() {
        return new TopicExchange(MqConstants.EXCHANGE_NAME, true, false);
    }

    @Bean
    public Queue InsertQueue() {
        return new Queue(MqConstants.INSERT_QUEUE_NAME, true);
    }

    @Bean
    public Queue DeleteQueue() {
        return new Queue(MqConstants.DELETE_QUEUE_NAME, true);
    }

    @Bean
    public Binding insertBinding() {
        return BindingBuilder.bind(InsertQueue()).to(topicExchange()).with(MqConstants.INSERT_KEY);
    }

    @Bean
    public Binding deleteBinding() {
        return BindingBuilder.bind(DeleteQueue()).to(topicExchange()).with(MqConstants.DELETE_KEY);
    }

}

3、在hotel-admin中完成增刪改查的消息推送

 @PostMapping
    public void saveHotel(@RequestBody Hotel hotel){

        hotelService.save(hotel);
        rabbitTemplate.convertAndSend(MqConstants.EXCHANGE_NAME,MqConstants.INSERT_KEY,hotel.getId());
    }

    @PutMapping()
    public void updateById(@RequestBody Hotel hotel){
        if (hotel.getId() == null) {
            throw new InvalidParameterException("id不能為空");
        }
        hotelService.updateById(hotel);
        rabbitTemplate.convertAndSend(MqConstants.EXCHANGE_NAME,MqConstants.INSERT_KEY,hotel.getId());
    }

    @DeleteMapping("/{id}")
    public void deleteById(@PathVariable("id") Long id) {

        hotelService.removeById(id);
        rabbitTemplate.convertAndSend(MqConstants.EXCHANGE_NAME,MqConstants.DELETE_KEY,id);
    }

4、在hotel-demo中完成消息監(jiān)聽(tīng)并更新到es中


```java
/**
 * 消息監(jiān)聽(tīng)
 * @author edevp
 **/
@Component
public class HotelListener {

    @Autowired
    private IHotelService hotelService;

    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(name = MqConstants.INSERT_QUEUE_NAME),
            exchange = @Exchange(name = MqConstants.EXCHANGE_NAME, type = ExchangeTypes.TOPIC),
            key = MqConstants.INSERT_KEY
    ))
    public void listenHotelInsert(Long hotelId){
        // 新增
        hotelService.saveById(hotelId);
    }

    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(name = MqConstants.DELETE_QUEUE_NAME),
            exchange = @Exchange(name = MqConstants.EXCHANGE_NAME, type = ExchangeTypes.TOPIC),
            key = MqConstants.DELETE_KEY
    ))
    public void listenHotelDelete(Long hotelId){
        // 刪除
        hotelService.deleteById(hotelId);
    }
}

# 四、代碼倉(cāng)庫(kù)
hotel-admin:[https://gitee.com/edevp/hotel-admin](https://gitee.com/edevp/hotel-admin)(hotel-db-sync分支)
						
hotel-demo:[https://gitee.com/edevp/hotel-demo](https://gitee.com/edevp/hotel-demo)

到了這里,關(guān)于Elasticsearch實(shí)戰(zhàn)-數(shù)據(jù)同步(解決es數(shù)據(jù)增量同步)的文章就介紹完了。如果您還想了解更多內(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)文章

  • DataX實(shí)現(xiàn)Mysql與ElasticSearch(ES)數(shù)據(jù)同步

    DataX實(shí)現(xiàn)Mysql與ElasticSearch(ES)數(shù)據(jù)同步

    jdk1.8及以上 python2 查看是否安裝成功 查看python版本號(hào),判斷是否安裝成功 在datax/job下,json格式,具體內(nèi)容及主要配置含義如下 mysqlreader為讀取mysql數(shù)據(jù)部分,配置mysql相關(guān)信息 username,password為數(shù)據(jù)庫(kù)賬號(hào)密碼 querySql:需要查詢數(shù)據(jù)的sql,也可通過(guò)colums指定需要查找的字段(

    2024年02月05日
    瀏覽(24)
  • 【kafka】JDBC connector進(jìn)行表數(shù)據(jù)增量同步過(guò)程中的源表與目標(biāo)表時(shí)間不一致問(wèn)題解決...

    【kafka】JDBC connector進(jìn)行表數(shù)據(jù)增量同步過(guò)程中的源表與目標(biāo)表時(shí)間不一致問(wèn)題解決...

    〇、參考資料 時(shí)間不一致,差了8個(gè)小時(shí) (1)source (2)sink 即sink和source都加 ?\\\"db.timezone\\\":?\\\"Asia/Shanghai\\\", 并需要保持一直

    2024年02月11日
    瀏覽(16)
  • FlinkCDC從Mongodb同步數(shù)據(jù)至elasticsearch(ES) 新版

    網(wǎng)上挺多flinksql方式同步數(shù)據(jù),但是遇到數(shù)據(jù)比較雜亂,會(huì)經(jīng)常無(wú)緣無(wú)故報(bào)錯(cuò),筆者被逼無(wú)奈,采用API方式處理數(shù)據(jù)后同步,不知為何API資料筆者找到的資料很少,還很不全,摸著石頭過(guò)河總算完成任務(wù),收獲頗豐,以此分享給大家。 有個(gè)大坑,我用該程序監(jiān)控mongodb只能監(jiān)控

    2024年02月11日
    瀏覽(23)
  • elasticsearch(ES)分布式搜索引擎04——(數(shù)據(jù)聚合,自動(dòng)補(bǔ)全,數(shù)據(jù)同步,ES集群)

    elasticsearch(ES)分布式搜索引擎04——(數(shù)據(jù)聚合,自動(dòng)補(bǔ)全,數(shù)據(jù)同步,ES集群)

    **聚合(aggregations)**可以讓我們極其方便的實(shí)現(xiàn)對(duì)數(shù)據(jù)的統(tǒng)計(jì)、分析、運(yùn)算。例如: 什么品牌的手機(jī)最受歡迎? 這些手機(jī)的平均價(jià)格、最高價(jià)格、最低價(jià)格? 這些手機(jī)每月的銷售情況如何? 實(shí)現(xiàn)這些統(tǒng)計(jì)功能的比數(shù)據(jù)庫(kù)的sql要方便的多,而且查詢速度非???,可以實(shí)現(xiàn)近

    2024年02月08日
    瀏覽(36)
  • 【ElasticSearch】ES與MySQL數(shù)據(jù)同步方案及Java實(shí)現(xiàn)

    【ElasticSearch】ES與MySQL數(shù)據(jù)同步方案及Java實(shí)現(xiàn)

    elasticsearch中的酒店數(shù)據(jù)來(lái)自于mysql數(shù)據(jù)庫(kù),當(dāng)mysql中的數(shù)據(jù)發(fā)生改變時(shí),es中的數(shù)據(jù)也要跟著改變,即es與mysql之間的數(shù)據(jù)同步。 操作mysql的微服務(wù)hotel-admin不能直接更新es的索引庫(kù),那就由操作es索引庫(kù)的微服務(wù)hotel-demo來(lái)暴露一個(gè)更新索引庫(kù)的接口給hotel-admin調(diào)用 同步調(diào)用方式

    2024年02月15日
    瀏覽(26)
  • 使用kettle同步全量數(shù)據(jù)到Elasticsearch(es)--elasticsearch-bulk-insert-plugin應(yīng)用

    使用kettle同步全量數(shù)據(jù)到Elasticsearch(es)--elasticsearch-bulk-insert-plugin應(yīng)用

    為了前端更快地進(jìn)行數(shù)據(jù)檢索,需要將數(shù)據(jù)存儲(chǔ)到es中是一個(gè)很不錯(cuò)的選擇。由于公司etl主要工具是kettle,這里介紹如何基于kettle的elasticsearch-bulk-insert-plugin插件將數(shù)據(jù)導(dǎo)入es。在實(shí)施過(guò)程中會(huì)遇到一些坑,這里記錄解決方案。 可能會(huì)遇到的報(bào)錯(cuò): 1、No elasticSearch nodes found 2、

    2024年02月01日
    瀏覽(28)
  • Redis主從架構(gòu)、數(shù)據(jù)同步原理、全量同步、增量同步

    Redis主從架構(gòu)、數(shù)據(jù)同步原理、全量同步、增量同步

    大家好,我是哪吒。 2023年再不會(huì)Redis,就要被淘汰了 圖解Redis,談?wù)凴edis的持久化,RDB快照與AOF日志 Redis單線程還是多線程?IO多路復(fù)用原理 Redis集群的最大槽數(shù)為什么是16384個(gè)? Redis緩存穿透、擊穿、雪崩到底是個(gè)啥?7張圖告訴你 Redis分布式鎖的實(shí)現(xiàn)方式 Redis分布式緩存、

    2024年02月07日
    瀏覽(25)
  • 實(shí)戰(zhàn):大數(shù)據(jù)Flink CDC同步Mysql數(shù)據(jù)到ElasticSearch

    實(shí)戰(zhàn):大數(shù)據(jù)Flink CDC同步Mysql數(shù)據(jù)到ElasticSearch

    前面的博文我們分享了大數(shù)據(jù)分布式流處理計(jì)算框架Flink和其基礎(chǔ)環(huán)境的搭建,相信各位看官都已經(jīng)搭建好了自己的運(yùn)行環(huán)境。那么,今天就來(lái)實(shí)戰(zhàn)一把使用Flink CDC同步Mysql數(shù)據(jù)導(dǎo)Elasticsearch。 CDC簡(jiǎn)介 CDC 的全稱是 Change Data Capture(變更數(shù)據(jù)捕獲技術(shù)) ,在廣義的概念上,只要

    2024年02月09日
    瀏覽(22)
  • flinkcdc同步完全量數(shù)據(jù)就不同步增量數(shù)據(jù)了

    使用flinkcdc同步mysql數(shù)據(jù),使用的是全量采集模型 startupOptions(StartupOptions.earliest()) 全量階段同步完成之后,發(fā)現(xiàn)并不開(kāi)始同步增量數(shù)據(jù),原因有以下兩個(gè): 1.mysql中對(duì)應(yīng)的數(shù)據(jù)庫(kù)沒(méi)有開(kāi)啟binlog 在/etc/my.cnf配置文件中,在[ mysqld ]添加以下內(nèi)容 然后重啟數(shù)據(jù)庫(kù) ,執(zhí)行命令 和chec

    2024年02月11日
    瀏覽(19)
  • Maxwell - 增量數(shù)據(jù)同步工具

    Maxwell - 增量數(shù)據(jù)同步工具

    ? ? ? ? 今天來(lái)學(xué)習(xí)一個(gè)新的大數(shù)據(jù)小工具 Maxwell ,它和 Sqoop 很像。Sqoop主要用于在 Hadoop (比如 HDFS、Hive、HBase 等)和關(guān)系型數(shù)據(jù)庫(kù)之間進(jìn)行數(shù)據(jù)的批量導(dǎo)入和導(dǎo)出,而 Maxwell 則主要用于監(jiān)控?cái)?shù)據(jù)庫(kù)的變化(通過(guò)監(jiān)控 binlog ),并將變化的數(shù)據(jù)以JSON格式發(fā)布到消息隊(duì)列(一

    2024年02月20日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包