成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 詳解監(jiān)聽MySQL的binlog日志工具分析:Canal

詳解監(jiān)聽MySQL的binlog日志工具分析:Canal

熱門標(biāo)簽:申請外呼電話線路 廣東人工電話機(jī)器人 南通自動(dòng)外呼系統(tǒng)軟件 湖南人工外呼系統(tǒng)多少錢 百度地圖圖標(biāo)標(biāo)注中心 芒果電話機(jī)器人自動(dòng)化 石家莊電商外呼系統(tǒng) 信陽穩(wěn)定外呼系統(tǒng)運(yùn)營商 日照旅游地圖標(biāo)注

Canal是阿里巴巴旗下的一款開源項(xiàng)目,利用Java開發(fā)。主要用途是基于MySQL數(shù)據(jù)庫增量日志解析,提供增量數(shù)據(jù)訂閱和消費(fèi),目前主要支持MySQL。

GitHub地址:https://github.com/alibaba/canal

在介紹Canal內(nèi)部原理之前,首先來了解一下MySQL Master/Slave同步原理:

MySQL master啟動(dòng)binlog機(jī)制,將數(shù)據(jù)變更寫入二進(jìn)制日志(binary log, 其中記錄叫做二進(jìn)制日志事件binary log events,可以通過show binlog events進(jìn)行查看)MySQL slave(I/O thread)將master的binary log events拷貝到它的中繼日志(relay log)MySQL slave(SQL thread)重放relay log中事件,將數(shù)據(jù)變更反映它自己的數(shù)據(jù)中

Canal工作原理:

Canal模擬MySQL slave的交互協(xié)議,偽裝自己為MySQL slave,向MySQL master發(fā)送dump協(xié)議MySQL master收到dump請求,開始推送binary log給slave(也就是canal)Canal解析binary log對象(原始為byte流)

簡而言之,Canal是通過模擬成為MySQL的slave,監(jiān)聽MySQL的binlog日志來獲取數(shù)據(jù)。當(dāng)把MySQL的binlog設(shè)置為row模式以后,可以獲取到執(zhí)行的每一個(gè)Insert/Update/Delete的腳本,以及修改前和修改后的數(shù)據(jù),基于這個(gè)特性,Canal就能高效的獲取到MySQL數(shù)據(jù)的變更。 Canal架構(gòu):

說明: server代表一個(gè)Canal運(yùn)行實(shí)例,對應(yīng)于一個(gè)jvm instance對應(yīng)于一個(gè)數(shù)據(jù)隊(duì)列(1個(gè)server對應(yīng)1..n個(gè)instance)

EventParser:數(shù)據(jù)源接入,模擬slave協(xié)議和master進(jìn)行交互,協(xié)議解析

EventSink:Parser和Store連接器,主要進(jìn)行數(shù)據(jù)過濾,加工,分發(fā)的工作

EventStore:負(fù)責(zé)存儲(chǔ)

MemoryMetaManager:增量訂閱和消費(fèi)信息管理器

Event Parser設(shè)計(jì):

整個(gè)parser過程大致可分為以下幾步:

Connection獲取上一次解析成功的log position(如果是第一次啟動(dòng),則獲取初始指定的位置或者是當(dāng)前數(shù)據(jù)庫的binlog log position)Connection建立連接,向MySQL master發(fā)送BINLOG_DUMP請求MySQL開始推送binary Log接收到的binary Log通過BinlogParser進(jìn)行協(xié)議解析,補(bǔ)充一些特定信息。如補(bǔ)充字段名字、字段類型、主鍵信息、unsigned類型處理等將解析后的數(shù)據(jù)傳入到EventSink組件進(jìn)行數(shù)據(jù)存儲(chǔ)(這是一個(gè)阻塞操作,直到存儲(chǔ)成功)定時(shí)記錄binary Log位置,以便重啟后繼續(xù)進(jìn)行增量訂閱

