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

canal實(shí)現(xiàn)mysql數(shù)據(jù)實(shí)時(shí)同步到es

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

問題背景

最近有一個(gè)需求:原有一些mysql數(shù)據(jù),這些數(shù)據(jù)量很大,且包含文本信息,需要對(duì)其進(jìn)行搜索,這時(shí)如果使用mysql的like來匹配,效率會(huì)很低,且很可能影響整個(gè)系統(tǒng)的運(yùn)行,經(jīng)過和同事的討論,最終決定使用es來做搜索。
但是源數(shù)據(jù)有很多關(guān)聯(lián)關(guān)系,搜索的時(shí)候也會(huì)帶上這些條件,因此需要將文本信息同步到es,且當(dāng)mysql數(shù)據(jù)有新增、更新或刪除操作時(shí),也實(shí)時(shí)同步到es.

工具調(diào)研

從mysql同步到es的工具,目前市面上比較火的是logstash和canal

logstash

logstash經(jīng)過調(diào)研就能知道,它依賴于更新字段,也就是說,需要有一個(gè)字段如update_time,當(dāng)這個(gè)時(shí)間大于當(dāng)前時(shí)間,就表明數(shù)據(jù)做了更新。但由于我們的數(shù)據(jù)來源于多個(gè)渠道,大家規(guī)范不統(tǒng)一(很可能時(shí)區(qū)都不統(tǒng)一),且update_time字段沒有做觸發(fā)更新,因此不考慮使用logstash

canal

canal是可以使用隊(duì)列的,但考慮到部署難度,以及盡量少引入其他工具的原則,不使用隊(duì)列,而是直接監(jiān)聽消息。
事實(shí)上,想要啟動(dòng)canal參考這篇文檔就足夠了canal QuickStart
但實(shí)際部署時(shí)會(huì)踩很多坑,比如canal的readme以及wiki首頁(yè)都沒有明顯提到ClientAdapter這個(gè)工具,事實(shí)上這個(gè)工具是很好用的,它可以批量將mysql數(shù)據(jù)導(dǎo)入es,也可以自動(dòng)同步mysql數(shù)據(jù)變動(dòng)到es,非常好用,因此,下載的時(shí)候最好就把deployer和adapter一塊下載了
canal基本按照官方文檔來部署就行,沒有多大坑,但記得在這之前確認(rèn)下bin_log是否真的開啟了,否則canal會(huì)報(bào)錯(cuò),而且報(bào)錯(cuò)信息難以發(fā)現(xiàn)原因。

clientAdapter

