精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Hiriver —— MySQL 數據變化的監控與分發框架

數據庫 MySQL
hiriver是純java開發的、高性能的、基于解析mysql row base binlog技術實現的用于監控mysql數據變化并分發這些變化的框架。

[[192733]]

什么是hiriver?

hiriver是純java開發的、高性能的、基于解析mysql row base binlog技術實現的用于監控mysql數據變化并分發這些變化的框架。它提供了一套完整的框架,內置數據監控線程和數據消費線程,對外提供簡單的Consumer接口,開發者可以根據自己的業務場景自行實現Consumer接口,而不不必關心線程問題。

實現原理

hiriver實現了mysql主從復制協議,把自己偽裝成一個mysql的從庫,在接收到binlog后按照mysql binlog協議進行解析,由此獲取mysql的數據變化。由于基于mysql的主從復制協議,它監控數據變化特別快,理論上與mysql本身的主從同步一樣快,甚至更快。同時與在應用層監控數據變化不同,它不需要考慮事務是否成功問題。當然,***限制***是mysql binlog的方式必須是***row***方式。

名字的由來

hiriver是hidden river的簡稱,中文名稱”暗渠”,用于隱喻在數據庫的后面導流數據,而不必要在應用層做任何控制。

支持mysql的版本

hiriver支持mysql 5.6.9+和 mysql5.1+版本。

  • 強烈推薦 使用5.6.9+版本,并使用binlog file name + position的方式處理同步點。
  • 雖然5.6.9+版本提供 gtid 功能,它是用于表示事務的唯一的id,理論上,基于它可以實現HA功能,當mysql出現故障時可以自動從一臺mysql從庫切換到另一臺,并且不會丟失或者重復數據, 但是 在實際的使用過程中gtid依然存在bug,并不穩定,而且存在多個gtid時很難找到mysql認識的初始同步點。
  • mysql5.6.9之前的版本,必須binlog file name和在該文件中的偏移位置作為同步點。

javadoc

hiriver組件

mysql-proto組件

使用教程

quickstart

總體說明

  1. hiriver模塊組主要由2個組件和一個示例組成:mysql-proto、hiriver和hiriver-sample
  2. mysql-proto實現了mysql的client-server協議,包括Text protocol和主從復制協議。Text protocol是從mysql 正常 讀取數據的協議,它是mysql jdbc驅動背后的協議。主從復制協議顧名思義就是實現主從之間復制數據的協議。
  3. hiriver是基于mysql-proto組件封裝的監聽mysql變化、記錄同步點、控制數據消費的上層應用框架。它是hiriver業務流程的實現。它需要與spirng集成使用
  4. hiriver-sample一個使用hirvier的示例

準備數據庫環境

1.創建自己的mysql 5.6.28

2.開啟row base和gtid 模式(如果使用gtid作為同步點,必須開啟)

  1. log-bin=mysql-bin 
  2. binlog_format=Row 
  3. log-slave-updates=ON 
  4. enforce_gtid_consistency=true 
  5. gtid_mode=ON 

3.創建自己的復制賬號,創建repl database和一張表,并在表示寫入數據

快速使用-binlogname + 偏移地址模式

1.下載代碼,找到hiriver-sample模塊,它是一個基于spring的web應用,有3 spring xml配置文件,分別是:

  1. spring-boot.xml # spring容器描述入口文件 
  1. spring-bin.xml # binlogname + 偏移地址模式 
  1. spring-gtid.xml # gtid模式 

2.修改示例中hiriver-sample.properties的參數,修改數據庫相關屬性、初始同步點、同步點存儲路徑和表名過濾黑、白名單配置

3.初始化同步點使用channel.0000.binlog和channel.0000.binlog.pos屬性,可以通過執行

  1. show master status 

命令獲取對應信息

修改后如圖:

4.修改spring-boot.xml中的***一行為:

  1. <import resource="classpath:spring/spring-binlog.xml"/> 

5.使用tomcat/jetty或maven jetty插件運行示例即可

快速使用-gtid模式

下載代碼,找到hiriver-sample模塊,它是一個基于spring的web應用,有3 spring xml配置文件,分別是:

  1. spring-boot.xml # spring容器描述入口文件 
  1. spring-bin.xml # binlogname + 偏移地址模式 
  1. spring-gtid.xml # gtid模式 

2.修改示例中hiriver-sample.properties的參數,修改數據庫相關屬性、初始同步點、同步點存儲路徑和表名過濾黑、白名單配置,其中channel_0000.gtid參數的配置需要從mysql中查詢數獲取,執行

  1. show master status 