如果需要同步的master宕機(jī),可以從它的其他slave節(jié)點(diǎn)繼續(xù)同步binlog日志,避免單點(diǎn)故障。 Event Sink設(shè)計(jì):

EventSink主要作用如下:

數(shù)據(jù)過濾:支持通配符的過濾模式,表名,字段內(nèi)容等

數(shù)據(jù)路由/分發(fā):解決1:n(1個(gè)parser對應(yīng)多個(gè)store的模式)

數(shù)據(jù)歸并:解決n:1(多個(gè)parser對應(yīng)1個(gè)store)

數(shù)據(jù)加工:在進(jìn)入store之前進(jìn)行額外的處理,比如join 數(shù)據(jù)1:n業(yè)務(wù)

為了合理的利用數(shù)據(jù)庫資源, 一般常見的業(yè)務(wù)都是按照schema進(jìn)行隔離,然后在MySQL上層或者dao這一層面上,進(jìn)行一個(gè)數(shù)據(jù)源路由,屏蔽數(shù)據(jù)庫物理位置對開發(fā)的影響,阿里系主要是通過cobar/tddl來解決數(shù)據(jù)源路由問題。所以,一般一個(gè)數(shù)據(jù)庫實(shí)例上,會(huì)部署多個(gè)schema,每個(gè)schema會(huì)有由1個(gè)或者多個(gè)業(yè)務(wù)方關(guān)注。

數(shù)據(jù)n:1業(yè)務(wù)

同樣,當(dāng)一個(gè)業(yè)務(wù)的數(shù)據(jù)規(guī)模達(dá)到一定的量級后,必然會(huì)涉及到水平拆分和垂直拆分的問題,針對這些拆分的數(shù)據(jù)需要處理時(shí),就需要鏈接多個(gè)store進(jìn)行處理,消費(fèi)的位點(diǎn)就會(huì)變成多份,而且數(shù)據(jù)消費(fèi)的進(jìn)度無法得到盡可能有序的保證。所以,在一定業(yè)務(wù)場景下,需要將拆分后的增量數(shù)據(jù)進(jìn)行歸并處理,比如按照時(shí)間戳/全局id進(jìn)行排序歸并。 Event Store設(shè)計(jì):

支持多種存儲(chǔ)模式,比如Memory內(nèi)存模式。采用內(nèi)存環(huán)裝的設(shè)計(jì)來保存消息,借鑒了Disruptor的RingBuffer的實(shí)現(xiàn)思路。 RingBuffer設(shè)計(jì):

定義了3個(gè)cursor:

put:Sink模塊進(jìn)行數(shù)據(jù)存儲(chǔ)的最后一次寫入位置(同步寫入數(shù)據(jù)的cursor)

get:數(shù)據(jù)訂閱獲取的最后一次提取位置(同步獲取的數(shù)據(jù)的cursor)

ack:數(shù)據(jù)消費(fèi)成功的最后一次消費(fèi)位置

借鑒Disruptor的RingBuffer的實(shí)現(xiàn),將RingBuffer拉直來看:

實(shí)現(xiàn)說明:

put/get/ack cursor用于遞增,采用long型存儲(chǔ)。三者之間的關(guān)系為put>=get>=ackbuffer的get操作,通過取余或者操作。(操作:cusor (size - 1) , size需要為2的指數(shù),效率比較高)

Instance設(shè)計(jì):

instance代表了一個(gè)實(shí)際運(yùn)行的數(shù)據(jù)隊(duì)列,包括了EventPaser、EventSink、EventStore等組件。抽象了CanalInstanceGenerator,主要是考慮配置的管理方式:

manager方式:和你自己的內(nèi)部web console/manager系統(tǒng)進(jìn)行對接。(目前主要是公司內(nèi)部使用)

spring方式:基于spring xml + properties進(jìn)行定義,構(gòu)建spring配置。 Server設(shè)計(jì):