第一個(gè)坑,es的監(jiān)聽。我本機(jī)隨便下的一個(gè)es,實(shí)際上是有默認(rèn)賬號(hào)密碼的,但是不知道是我版本原因還是怎么樣,總之用默認(rèn)賬號(hào)密碼無(wú)法登錄,這時(shí)我生成了以下賬號(hào)密碼,參考的這篇文章:es賬號(hào)密碼設(shè)置,注意要記得存一下生成的賬號(hào)密碼。
然后,我發(fā)現(xiàn)adapter依舊報(bào)錯(cuò)(這里報(bào)錯(cuò)信息找不到了),發(fā)現(xiàn)是es沒有設(shè)置
。。。
暫時(shí)沒時(shí)間來寫這篇文章,先直接寫下途中會(huì)遇到的坑及解決方案
注意事項(xiàng):
(1)adapter的sql語(yǔ)句配置中,不要使用反引號(hào)"`",否則會(huì)報(bào)奇怪的錯(cuò)(報(bào)錯(cuò)信息忘了)
(2)adapter1.16的bug:所有表都需要?jiǎng)e名,哪怕是一個(gè)表,也要寫成如:select u.name from user as u
(3)大量數(shù)據(jù)導(dǎo)入,需要設(shè)置并發(fā)數(shù),提高并發(fā)數(shù)可解決導(dǎo)入失敗的問題
(4)記得設(shè)置下es賬號(hào)密碼,以及, es的配置中network.host要改成network.host: 0.0.0.0(如果遇到了adapter同步500,INternal Server Error,不要問,先這么改吧,我也是查issue查出來的)
(5)有可能跑一段時(shí)間adapter不再同步了,臨時(shí)的解決方案是把instance下的mate.bat、h2.mv.db刪掉,會(huì)自動(dòng)繼續(xù)同步的,治本的方案暫時(shí)沒時(shí)間考慮文章來源地址http://www.zghlxwxcb.cn/news/detail-604048.html

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

  • Canal —— 一款 MySql 實(shí)時(shí)同步到 ES 的阿里開源神器

    Canal —— 一款 MySql 實(shí)時(shí)同步到 ES 的阿里開源神器

    目錄 一. 前言 二. Canal 簡(jiǎn)介和使用場(chǎng)景 2.1. Canal 簡(jiǎn)介 2.2. Canal 使用場(chǎng)景 三. Canal Server 設(shè)計(jì) 3.1. 整體設(shè)計(jì) 3.2. EventParser 設(shè)計(jì) 3.3.?CanalLogPositionManager 設(shè)計(jì) 3.4.?CanalHAController 類圖設(shè)計(jì) 3.5.?EventSink 類圖設(shè)計(jì)和擴(kuò)展 3.6.?EventStore 類圖設(shè)計(jì)和擴(kuò)展 3.7.?MetaManager 類圖設(shè)計(jì)和擴(kuò)展 四. Can

    2024年01月25日
    瀏覽(26)
  • 基于Canal實(shí)現(xiàn)Mysql數(shù)據(jù)實(shí)時(shí)同步到Elasticsearch(Docker版)

    基于Canal實(shí)現(xiàn)Mysql數(shù)據(jù)實(shí)時(shí)同步到Elasticsearch(Docker版)

    1、Canal簡(jiǎn)介 ??Canal主要用途是對(duì)MySQL數(shù)據(jù)庫(kù)增量日志進(jìn)行解析,提供增量數(shù)據(jù)的訂閱和消費(fèi),簡(jiǎn)單說就是可以對(duì)MySQL的增量數(shù)據(jù)進(jìn)行實(shí)時(shí)同步,支持同步到MySQL、Elasticsearch、HBase等數(shù)據(jù)存儲(chǔ)中去。 ??Canal會(huì)模擬MySQL主庫(kù)和從庫(kù)的交互協(xié)議,從而偽裝成MySQL的從庫(kù),然后向My

    2024年02月10日
    瀏覽(92)
  • 基于Canal實(shí)現(xiàn)MySQL 8.0 數(shù)據(jù)庫(kù)數(shù)據(jù)同步

    基于Canal實(shí)現(xiàn)MySQL 8.0 數(shù)據(jù)庫(kù)數(shù)據(jù)同步

    主機(jī)名稱 操作系統(tǒng) 說明 192.168.11.82 Ubuntu 22.04 主庫(kù)所在服務(wù)器 192.168.11.28 Oracle Linux Server 8.7 從庫(kù)所在服務(wù)器 1、Ubuntu系統(tǒng)下MySQL配置文件位置 2、CentOS系統(tǒng)下MySQL配置文件位置 3、添加如下配置,開啟MySQL binlog功能 關(guān)于canal簡(jiǎn)介,這里就不再闡述,具體可以參看官方文檔介紹,地

    2023年04月23日
    瀏覽(998)
  • 使用canal+rocketmq實(shí)現(xiàn)將mysql數(shù)據(jù)同步到es

    使用canal+rocketmq實(shí)現(xiàn)將mysql數(shù)據(jù)同步到es

    實(shí)際開發(fā)過程中,經(jīng)常遇到數(shù)據(jù)庫(kù)與緩存不一致的問題,造成這種問題的原因有很多,其中緩存數(shù)據(jù)沒有及時(shí)更新、緩存中過期的數(shù)據(jù)沒有及時(shí)更新,導(dǎo)致緩存中存在失效數(shù)據(jù),導(dǎo)致數(shù)據(jù)庫(kù)與緩存不一致。而這種問題的出現(xiàn)大部分都是因?yàn)橥窖舆t、緩存失效、過期和錯(cuò)誤使

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

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

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

    2024年04月14日
    瀏覽(34)
  • canal同步mysql數(shù)據(jù)到es中

    canal同步mysql數(shù)據(jù)到es中

    項(xiàng)目中業(yè)務(wù)數(shù)據(jù)量比較大,每類業(yè)務(wù)表都達(dá)到千萬(wàn)級(jí)別,雖然做了分庫(kù)分表和讀寫分離,每張表數(shù)據(jù)控制在500W一下,但是效率還是達(dá)不到要求,為了提高查詢效率,我們使用ES查詢。 而將mysql實(shí)時(shí)同步到es中保證數(shù)據(jù)一致性就成了我們的工作之下。 jdk1.8(依賴jdk環(huán)境,需要先

    2023年04月08日
    瀏覽(17)
  • 利用Canal把MySQL數(shù)據(jù)同步到ES

    Canal是阿里巴巴開源的一個(gè)數(shù)據(jù)庫(kù)變更數(shù)據(jù)同步工具,主要用于 MySQL 數(shù)據(jù)庫(kù)的增量數(shù)據(jù)到下游的同步,例如同步到 Elasticsearch、HBase、Hive 等。下面是一個(gè)基本的步驟來導(dǎo)入 MySQL 數(shù)據(jù)庫(kù)到 Elasticsearch。 安裝和配置 Canal 首先,需要在你的機(jī)器上安裝并配置Canal。具體步驟可在 C

    2024年02月16日
    瀏覽(29)
  • canal實(shí)時(shí)同步mysql數(shù)據(jù)到elasticsearch(部署,配置,測(cè)試)(一)

    canal實(shí)時(shí)同步mysql數(shù)據(jù)到elasticsearch(部署,配置,測(cè)試)(一)

    canal基于MySQL數(shù)據(jù)庫(kù)增量日志解析,提供增量數(shù)據(jù)訂閱和消費(fèi),是阿里開源CDC工具,它可以獲取MySQL binlog數(shù)據(jù)并解析,然后將數(shù)據(jù)變動(dòng)傳輸給下游?;赾anal,可以實(shí)現(xiàn)從MySQL到其他數(shù)據(jù)庫(kù)的實(shí)時(shí)同步 MySQL主備復(fù)制原理 MySQL master 將數(shù)據(jù)變更寫入二進(jìn)制日志( binary log, 其中記錄叫

    2023年04月08日
    瀏覽(25)
  • Springcloud Alibaba 使用Canal將MySql數(shù)據(jù)實(shí)時(shí)同步到Elasticsearch

    本篇文章在Springcloud Alibaba使用Canal將Mysql數(shù)據(jù)實(shí)時(shí)同步到Redis保證緩存的一致性-CSDN博客 基礎(chǔ)上使用canal將mysql數(shù)據(jù)實(shí)時(shí)同步到Elasticsearch。 公共包 實(shí)體類Sku @Column注解 用來標(biāo)識(shí)實(shí)體類中屬性與數(shù)據(jù)表中字段的對(duì)應(yīng)關(guān)系 name 定義了被標(biāo)注字段在數(shù)據(jù)庫(kù)表中所對(duì)應(yīng)字段的名稱;由

    2024年02月03日
    瀏覽(23)
  • Canal同步Mysql實(shí)時(shí)操作日志至RabbitMQ,并實(shí)現(xiàn)監(jiān)聽及解析處理

    Canal同步Mysql實(shí)時(shí)操作日志至RabbitMQ,并實(shí)現(xiàn)監(jiān)聽及解析處理

    關(guān)于Canal的介紹及原理不在此贅述,可自行查閱。筆者在使用Canal同步Mysql實(shí)時(shí)操作記錄至RabbitMQ的過程中,也翻閱了一些大牛們的文章,可能是我使用的Canal版本與文中版本不一致,出現(xiàn)了一些問題,在此總結(jié)記錄一下可行的方案。 注:本文使用的Canal為 v1.1.7 先查看目標(biāo)數(shù)據(jù)

    2024年04月10日
    瀏覽(48)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包