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

MySQL與ES數(shù)據(jù)同步的四種方案及實(shí)踐演示

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

一、同步雙寫

也就是同步調(diào)用,這是一種最為簡(jiǎn)單的方式,在將數(shù)據(jù)寫到mysql時(shí),同時(shí)將數(shù)據(jù)寫到ES。

優(yōu)點(diǎn)

1.業(yè)務(wù)邏輯簡(jiǎn)單
2實(shí)時(shí)性高

缺點(diǎn)

1.硬編碼,有需要寫入mysql的地方都需要添加寫入ES的代碼
2.業(yè)務(wù)強(qiáng)耦合
3.存在雙寫失敗丟數(shù)據(jù)風(fēng)險(xiǎn)
4.性能較差:本來mysql的性能不是很高,再加一個(gè)ES,系統(tǒng)的性能必然會(huì)下降。

雙寫失敗風(fēng)險(xiǎn)

ES系統(tǒng)不可用;
程序和ES之間的網(wǎng)絡(luò)故障;
程序重啟,導(dǎo)致系統(tǒng)來不及寫入ES等。
針對(duì)這種情況,有數(shù)據(jù)強(qiáng)一致性要求的,就必須雙寫放到事務(wù)中來處理,而一旦用上事物,則性能下降更加明顯。

項(xiàng)目演示

請(qǐng)移步:MySQL與ES數(shù)據(jù)同步之同步調(diào)用

二、異步雙寫(MQ方式)

針對(duì)多數(shù)據(jù)源寫入的場(chǎng)景,可以借助MQ實(shí)現(xiàn)異步的多源寫入,這種情況下各個(gè)源的寫入邏輯互不干擾,不會(huì)由于單個(gè)數(shù)據(jù)源寫入異?;蚓徛绊懫渌麛?shù)據(jù)源的寫入,雖然整體寫入的吞吐量增大了,但是由于MQ消費(fèi)是異步消費(fèi),所以不適合實(shí)時(shí)業(yè)務(wù)場(chǎng)景。

優(yōu)點(diǎn)

性能高
不易出現(xiàn)數(shù)據(jù)丟失問題,主要基于MQ消息的消費(fèi)保障機(jī)制,比如ES宕機(jī)或者寫入失敗,還能重新消費(fèi)MQ消息。
多源寫入之間相互隔離,便于擴(kuò)展更多的數(shù)據(jù)源寫入

缺點(diǎn)

硬編碼問題,接入新的數(shù)據(jù)源需要實(shí)現(xiàn)新的消費(fèi)者代碼
系統(tǒng)復(fù)雜度增加:引入了消息中間件
可能出現(xiàn)延時(shí)問題:MQ是異步消費(fèi)模型,用戶寫入的數(shù)據(jù)不一定可以馬上看到,造成延時(shí)。

項(xiàng)目演示

請(qǐng)移步:MySQL與ES數(shù)據(jù)同步之異步調(diào)用

三、基于Datax同步

DataX 是阿里巴巴集團(tuán)內(nèi)被廣泛使用的離線數(shù)據(jù)同步工具/平臺(tái),實(shí)現(xiàn)包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各種異構(gòu)數(shù)據(jù)源之間高效的數(shù)據(jù)同步功能。

核心組件

Reader:數(shù)據(jù)采集模塊,負(fù)責(zé)從源采集數(shù)據(jù)
Writer:數(shù)據(jù)寫入模塊,負(fù)責(zé)寫入目標(biāo)庫
Framework:數(shù)據(jù)傳輸通道,負(fù)責(zé)處理數(shù)據(jù)緩沖等
以上只需要重寫Reader與Writer插件,即可實(shí)現(xiàn)新數(shù)據(jù)源支持
從一個(gè)JOB來理解datax的核心模塊組件:
datax完成單個(gè)數(shù)據(jù)同步的作業(yè),稱為Job,job會(huì)負(fù)責(zé)數(shù)據(jù)清理、任務(wù)切分等工作;
任務(wù)啟動(dòng)后,Job會(huì)根據(jù)不同源的切分策略,切分成多個(gè)Task并發(fā)執(zhí)行,Task就是執(zhí)行作業(yè)的最小單元
切分完成后,根據(jù)Scheduler模塊,將Task組合成TaskGroup,每個(gè)group負(fù)責(zé)一定的并發(fā)和分配Task

架構(gòu)圖