命令,得到如下結果:

這是一個范圍,你只需要使用

  1. 8c80613e-ac5b-11e5-b170-148044d6636f:1 or 8c80613e-ac5b-11e5-b170-148044d6636f:8 

即可.修改后如圖:

修改spring-boot.xml中的***一行為: <import resource="classpath:spring/spring-gtid.xml"/>

使用tomcat/jetty或maven jetty插件運行示例即可

詳細參數說明

底層socket控制參數(使用TransportConfig類描述)

binlog讀取參數(DefaultChannelStream類)

數據庫配置

重點類說明

底層通信類

binlog dump類(BinlogStreamBlockingTransportImpl)

實現mysql binlog dump協議,負責與mysql建立socket連接,完成用戶名密碼驗證后,執行數據dump命令,并持續的讀取、解析mysql binlog event數據。

數據庫數據讀取類(TextProtocolBlockingTransportImpl)

mysql文本協議的實現,mysql文本協議即jdbc背后的協議,主要用于執行sql讀取數據,也可以執行一些其他的命令,比如讀取表定義的元數據等,之所以不使用mysql jdbc是由于兩個原因:一是不想引入一個第三方包,降低依賴性;二是mysql的文本協議支持更多指令,比如COM_FIELD_LIST指令方便的獲取到表字段是否為空、是否是索引字段等信息,而jdbc是個通用的api,并沒有暴露這些指令實現。

表名過濾類 (BlackWhiteNameListTableFilter)

支持黑白名單的過濾實現。 按照表名進行過濾時,表名格式為database.table(可以為正則),以逗號分隔.

當白名單和黑名單同時存在時,只有不在黑名單中同時在白名單中存在的才起作用.

e.g,在properties文件中描述

白名單:filert_white=test.account,test.user_sharding*

白名單:filert_black=test.*bak

binlog row event數據描述類(BinlogDataSet)

binlog數據是二進制數據,它遵循mysql rowbase binlog協議,在協議內部event作為一個基本單位用于描述數據庫的變更,這里的“變更”不僅僅是數據的修改,也可能是事務的開啟、結束,表的變更等,在hiriver里我們僅僅關注表數據的變更,BinlogDataSet用于描述一條或多條數據的變化,類似于jdbc的RowSet。BinlogDataSet 包括:

  1. channelId
  2. sourceHostUrl,該數據來自哪個數據庫
  3. gtId, 該數據所在的事務的gtid,在不支持gtid模式下,為null
  4. binlogPos, 當前數據所在事務的binlogfile + pos,無論哪種模式,一定補位null
  5. isStartTransEvent, 當前是否一個事務的開啟
  6. isPositionStoreTrigger,當前是否一個事務的結束,當時true時需要記錄同步點。
  7. rowDataMap, 行數據,每一行使用BinlogResultRow描述
  8. columnDefMap, 類定義描述

BinlogResultRow內部是有二個列表,一個記錄變更之前的數據,另一個記錄變更之后的數據。

數據消費類 (Consumer)

描述消費BinlogDataSet數據的接口,這個留給業務實現方來實現。

binlog流(DefaultChannelStream)

mysql binlog dump被抽象成一個流,每一個流僅僅針對一個mysql實例,這個流稱之為ChannelStream, ChannelStream負責源源不斷的從mysql實例讀取數據并過濾、解析和消費。

DefaultChannelStream是ChannelStream的缺省實現,在內部它開啟了2條線程:provider和consumer線程,provider線程負責從數據庫讀取數據,識別事務、根據表名過濾、解析成BinlogDataSet并放入ChannelBuffer;consumer線程負責從ChannelBuffer讀取數據并調用Consumer進行數據消費。

當provider線程產生數據的速度大于consumer線程消費數據的速度時,數據會被積壓在ChannelBuffer中,為了防止內存被打爆,ChannelBuffer需要實現成有界的,當ChannelBuffer達到上限時會阻塞provider線程產生新數據。

數據緩存類 (DefaultChannelBuffer)

ChannelStream中provider和consumer線程的數據通信基礎,它是ChannelBuffer的缺省實現。謹記,需要配置上限。

事務識別類(TransactionRecognizer)

用于識別事務的開啟、結束,并且記錄當前事務的開始位置。針對gtid和binlog file name + pos兩種模式,提供2種實現:GTIDTransactionRecognizer和BinlogNameAndPosTransactionRecognizer。

責任編輯:武曉燕 來源: 36大數據
相關推薦

2009-04-21 08:46:02

GoogleAndroid移動OS

2018-07-08 06:54:15

Java雙重分發Visitor

