日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Binlog同步工具Canal部署使用

發布時間:2024/4/17 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Binlog同步工具Canal部署使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

Canal介紹

早期,阿里巴巴 B2B 公司因為存在杭州和美國雙機房部署,存在跨機房同步的業務需求。不過早期的數據庫同步業務,主要是基于 trigger 的方式獲取增量變更,不過從 2010 年開始,阿里系公司開始逐步的嘗試基于數據庫的日志解析,獲取增量變更進行同步,由此衍生出了增量訂閱 & 消費的業務,從此開啟了一段新紀元。

ps. 目前內部版本已經支持 mysql 和 oracle 部分版本的日志解析,當前的 canal 開源版本支持 5.7 及以下的版本 (阿里內部 mysql 5.7.13, 5.6.10, mysql 5.5.18 和 5.1.40/48)

基于日志增量訂閱 & 消費支持的業務:

  • 數據庫鏡像
  • 數據庫實時備份
  • 多級索引 (賣家和買家各自分庫索引)
  • search build
  • 業務 cache 刷新
  • 價格變化等重要業務消息

前期準備

  • mysql的binlog模式需要是ROW,查看binlog格式命令:show variables like 'binlog_format';
  • 訂閱binlog賬號需要開啟下面3個權限:SELECT, REPLICATION SLAVE, REPLICATION CLIENT,查看權限命令:show grants for 'canal'

Canal部署

項目地址:https://github.com/alibaba/canal ,目前版本為 1.1.1。

修改配置文件conf/canal.properties

下載解壓到部署目錄,相關配置更改: 修改配置文件 conf/canal.properties

# zk的配置地址 canal.zkServers=192.168.123.123:2181 #關閉netty canal.withoutNetty = true # tcp, kafka, RocketMQ canal.serverMode = kafka #需要同步的表名 canal.destinations=student,student_extendcanal.instance.global.spring.xml = classpath:spring/default-instance.xml

根據destinations定義,在conf下創建對應目錄配置

參照 conf/example/目錄復制出 conf/student/ ,每個destinations定義的表對應一個目錄 修改 conf/student/instance.properties文件

# 數據庫配置 canal.instance.master.address=192.168.123.123:3306canal.instance.dbUsername=canal canal.instance.dbPassword=canal# 是否開啟密碼加密解析,使用druid加密,若是密碼屬于加密的,可以開啟,并修改canal.instance.pwdPublicKey canal.instance.enableDruid=falsecanal.instance.filter.regex=dbname.tablename

修改mq.yml

# kafka地址 servers: 192.168.1.1:9092,192.168.1.2:9092,192.168.1.3:9092 # 重試次數 retries: 3# 隊列定義 canalDestinations:- canalDestination: studenttopic: dada-db-dadaabc-studentpartitionsNum: 3partitionHash:dadaabc.student: id- canalDestination: student_extendtopic: dada-db-dadaabc-student-extendpartitionsNum: 3partitionHash:dadaabc.student: id

修改日志配置

修改日志路徑 logback.xml

啟動

進入bin目錄,執行 startup.sh 即可

注意事項

1.如果使用阿里云RDS,由于18小時刪除機制,超過18小時恢復需要配置oss相關設置,參見: https://github.com/alibaba/canal/wiki/aliyun-RDS-QuickStart

2.分布式主備需要引用同一個zookeeper配置。

3.如果開啟了ROW模式binlog,但消息類型仍然是QUERY,參考下圖:

則需要確認mysql設置:binlog-rows-query-log-events設置為OFF,這個問題查了好久。

轉載于:https://my.oschina.net/tree/blog/2354699

總結

以上是生活随笔為你收集整理的Binlog同步工具Canal部署使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。