MySQL與ES數(shù)據(jù)同步的四種方案及實(shí)踐演示,ES,后端,Docker,mysql,elasticsearch,數(shù)據(jù)庫,spring boot,后端,java,rabbitmq

支持的數(shù)據(jù)源及操作

MySQL與ES數(shù)據(jù)同步的四種方案及實(shí)踐演示,ES,后端,Docker,mysql,elasticsearch,數(shù)據(jù)庫,spring boot,后端,java,rabbitmq
MySQL與ES數(shù)據(jù)同步的四種方案及實(shí)踐演示,ES,后端,Docker,mysql,elasticsearch,數(shù)據(jù)庫,spring boot,后端,java,rabbitmq
MySQL與ES數(shù)據(jù)同步的四種方案及實(shí)踐演示,ES,后端,Docker,mysql,elasticsearch,數(shù)據(jù)庫,spring boot,后端,java,rabbitmq

項(xiàng)目演示

請(qǐng)移步:DataX實(shí)現(xiàn)Mysql與ElasticSearch(ES)數(shù)據(jù)同步

四、基于Binlog實(shí)時(shí)同步

實(shí)現(xiàn)原理

具體步驟如下:
讀取mysql的binlog日志,獲取指定表的日志信息;
將讀取的信息轉(zhuǎn)為MQ;
編寫一個(gè)MQ消費(fèi)程序;
不斷消費(fèi)MQ,每消費(fèi)完一條消息,將消息寫入到ES中。

優(yōu)點(diǎn)

沒有代碼侵入、沒有硬編碼;
原有系統(tǒng)不需要任何變化,沒有感知;
性能高;
業(yè)務(wù)解耦,不需要關(guān)注原來系統(tǒng)的業(yè)務(wù)邏輯。

缺點(diǎn)

構(gòu)建Binlog系統(tǒng)復(fù)雜;
如果采用MQ消費(fèi)解析的binlog信息,也會(huì)像方案二一樣存在MQ延時(shí)的風(fēng)險(xiǎn)。
業(yè)界目前較為流行的方案:使用canal監(jiān)聽binlog同步數(shù)據(jù)到es

項(xiàng)目演示

請(qǐng)移步:
Docker部署Canal監(jiān)聽MySQL binlog
SpringBoot整合Canal實(shí)現(xiàn)MySQL與ES數(shù)據(jù)同步


結(jié)束~文章來源地址http://www.zghlxwxcb.cn/news/detail-708344.html