2020-12-02 13:19:47

Shell監控文件Linux

2024-05-11 11:18:21

Kafka監控框架

2023-06-26 08:22:00

2023-03-04 20:50:19

MySQL字典InnoDB

2019-12-31 14:00:35

LinuxNginx腳本語言

2019-12-31 21:26:54

系統安全網絡攻擊Linux

2018-03-06 10:03:10

微信數據監控

2019-08-02 11:09:16

大數據零售商離婚

2011-12-27 09:37:40

服務器性能監控

2020-02-19 14:17:59

RSAC 2020網絡安全信息安全

2010-05-19 17:25:06

布線測試

2019-07-22 10:45:31

2021-08-19 09:00:12

監控文件Python

2013-08-29 09:20:32

百度Clouda輕應用

2021-09-18 15:05:58

MySQL數據庫監控

2009-07-01 10:41:28

Web框架工作機會

2023-03-14 07:31:17

EoscGo語言

2010-07-13 14:09:07

SQL Server數
點贊
收藏

51CTO技術棧公眾號

精品久久国产老人久久综合| 久久美女高清视频| 日韩中文字幕在线免费观看| 亚洲xxx在线观看| 怡红院av在线| 97se亚洲国产综合自在线| 国产成人亚洲综合青青| 在线观看黄网址| 精品视频高潮| 欧美乱熟臀69xxxxxx| 成人免费看片视频在线观看| 日批视频在线播放| 麻豆成人av在线| 欧美激情一区二区三级高清视频| 久久国产精品无码一级毛片| 亚洲综合伊人| 欧美性色19p| 中文字幕色呦呦| 欧美新色视频| 国产一区二区三区在线看麻豆| 97婷婷大伊香蕉精品视频| youjizz亚洲女人| 欧美日韩麻豆| 91精品欧美福利在线观看| 日本一区二区三区免费观看| 中文天堂在线资源| 亚洲大片在线| 萌白酱国产一区二区| 色欲av无码一区二区三区| 国产一区二区三区| 欧美一a一片一级一片| 日本中文字幕网址| 日本一本在线免费福利| 中日韩免费视频中文字幕| 久久久久久久久四区三区| 国产极品久久久| 精品一区二区三区免费播放| 日韩av123| 黄色片视频网站| 国产一区二区三区自拍| 久久久精品网站| 萌白酱视频在线| 精品视频网站| 亚洲欧洲第一视频| 国产三级视频网站| 女人抽搐喷水高潮国产精品| 精品对白一区国产伦| 亚洲在线观看网站| 亚洲欧洲二区| 欧美久久婷婷综合色| 久久久久久久少妇| 性感美女一区二区在线观看| 欧美日韩一二三四五区| 国产资源在线视频| 黄色污网站在线观看| 亚洲国产成人精品视频| 中文字幕日韩精品无码内射| 羞羞的视频在线观看| 亚洲男人的天堂网| 国产精品久久久影院| 羞羞视频在线免费国产| 亚洲一区二区av电影| 99国产精品白浆在线观看免费| 激情视频在线观看| 亚洲免费观看高清完整版在线观看 | 久久99精品国产麻豆婷婷洗澡| 国产精彩精品视频| 中文字幕在线观看高清| 麻豆精品视频在线观看| 成人有码在线播放| 亚洲av无码一区二区三区dv| 国产91精品一区二区麻豆网站 | 日韩一区免费视频| av一区二区三区黑人| 久久精品一区二区三区不卡免费视频| 日本中文字幕一区二区有码在线| 久久综合精品国产一区二区三区 | 欧美国产一级| 久热精品在线视频| 久久综合综合久久| 夜夜精品视频| 国产精品高精视频免费| 国产又粗又猛又爽| 成人中文字幕合集| 久久国产精品亚洲va麻豆| 国产在线视频网| 中文字幕在线不卡国产视频| 久久久国内精品| 涩涩av在线| 欧美日本一道本在线视频| 欧美体内she精高潮| 欧美尿孔扩张虐视频| 在线视频日本亚洲性| 久久久久久久久久网站| 亚洲欧美日本日韩| 国产在线拍偷自揄拍精品| 亚洲精品.www| 国产日韩欧美激情| 中文字幕日韩精品无码内射| 自拍网站在线观看| 91精品国产欧美一区二区成人 | 欧在线一二三四区| 白嫩亚洲一区二区三区| 日韩国产欧美区| 黄色录像一级片| 性高湖久久久久久久久| 成人性生交大片免费看视频直播 | 999精品嫩草久久久久久99| 亚洲成在人线av| 免费看一级黄色| 在线亚洲观看| 亚洲尤物视频网| 国产精品一二三区视频| 亚洲va在线va天堂| 黄色一级片免费的| 色综合中文网| 久久久噜噜噜久久中文字免| 92久久精品一区二区| 久久久久久久久久电影| 97中文字幕在线| 九九九精品视频| 亚洲视频axxx| 天天操中文字幕| 成人一区二区三区在线观看| 一区二区视频在线免费| 日韩在线免费| 国产视频亚洲视频| 一级aaa毛片| 国产综合色视频| 亚洲欧洲精品一区二区| 亚洲第一av| 欧美精品一区二区三| 日本中文字幕免费在线观看| 日本免费新一区视频| 欧美日韩亚洲综合一区二区三区激情在线| 影音先锋男人在线资源| 欧美高清激情brazzers| 亚洲不卡的av| 青青青伊人色综合久久| 欧美在线一二三区| 亚洲电影观看| 国产视频精品va久久久久久| 日韩精品视频免费播放| 国产成人精品1024| 日韩一级片一区二区| 日本精品在线播放| 欧美成人免费在线观看| 99产精品成人啪免费网站| 国产精品成人网| 亚洲午夜精品一区| 国产精品成人av| 91老司机在线| 欧洲一区二区三区| 精品久久久久久久久久久久久久久久久 | 国产精品第8页| 国产女人在线视频| 欧美亚洲动漫另类| 制服丨自拍丨欧美丨动漫丨| 紧缚捆绑精品一区二区| 亚洲一区精彩视频| 国产精区一区二区| 欧美激情一区二区三区成人| 天天干天天插天天操| 黑人巨大精品欧美一区二区| 国产美女精品久久| 蜜桃精品视频在线| 欧美日韩视频免费在线观看| 视频精品一区| 97av在线视频免费播放| 男人天堂综合| 欧美日韩免费不卡视频一区二区三区| 黑人狂躁日本娇小| 国产福利一区二区三区视频| 九一国产精品视频| 精品国产一区一区二区三亚瑟| 国产专区欧美专区| 天堂av最新在线| 亚洲精品午夜精品| 亚洲综合精品国产一区二区三区 | 欧美一级免费播放| 久久av网址| 91久久精品国产91久久| 暧暧视频在线免费观看| 亚洲天堂免费视频| 国产强被迫伦姧在线观看无码| 香蕉影视欧美成人| 天天干天天操天天拍| 成人免费高清在线| 亚洲 中文字幕 日韩 无码| 天天操综合网| 精品一区2区三区| 午夜精品久久久久久毛片| 国内精品小视频在线观看| 国产精品毛片一区二区三区四区| 91精品国产高清一区二区三区蜜臀 | 国产成人综合亚洲| 最爽无遮挡行房视频在线| 日韩精品在线观看视频| 国产又粗又长又大视频| 欧美日韩一区免费| 日韩精品一区二区亚洲av性色| 99久久精品国产毛片| 亚洲视频第二页| 99在线|亚洲一区二区| 中文视频一区视频二区视频三区| 青青草原在线亚洲| 亚洲影院色无极综合| 亚洲天堂1区| 97视频在线看| 欧美人与性动交α欧美精品济南到 | 激情视频一区| 国产成人精品免费看在线播放| 久久不见久久见国语| 成人动漫在线视频| 四虎国产精品免费久久5151| 日韩免费在线观看视频| 牛牛电影国产一区二区| 久久久国产精品x99av| 国产在线资源| 亚洲精品自拍第一页| 亚洲av色香蕉一区二区三区| 欧美日韩中文国产| 无码人妻av免费一区二区三区| 亚洲一区二区在线播放相泽| 色婷婷粉嫩av| 欧美激情一区三区| 人妻体内射精一区二区| 成人免费精品视频| 中文字幕第10页| 精品中文av资源站在线观看| 在线黄色免费观看| 日韩av网站免费在线| 日韩免费毛片视频| 中文久久精品| www.99热这里只有精品| 国模吧视频一区| 日b视频免费观看| 91亚洲国产高清| 一区二区视频国产| 久久久久国产精品| 中文字幕一区综合| 天天超碰亚洲| 51xx午夜影福利| 一区二区中文| 精品无码av无码免费专区| 欧美激情第二页| 992tv快乐视频| 好看不卡的中文字幕| 久草视频这里只有精品| 影音先锋亚洲一区| 免费看国产曰批40分钟| 亚洲久久在线| 国产乱子夫妻xx黑人xyx真爽| 亚洲一区久久| 日韩欧美xxxx| 美女在线视频一区| 中文字幕在线观看日| 国产在线精品一区在线观看麻豆| 手机免费看av网站| 国产精品白丝av| 黄色在线免费播放| aa级大片欧美| 最近中文字幕在线mv视频在线| 国产片一区二区| 国产精品国产三级国产传播| 伊人性伊人情综合网| 精品一区免费观看| 色综合网站在线| 一级久久久久久久| 日韩一区二区在线观看视频| 国精产品一品二品国精品69xx| 日韩av最新在线观看| 头脑特工队2在线播放| 在线不卡国产精品| 国产精品扒开做爽爽爽的视频| 欧美精品18videos性欧| 精品91久久| 成人激情视频在线| 老牛精品亚洲成av人片| 奇米影视首页 狠狠色丁香婷婷久久综合| 黑人操亚洲人| 国产午夜精品视频一区二区三区| 国产精品综合色区在线观看| 国产aaaaa毛片| 国产不卡免费视频| 波多野结衣a v在线| 亚洲天堂2016| 国产精品久免费的黄网站| 欧美日本一区二区在线观看| 天天av天天翘| 色妞色视频一区二区三区四区| 久草在线新免费首页资源站| 国产精品6699| 国产精品毛片视频| 午夜老司机精品| 伊人成人在线| 91小视频在线播放| 91美女视频网站| www.99re7| 精品视频123区在线观看| 三级网站在线看| 欧美精品情趣视频| 国产在线|日韩| 开心色怡人综合网站| 欧美黄色一区二区| 免费看污污网站| 99视频一区二区三区| 免费成年人视频在线观看| 欧美天堂在线观看| 亚洲黄色在线播放| 超碰91人人草人人干| 国产另类xxxxhd高清| 国产伦精品一区二区三| 国产精品x453.com| 国产精品视频分类| 久久亚洲欧美国产精品乐播| 久久久久黄色片| 欧美精品日韩综合在线| 国模吧精品人体gogo| 91av国产在线| 国产成人在线中文字幕| 欧美 国产 精品| 久久国产日韩欧美精品| 免费看污片网站| 欧美日韩国产一区中文午夜| 亚洲va天堂va欧美ⅴa在线| 日韩日本欧美亚洲| 在线成人视屏| 热re99久久精品国99热蜜月| 国产日韩高清一区二区三区在线| 香蕉视频1024| 亚洲精品成人少妇| 精品人妻一区二区三区三区四区| 久久精品中文字幕| 亚洲精品大片| 中文字幕一区二区三区最新| 久久精品国产色蜜蜜麻豆| 日韩一区二区a片免费观看| 精品毛片网大全| 性xxxx视频| 欧美一级视频一区二区| 秋霞综合在线视频| 黄色网页免费在线观看| 99国产精品久| 天天操夜夜操视频| 亚洲欧美精品一区二区| 天天免费亚洲黑人免费| 欧美日韩在线精品一区二区三区| 久久xxxx| 国产精品美女高潮无套| 91国产成人在线| av在线电影免费观看| 国产欧美久久一区二区| 天天插综合网| 亚洲精品鲁一鲁一区二区三区| 亚洲一区二区三区四区不卡| 免费观看成年人视频| 欧美亚洲视频在线看网址| 亚洲男人都懂第一日本| 在线观看免费成人av| 国产精品久久久久久一区二区三区 | 精品51国产黑色丝袜高跟鞋| 97免费高清电视剧观看| 伊人久久成人| 国产精品无码久久久久一区二区| 欧洲精品在线观看| 黄色免费在线看| 国产精品二区二区三区| 国产日韩专区| 中文字幕精品亚洲| 日韩欧美亚洲国产精品字幕久久久| 久久av色综合| 欧美连裤袜在线视频| 麻豆国产精品官网| 麻豆亚洲av熟女国产一区二| 日韩av在线最新| 黄色成人在线观看网站| 欧美黄色免费网址| 久久久久久毛片| 国产日韩在线观看一区| 性欧美办公室18xxxxhd| 欧美色网址大全| wwwxxx色| 色一情一乱一乱一91av| wwwav在线| 欧美激情国产日韩| 久久99国产乱子伦精品免费| 日本免费在线播放| 中文字幕综合在线| www.久久东京| 激情五月婷婷久久| 一个色综合网站| 大片免费播放在线视频| 97超碰最新| 青草av.久久免费一区| 久久午夜无码鲁丝片午夜精品| 国产亚洲免费的视频看| 伊人久久大香线蕉av超碰| 久草综合在线观看| 一个色综合av|