精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

久久国产一区二区三区| 亚洲精品乱码久久久久久黑人| 日本中文字幕久久看| 成人黄色a级片| 精品国产一级| 色综合天天狠狠| 正在播放亚洲| 欧美熟妇乱码在线一区| 久久中文在线| 欧美极品少妇xxxxⅹ免费视频 | 丰满放荡岳乱妇91ww| 欧美成人久久久| 蜜桃传媒一区二区亚洲av| 午夜不卡一区| 日韩欧美第一页| 日韩一二区视频| 国产午夜视频在线观看| 国产成人日日夜夜| 国产精品电影观看| 久久免费在线观看视频| 欧美另类69xxxxx| 日韩欧美国产一区二区在线播放 | 婷婷开心激情综合| 欧美在线一区二区三区四区| 国产精品久久久久久免费播放| 亚洲人体大胆视频| 中文字幕一区二区三区电影| 动漫av在线免费观看| 亚洲伦理影院| 亚洲线精品一区二区三区| 色姑娘综合av| 黑人精品一区二区三区| 麻豆成人久久精品二区三区红 | 品久久久久久久久久96高清| 国内精品久久久久久久久久久| 日韩中文欧美在线| 国模极品一区二区三区| 国产精品一区二区亚洲| 2020国产精品极品色在线观看| 在线观看免费视频综合| 国产精品12345| a黄色片在线观看| 国产欧美精品在线观看| 国产一区二区视频在线免费观看| 亚洲图片中文字幕| 日韩精品亚洲专区| 97超碰国产精品女人人人爽| 久久亚洲成人av| 欧美肥老太太性生活| 亚洲欧美一区二区精品久久久 | 成人免费黄色在线| 亚洲精品女av网站| 亚洲视频在线观看一区二区| 国产农村妇女精品一二区| 免费91在线视频| 夜夜春很很躁夜夜躁| jizz性欧美23| 日韩欧美色电影| 乳色吐息在线观看| 亚洲高清在线一区| 制服丝袜激情欧洲亚洲| 日韩av自拍偷拍| 欧美一级做一级爱a做片性| 欧美在线不卡一区| 北条麻妃av高潮尖叫在线观看| 强行糟蹋人妻hd中文| 日本久久一二三四| 在线观看久久久久久| 精品人伦一区二区| 波多野结衣在线观看一区二区三区| 亚洲精品中文字| 37p粉嫩大胆色噜噜噜| 免费成人网www| 国产亚洲aⅴaaaaaa毛片| 波多野结衣av在线观看| 精品免费av| 深夜福利一区二区| 成人在线观看小视频| 亚洲激情中文| 欧美黑人国产人伦爽爽爽| 久久久久久久久久久久久久久久久 | 国产老头和老头xxxx×| av在线成人| 日韩午夜电影av| 在线观看亚洲免费视频| 欧美日韩破处| 亚洲香蕉伊综合在人在线视看| av片在线免费看| 一区二区中文字| 欧美激情伊人电影| 国产精品自拍99| 日韩电影在线观看一区| 91久久久亚洲精品| 日韩中文字幕免费在线观看| 久久―日本道色综合久久| 青青成人在线| 97超碰在线公开在线看免费| 亚洲午夜激情网站| 日韩中文字幕组| 精品三级在线| 精品美女被调教视频大全网站| 日韩av无码一区二区三区不卡| 色综合综合网| 久久av中文字幕| 日韩不卡视频在线| 久久国产精品99精品国产| 成人情视频高清免费观看电影| www.久久成人| 久久亚洲二区三区| 中文字幕不卡每日更新1区2区| 成人高潮aa毛片免费| 在线视频你懂得一区| 中文字幕avav| 日本在线啊啊| 欧美日韩激情一区二区三区| 国产伦精品一区二区三区精品 | 欧美日韩国产三区| 中文字幕在线三区| 在线观看国产一区二区| xxxx视频在线观看| 精品在线观看入口| 欧美风情在线观看| 中文天堂在线视频| 91女神在线视频| 一区国产精品| 偷拍视频一区二区三区| 日韩午夜精品电影| 国产精品久久国产精麻豆96堂| 国产精品久久久久久模特| 成人亚洲激情网| 无码久久精品国产亚洲av影片| 国产精品中文字幕日韩精品| 日本精品一区二区三区高清 久久| 性欧美ⅴideo另类hd| 欧美日韩国产小视频在线观看| 亚洲精品在线视频免费观看| 欧美成人69av| 91精品久久久久久久久青青| 国产在线一二三| 天天综合天天综合色| 国产精品久久久久野外| 成人综合久久| 国产精品免费视频xxxx| 天天av综合网| 午夜亚洲福利老司机| 久久久精品视频国产| 日韩久久精品| 91av成人在线| 97人妻精品一区二区三区| 欧美激情一区二区三区不卡| 蜜臀av午夜一区二区三区 | 久中文字幕一区| 成av人片在线观看www| 精品欧美黑人一区二区三区| 成人免费视频国产免费观看| 久久精品av麻豆的观看方式| 午夜欧美一区二区三区免费观看| 成人看片网页| 在线观看国产欧美| 中文字幕一区二区人妻痴汉电车| 久久久99久久| 国产一区二区在线免费播放| 日韩电影免费网址| 国产精品永久免费| av在线天堂| 欧美三级日韩在线| 亚洲综合图片一区| 国产一区二区调教| 三年中文高清在线观看第6集| www一区二区三区| 国产一区av在线| 91福利免费视频| 亚洲精品国产一区二区三区四区在线| 人妻换人妻仑乱| 欧美jjzz| 国模一区二区三区私拍视频| 在线天堂新版最新版在线8| 亚洲视频在线观看免费| 一级aaaa毛片| 亚洲夂夂婷婷色拍ww47| 国模私拍在线观看| 久久婷婷影院| 中文字幕一区二区三区四区五区| 韩国一区二区三区视频| 国内精品久久久久久| 日韩电影免费| 欧美精品在线观看一区二区| 中文字幕在线2021| 91在线精品秘密一区二区| 欧美女人性生活视频| 第一社区sis001原创亚洲| 成人福利在线观看| 大黄网站在线观看| 日韩精品在线视频观看| 精品无码一区二区三区的天堂| 亚洲同性同志一二三专区| 国产伦精品一区二区三区精品| 久久一二三区| 狠狠干视频网站| 国产亚洲电影| 97久久人人超碰caoprom欧美| 亚洲一区站长工具| 久久亚洲综合国产精品99麻豆精品福利| 亚洲国产精品无码久久| 色婷婷综合久久久久中文一区二区 | 国产夫妻在线播放| 色系列之999| 天天操天天射天天舔| 欧美色综合影院| 国产无遮挡aaa片爽爽| 国产欧美日韩久久| 日本少妇xxxx| 国产毛片精品视频| 成年人在线看片| 欧美另类综合| 午夜老司机精品| 一区二区日韩| 91免费欧美精品| 都市激情亚洲综合| 欧美激情亚洲激情| 日本在线天堂| 亚洲人成电影在线观看天堂色| 国产成人精品一区二区无码呦| 欧美在线观看视频在线| 香蕉免费毛片视频| 亚洲欧美另类久久久精品| 免费视频91蜜桃| 99久久免费国产| 国模大尺度视频| 欧美aaaaa成人免费观看视频| 丰满爆乳一区二区三区| 你懂的网址国产 欧美| 亚洲日本理论电影| 国产精品三级| 精品一区二区三区免费毛片| 精品久久福利| 日本中文字幕成人| 刘亦菲一区二区三区免费看| 国语自产精品视频在免费| av黄在线观看| 精品国产网站地址| av在线免费观看网| 夜夜嗨av一区二区三区免费区| 青青久在线视频免费观看| 精品国产一区二区三区久久久蜜月| 91亚洲视频在线观看| 在线看日韩精品电影| 国产成人无码av| 欧美视频在线观看免费网址| 国产精品a成v人在线播放| 亚洲高清视频中文字幕| 欧美激情精品久久| 亚洲免费av在线| 欧美做爰爽爽爽爽爽爽| 亚洲欧美激情小说另类| 欧洲性xxxx| 国产精品色哟哟网站| 中文字幕av久久爽一区| 中文欧美字幕免费| a资源在线观看| 国产精品国产精品国产专区不蜜| 日韩女同一区二区三区| 中文字幕电影一区| 亚洲图片第一页| 亚洲欧洲在线观看av| 久久久99999| 一区二区三区不卡视频在线观看| 青青草免费av| 亚洲丶国产丶欧美一区二区三区| 精品久久免费视频| 黑人精品xxx一区一二区| 99精品人妻国产毛片| 午夜激情一区二区三区| 日本在线观看视频网站| 色天天综合久久久久综合片| 中文字幕 日韩有码| 欧美高清一级片在线| 精品国产av 无码一区二区三区| 日韩女优电影在线观看| 五月天久久久久久| 亚洲色图13p| 麻豆最新免费在线视频| 欧美区在线播放| 美女在线视频免费| 国产精品成av人在线视午夜片| 亚洲ww精品| 国产精品99久久久久久久| 视频精品在线观看| 中文字幕99| 欧美激情91| 青青艹视频在线| 青青青伊人色综合久久| 国产精品久久久久久久99| 99久久国产综合精品女不卡| 粉嫩精品久久99综合一区| 亚洲欧洲日本在线| 亚洲免费激情视频| 欧美日韩国产高清一区二区 | 日韩电影免费观看在| 亚洲电影影音先锋| 国产91在线视频观看| 久久av中文字幕片| 欧类av怡春院| 中文字幕视频一区| 久久亚洲成人av| 日本韩国欧美一区| 精品欧美在线观看| 这里只有精品视频| free性欧美hd另类精品| 欧美激情videos| av亚洲一区| 国产欧美日韩在线播放| 免费视频亚洲| 免费网站在线观看视频| 美国av一区二区| 日本免费福利视频| 亚洲免费av在线| 制服丝袜在线一区| 亚洲精品一区二区在线| 四虎影院观看视频在线观看 | 99久久精品免费观看| 很污很黄的网站| 色哟哟国产精品免费观看| 丰满人妻一区二区三区四区53 | fc2在线中文字幕| 98精品在线视频| 日韩在线观看中文字幕| 一区二区三区四区五区精品| 性欧美videos另类喷潮| 国产精品91av| 亚洲人123区| 中文字幕乱码无码人妻系列蜜桃| 亚洲国产古装精品网站| 丝袜综合欧美| 成人精品网站在线观看| 成人综合专区| 国产精品人人爽人人爽| 久久蜜桃av一区二区天堂| 久一视频在线观看| 欧美一级在线免费| 中文字幕在线观看日本| 国产精品高潮视频| 欧美色图婷婷| 玩弄中年熟妇正在播放| 成人一区在线看| 欧洲猛交xxxx乱大交3| 7777女厕盗摄久久久| 日韩大片在线永久免费观看网站| 国产精品美女主播| 奇米影视亚洲| 97视频久久久| 成人国产免费视频| 免费观看一级视频| 欧美tickling网站挠脚心| 秋霞在线视频| wwwxx欧美| 黄色亚洲精品| 视频免费在线观看| 婷婷成人激情在线网| 欧美视频在线观看一区二区三区| 97免费中文视频在线观看| 欧美尿孔扩张虐视频| 日韩欧美国产免费| 91丨porny丨中文| 欧美一区免费看| 一区二区三欧美| 国产精品久久久久久吹潮| 色综合久久久久久久久五月| 日本成人在线一区| а天堂中文在线资源| 在线观看免费亚洲| 日韩欧美在线观看一区二区| 91精品国产精品| 久久91麻豆精品一区| 日本美女高潮视频| 中文字幕一区二区三区不卡| 99热这里是精品| 韩国日本不卡在线| 久久不见久久见国语| 麻豆三级在线观看| 亚洲另类中文字| 天堂在线资源8| 国内揄拍国内精品| 精品国产乱码久久久久久果冻传媒 | 成人黄色免费网站在线观看| 91超碰国产精品| 无码人妻精品一区二区三区99不卡| 欧美性生交xxxxx久久久| eeuss影院www在线播放| 91在线中文字幕| 欧美日韩91| 精品少妇一区二区三区免费观| 欧美日韩国产影片| 欧美人与牲禽动交com| 久久久综合香蕉尹人综合网| 精品一区二区在线视频| 久久久久无码国产精品| 国产亚洲精品激情久久| 国产区一区二| 很污的网站在线观看|