到了這里,關(guān)于MySQL與ES數(shù)據(jù)同步的四種方案及實(shí)踐演示的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • Mysql 數(shù)據(jù)同步到 ES 的技術(shù)方案選型和思考

    Mysql 數(shù)據(jù)同步到 ES 的技術(shù)方案選型和思考

    ES 的幾個(gè)顯著特點(diǎn),能有效補(bǔ)足 MySQL 在企業(yè)級(jí)數(shù)據(jù)操作場(chǎng)景的缺陷 文本搜索能力 :ES 是基于倒排索引實(shí)現(xiàn)的搜索系統(tǒng),配合多樣的分詞器,在文本模糊匹配搜索上表現(xiàn)得比較好,業(yè)務(wù)場(chǎng)景廣泛。 多維篩選性能好 :億級(jí)規(guī)模數(shù)據(jù)使用寬表預(yù)構(gòu)建(消除 join),配合全字段索引

    2024年04月09日
    瀏覽(34)
  • MySQL數(shù)據(jù)同步到ES的4種解決方案

    MySQL數(shù)據(jù)同步到ES的4種解決方案

    大家應(yīng)該都在各種電商網(wǎng)站檢索過商品,檢索商品一般都是通過什么實(shí)現(xiàn)呢?搜索引擎Elasticsearch。那么問題來了,商品上架,數(shù)據(jù)一般寫入到MySQL的數(shù)據(jù)庫中,那么用于檢索的數(shù)據(jù)又是怎么同步到Elasticsearch的呢? MySQL同步ES 這是能想到的最直接的方式,在寫入MySQL,直接也同

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

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

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

    2024年02月15日
    瀏覽(26)
  • mysql數(shù)據(jù)庫limit的四種用法

    mysql數(shù)據(jù)庫limit的四種用法

    mysql數(shù)據(jù)庫中l(wèi)imit子句可以被用于強(qiáng)制select語句返回指定的記錄數(shù)。limit接受一個(gè)或兩個(gè)數(shù)字參數(shù)。參數(shù)必須是一個(gè)整數(shù)常量。如果給定兩個(gè)參數(shù),第一個(gè)參數(shù)指定第一個(gè)返回記錄行的偏移量,第二個(gè)參數(shù)指定返回記錄行的最大數(shù)目;若果給定一個(gè)參數(shù),則表示回記錄行的最大

    2024年02月08日
    瀏覽(30)
  • IDEA連接MySQL數(shù)據(jù)庫的四種方法

    IDEA連接MySQL數(shù)據(jù)庫的四種方法

    首先右擊此電腦點(diǎn)擊管理,進(jìn)入頁面 ?再服務(wù)欄確保MySQL是正常運(yùn)行狀態(tài) 打開IDEA, 左邊欄選擇Maven Archetype,新建一個(gè)名為javaweb的新工程 進(jìn)行如圖編輯完成新建 ?在Main包下新建一個(gè)java包,右擊java包進(jìn)行下圖操作,java包擁有新建class的權(quán)限 在java下面新建一個(gè)HelloConnection1的類,

    2024年02月12日
    瀏覽(28)
  • Burp Suite爆破模塊中的四種模式的區(qū)別詳解和演示(暴力破解)

    Burp Suite爆破模塊中的四種模式的區(qū)別詳解和演示(暴力破解)

    最近看了好多關(guān)于 暴力破解 的博客,其中用的最多的工具就是bp了,但是好多都是一上來給了執(zhí)行步驟,卻沒有對(duì)爆破的這幾個(gè)模式選擇進(jìn)行解釋,所以今天萌新寫個(gè)紀(jì)錄,來闡明這四個(gè)模式的區(qū)別和作用 四種模式分別為:Sniper、Battering ram、Pitchfork、 Cluster bomb (推薦使用

    2023年04月09日
    瀏覽(105)
  • ApacheStreamPark2.1.0部署及執(zhí)行flink-cdc任務(wù)同步mysql表的數(shù)據(jù)到es的實(shí)踐

    ApacheStreamPark2.1.0部署及執(zhí)行flink-cdc任務(wù)同步mysql表的數(shù)據(jù)到es的實(shí)踐

    ApacheStreamPark是流處理極速開發(fā)框架,流批一體 湖倉(cāng)一體的云原生平臺(tái),一站式流處理計(jì)算平臺(tái)。 ??特性中的簡(jiǎn)單易用和文檔詳盡這兩點(diǎn)我也是深有體會(huì)的,部署一點(diǎn)都不簡(jiǎn)單,照著官方文檔都不一定能搞出來,下面部署環(huán)節(jié)慢慢來吐槽吧。 ??之前我們寫 Flink SQL 基本上

    2024年02月11日
    瀏覽(28)
  • canal實(shí)現(xiàn)MySQL和ES同步實(shí)踐

    canal實(shí)現(xiàn)MySQL和ES同步實(shí)踐

    canal是阿里開源的數(shù)據(jù)同步工具,基于binlog可以將數(shù)據(jù)庫同步到其他各類數(shù)據(jù)庫中,目標(biāo)數(shù)據(jù)庫支持mysql,postgresql,oracle,redis,MQ,ES等。 MySQL的主從復(fù)制是依賴于binlog,也就是記錄MySQL上所有操作的邏輯日志保存在磁盤上。主從復(fù)制就是將binlog中的數(shù)據(jù)從主庫傳輸?shù)綇膸焐?,一般這

    2024年04月14日
    瀏覽(35)
  • MySQL同步ES方案

    MySQL同步ES方案

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

    2024年04月11日
    瀏覽(24)
  • 4種 MySQL 同步 ES 方案

    4種 MySQL 同步 ES 方案

    數(shù)據(jù)同步是一個(gè)很常見的業(yè)務(wù)場(chǎng)景。本文會(huì)講述數(shù)據(jù)同步的 4 種方案,并給出常用數(shù)據(jù)遷移工具,干貨滿滿! 在實(shí)際項(xiàng)目開發(fā)中,我們經(jīng)常將 MySQL 作為業(yè)務(wù)數(shù)據(jù)庫,ES 作為查詢數(shù)據(jù)庫,用來實(shí)現(xiàn)讀寫分離,緩解 MySQL 數(shù)據(jù)庫的查詢壓力,應(yīng)對(duì)海量數(shù)據(jù)的復(fù)雜查詢。 這其中有一

    2024年02月08日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包