server代表了一個(gè)Canal運(yùn)行實(shí)例,為了方便組件化使用,特意抽象了Embeded(嵌入式)/Netty(網(wǎng)絡(luò)訪問)的兩種實(shí)現(xiàn)。

增量訂閱/消費(fèi)設(shè)計(jì):

具體的協(xié)議格式,可參見:CanalProtocol.proto。數(shù)據(jù)對象格式:EntryProtocol.proto

Entry
  Header
    logfileName [binlog文件名]
    logfileOffset [binlog position]
    executeTime [binlog里記錄變更發(fā)生的時(shí)間戳]
    schemaName [數(shù)據(jù)庫實(shí)例]
    tableName [表名]
    eventType [insert/update/delete類型]
  entryType  [事務(wù)頭BEGIN/事務(wù)尾END/數(shù)據(jù)ROWDATA]
  storeValue [byte數(shù)據(jù),可展開,對應(yīng)的類型為RowChange]

RowChange
isDdl    [是否是ddl變更操作,比如create table/drop table]
sql   [具體的ddl sql]
rowDatas  [具體insert/update/delete的變更數(shù)據(jù),可為多條,1個(gè)binlog event事件可對應(yīng)多條變更,比如批處理]
beforeColumns [Column類型的數(shù)組]
afterColumns [Column類型的數(shù)組]

Column
index    [column序號]
sqlType   [jdbc type]
name    [column name]
isKey    [是否為主鍵]
updated   [是否發(fā)生過變更]
isNull   [值是否為null]
value    [具體的內(nèi)容,注意為文本]

針對上述的補(bǔ)充說明:

1.可以提供數(shù)據(jù)庫變更前和變更后的字段內(nèi)容,針對binlog中沒有的name、isKey等信息進(jìn)行補(bǔ)全

2.可以提供ddl的變更語句

Canal HA機(jī)制:

Canal的HA實(shí)現(xiàn)機(jī)制是依賴zookeeper實(shí)現(xiàn)的,主要分為Canal server和Canal client的HA。 Canal server:為了減少對MySQL dump的請求,不同server上的instance要求同一時(shí)間只能有一個(gè)處于running狀態(tài),其他的處于standby狀態(tài)。

Canal client:為了保證有序性,一份instance同一時(shí)間只能由一個(gè)Canal client進(jìn)行g(shù)et/ack/rollback操作,否則客戶端接收無法保證有序。 Canal Server HA架構(gòu)圖:

大致步驟:

  • Canal server要啟動(dòng)某個(gè)Canal instance時(shí)都先向Zookeeper進(jìn)行一次嘗試啟動(dòng)判斷 (實(shí)現(xiàn):創(chuàng)建EPHEMERAL節(jié)點(diǎn),誰創(chuàng)建成功就允許誰啟動(dòng))
  • 創(chuàng)建Zookeeper節(jié)點(diǎn)成功后,對應(yīng)的Canal server就啟動(dòng)對應(yīng)的Canal instance,沒有創(chuàng)建成功的Canal instance就會(huì)處于standby狀態(tài)
  • 一旦Zookeeper發(fā)現(xiàn)Canal server A創(chuàng)建的節(jié)點(diǎn)消失后,立即通知其他的Canal server再次進(jìn)行步驟1的操作,重新選出一個(gè)Canal server啟動(dòng)instance
  • Canal client每次進(jìn)行connect時(shí),會(huì)首先向Zookeeper詢問當(dāng)前是誰啟動(dòng)了Canal instance,然后和其建立鏈接,一旦鏈接不可用,會(huì)重新嘗試connect

Canal Client的方式和Canal server方式類似,也是利用Zookeeper的搶占EPHEMERAL節(jié)點(diǎn)的方式進(jìn)行控制。

到此這篇關(guān)于詳解監(jiān)聽MySQL的binlog日志工具分析:Canal的文章就介紹到這了,更多相關(guān)MySQL的binlog日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MySQL使用binlog日志做數(shù)據(jù)恢復(fù)的實(shí)現(xiàn)
  • MySQL的binlog日志使用詳解
  • 開啟MySQL的binlog日志的方法步驟
  • Mysql數(shù)據(jù)庫清理binlog日志命令詳解
  • MySQL讀取Binlog日志常見的3種錯(cuò)誤
  • mysql binlog(二進(jìn)制日志)查看方法
  • mysql 正確清理binlog日志的兩種方法
  • 解說mysql之binlog日志以及利用binlog日志恢復(fù)數(shù)據(jù)的方法
  • Mysql數(shù)據(jù)庫之Binlog日志使用總結(jié)(必看篇)
  • MySQL Binlog 日志處理工具對比分析

標(biāo)簽:呼和浩特 公主嶺 惠州 天津 沈陽 阿里 牡丹江 合肥

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解監(jiān)聽MySQL的binlog日志工具分析:Canal》,本文關(guān)鍵詞  詳解,監(jiān)聽,MySQL,的,binlog,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解監(jiān)聽MySQL的binlog日志工具分析:Canal》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解監(jiān)聽MySQL的binlog日志工具分析:Canal的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    成人羞羞在线观看网站| 国产精品一区二区三区免费视频| 日韩精品免费视频| 亚洲天堂av图片| 亚洲av无日韩毛片久久| 波多野结衣在线观看一区| 99精产国品一二三产品香蕉| 91欧美精品成人综合在线观看| 麻豆一区二区在线观看| 欧美一区激情视频在线观看| 美女网站一区二区| 日本一区二区三区视频在线| 亚洲欧洲精品成人久久奇米网| 色一情一欲一爱一乱| 三级黄色片网站| 国产狼人综合免费视频| 深夜日韩欧美| 青娱乐精品在线| 国产色视频一区二区三区qq号| 中文字幕系列一区| 性高湖久久久久久久久aaaaa| 国产高清在线一区二区| 国产综合久久久久久| 日本 片 成人 在线| 麻豆影院在线观看| 欧美久久九九| 韩国三级电影在线观看婷婷| 成年人在线免费观看视频网站| 91精品久久久久久综合五月天| 在线三级电影| 黄色一级片视频| 欧美黄免费看| 黑人巨大亚洲一区二区久| 少妇高潮av久久久久久| 国产aⅴ精品一区二区三区黄| 亚洲欧美一区二区视频| 久久久久久av无码免费网站| 久久久久99人妻一区二区三区| 亚洲综合精品国产一区二区三区| 美女精品视频在线| 欧美尤物巨大精品爽| 中文欧美日本在线资源| 中文字幕av亚洲精品一部二部| 中文字幕免费中文| www.超碰97| 97久草视频| 韩国一区二区三区视频| 日本福利视频导航| 自慰无码一区二区三区| 一级特黄免费视频| 国产精品一二三产区| 国产精品第十页| 亚洲精品精品一区| 亚州精品永久观看视频| 大黄网站在线观看| 夜夜嗨yeyeh| 午夜亚洲福利在线老司机| **毛片在线网站| 亚洲免费不卡| 91美女片黄在线| 免费看男女www网站入口在线| 精品国产二区三区| 国内精品久久久久久久久蜜桃| 成人3d动漫网站| 精品中文字幕一区二区三区| 999久久久免费精品国产牛牛| 日韩一区二区三区在线视频| 国产亚洲综合视频| 亚洲中文字幕一区| gogogo高清在线观看免费完整版| av一区二区三区黑人| 99热精品久久| 亚洲国产精品一区二区三区| 精品一区二区精品| 黄色美女视频在线观看| 最新在线观看av| 国产精品都在这里| 国产美女娇喘av呻吟久久| 91福利在线看| 天天射天天爱天天射干| 国产成人午夜片在线观看高清观看| 国产中文在线视频| 在线视频中文字幕一区二区| www.99久久热国产日韩欧美.com| 国产成人精品亚洲男人的天堂| 懂色av一区二区| 亚洲香蕉久久| 玖玖精品在线视频| 日本一区二区久久| 欧美与欧洲交xxxx免费观看| 天天操夜夜操天天射| 国产白丝一区二区三区| 久热这里只有精品在线| 亚洲欧美日韩第一页| 日本加勒比高清在线| 四色永久免费网站| 草草草在线视频| 欧美婷婷六月丁香综合色| 九色视频在线观看免费播放| 欧美黄网站在线观看| 成人黄色一级视频| 蜜桃传媒一区二区| 中文字幕永久在线视频| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 成人激情午夜影院| 91在线观看网站| 综合婷婷亚洲小说| 亚洲无人区码一码二码三码| 色婷婷综合缴情免费观看| 国产女优裸体网站| 肥熟一91porny丨九色丨| 波多野结衣毛片| 国产精品永久免费| 韩国国内大量揄拍精品视频| 精品电影在线观看| 三妻四妾完整版在线观看电视剧| 国产精品亚发布| 亚洲人体大胆视频| 成人妖精视频yjsp地址| 国产在线拍揄自揄拍视频| 在线观看亚洲a| a美女胸又www黄视频久久| 色偷偷网友自拍| 欧美成人国产一区二区| 久久www人成免费看片中文| 男女啊啊啊视频| a资源在线观看| 亚洲大全视频| 开心丁香婷婷深爱五月| 凹凸日日摸日日碰夜夜| 黑人巨大狂躁日本妞在线观看| 日韩欧美一区二区三区在线视频| 精品在线一区二区三区| 欧美日韩亚洲天堂| 国产日韩在线播放| 国产农村妇女精品一区| 麻豆tv入口在线看| 97超超碰碰| 宅男视频免费在线观看视频| 欧美一区二区观看视频| 菠萝菠萝蜜在线观看| 97久久伊人激情网| 91久久夜色精品国产网站| 欧美在线日韩在线| 亚洲第一页在线视频| 欧美天天在线| 亚洲欧美一区二区在线观看| 精品国内自产拍在线观看| 亚洲成人黄色在线| 国产精品网在线观看| 国产精品久久久高清免费| 99riav视频在线观看| 亚洲电影一级片| 中文字幕网av| 日韩亚洲第一页| 成人观看高清在线观看免费| 欧美体内she精视频在线观看| 成人动漫一区二区在线| 17c丨国产丨精品视频| 国产美女撒尿一区二区| 最新在线你懂的| 91免费的视频在线播放| 色婷婷**av毛片一区| 日本免费黄色小视频| 黑人玩弄人妻一区二区三区| 天天亚洲美女在线视频| 欧美日韩国产成人在线| 欧美freesex黑人又粗又大| 正在播放国产精品| 青青草精品在线| 99成人免费视频| 成人午夜视频在线观看免费| 在线电影欧美成精品| 国产偷亚洲偷欧美偷精品| 欧美一区二区三区视频在线| 亚洲av成人片无码| 成人性色av| caopor在线| 免费中文字幕日韩| 国产日韩三级| 91精品国产调教在线观看| 黄色性视频网站| 久久精品视频中文字幕| 香港日本三级视频| 亚洲黄色成人网| 丁香花在线观看完整版电影| 91黄色免费看| 成人国产精品一区二区| 色综合天天综合网天天狠天天| 国产一区二区av在线| 69久久夜色精品国产69乱青草| 国产91色在线播放| 伊人75在线| h视频在线网站| 91蜜桃免费观看视频| 99在线视频精品| 日本aaa视频| 日韩在线视频网| 男人插曲女人的视频| 天天躁日日躁狠狠躁欧美巨大小说| 国产专区第一页| 日韩精品电影在线| 超碰免费公开在线| 国产亚洲精久久久久久无码77777| 老熟妇高潮一区二区三区| 55夜色66夜色国产精品视频| 精品一区二区免费| 国产专区在线视频| 久久精品日产第一区二区| 午夜久久中文| 麻豆九一精品爱看视频在线观看免费| 欧美第一页在线观看| 亚洲www啪成人一区二区麻豆| 亚洲国产日韩精品| 日韩免费成人网| yy6080久久伦理一区二区| 成人性生交大片免费看视频r| 久久精品国产亚洲AV成人婷婷| 日本妇乱大交xxxxx| 国产一区二区在线视频聊天| 国产成人免费电影| 日日夜夜精品视频免费观看| 日本综合一区二区三区| 精品久久久久久久久久久| 久久一二三四区| 在线播放黄网| 精品精品导航| 日本精品中文字幕| 在线精品一区二区| 久久精品亚洲国产| 欧美成熟毛茸茸| 国产三级三级在线观看| 日韩在线视频观看免费| 国产黄在线免费观看| 激情都市一区二区| 欧美白人做受xxxx视频| 精品国产av一区二区| 91九色对白| 欧洲亚洲在线视频| 粉嫩久久久久久久极品| 欧美无砖专区一中文字| 捆绑调教日本一区二区三区| 在线观看国产高清视频| av地址在线观看| 黄色漫画在线免费看| 国产精品白丝jk喷水视频一区| 日韩欧美三级一区二区| 久久久美女艺术照精彩视频福利播放| 久久久久久久麻豆| 天天在线视频色| 一级肉体全黄裸片| 久久99国产精一区二区三区| 日本国产在线观看| 国产又黄又猛的视频| 欧美激情三级| 北条麻妃亚洲一区| 国产午夜在线播放| 91福利视频久久久久| 国产美女精品人人做人人爽| 国产精品久久国产愉拍| 91黄色精品| 成人有码视频在线播放| 国产原创视频在线观看| 在线国产网址| 久久香蕉国产线看观看网| 国产精品入口日韩视频大尺度| 91成人在线看| 亚洲天堂久久久久久久| 国产精品.com| 色激情天天射综合网| 麻豆免费精品视频| 国产黄色三级网站| 《视频一区视频二区| 91免费版网站入口| 天堂中文在线8| 91亚洲精品在线| 国产精品三区四区| 蘑菇福利视频一区播放| 作爱视频免费观看视频在线播放激情网| 性娇小13――14欧美| 久久精品成人欧美大片| 国产原创精品| 91视频综合网| 午夜影院日韩| 亚洲 欧美 综合 另类 中字| 精品婷婷伊人一区三区三| 欧美日韩爱爱| 91电影91视频| 揄拍成人国产精品视频| 第三区美女视频在线| 国产视频在线观看一区二区三区| 5566先锋影音夜色资源站在线观看| 国产成人无码一区二区在线观看| 亚洲va韩国va欧美va精四季| 欧美激情欧美激情在线五月| 美女福利一区| 五月天婷婷在线观看| 亚洲精品97久久中文字幕| 国产成人在线视频免费观看| 91小视频免费看| 国产高清精品软件丝瓜软件| 欧美一二三四在线| www欧美在线观看| 97中文字幕在线观看| 久久久av水蜜桃| 久久青草福利网站| 日韩三级电影网站| 羞羞在线视频| 一区二区在线电影| 久久久久免费视频| 欧美xxx黑人xxx水蜜桃| 久久黄色小视频| 日本不卡高字幕在线2019| 欧美成人一区二区视频| 香港三级经典全部种子下载| 免费人成在线不卡| 欧美性感美女一区二区| 成人免费高清观看| 精品无人区乱码1区2区3区免费| www.色就是色.com| 99re这里只有精品首页| 爽爽爽在线观看| 亚洲一区二区在线| 蜜桃传媒在线观看免费进入| 91精品欧美久久久久久动漫| 午夜私人影院在线观看| 91免费视频大全| 亚洲综合网av|