canal雲平台部署方案


canal平台化部署方案

什么是canal

canal主要用途是基於 MySQL 數據庫增量日志解析,提供增量數據訂閱和消費,基於日志增量訂閱和消費的業務包括:

ü  數據庫鏡像

ü  數據庫實時備份

ü  索引構建和實時維護(拆分異構索引、倒排索引等)

ü  業務 cache 刷新

ü  帶業務邏輯的增量數據處理

canal的工作原理

ü  canal模擬MySQL slave的交互協議,偽裝自己為 MySQL slave,向 MySQL master 發送dump 協議

ü  MySQL master收到dump請求,開始推送binary log 給slave(即canal)

ü  canal解析binary log對象(原始為 byte 流)

 

 

 

 

 

 

canal部署架構圖                

canal-admin,設計上是為canal提供整體配置管理、節點運維等面向運維的功能,提供相對友好的WebUI操作界面,方便更多用戶快速和安全的操作。

 

canal-server,與mysql交互,拉取binlog日志數據,完成數據解析、加工、分發等工作

 

zookeeper,canal server 集群的高可用(HA)依賴Zookeeper的特性實現,利用zookeeper的搶占EPHEMERAL節點的方式進行控制,同一時間只有一個canal server實例與mysql binlog交互。

 

 

 

組件關系說明:

Zookeeper集群:注冊Canal server節點信息

Mysql:存儲canal的配置信息

Promethus:拉取canal server的監控指標數據

Grafana:展示canal監控數據

canal 部署環境變量

canal admin部署

鏡像:harbor.yundasys.com/base/canal/canal-admin:1.1.5

環境變量:

      

環境變量

說明

spring.datasource.address

Admin連接的mysql地址,IP + port

spring.datasource.password

Mysql 數據庫密碼

spring.datasource.username

Mysql數據庫用戶名

canal.adminPasswd

設置canal server連接的密碼

canal.adminUser

設置canal server 連接的用戶

 

canal server部署

鏡像:harbor.yundasys.com/base/canal/canal-server:1.1.5

環境變量:

環境變量

說明

canal.zkServers

Canal server節點注冊的zk集群

canal.register.ip

當前節點運行的IP,用於在admin顯示

canal.port

Canal服務暴露的端口,用戶客戶端連接

canal.metrics.pull.port

Canal服務暴露監控數據拉取端口,用來與promethus進行交互

canal.admin.port

Canal admin連接server的端口,實現對server的管理

canal.admin.user

Canal server連接admin的用戶名

canal.admin.passwd

Canal server連接admin的密碼

canal.admin.manager

Canal server 連接 admin的 地址

canal.admin.register.auto

開啟自動注冊,server節點啟動后自動在admin中顯示

canal.admin.register.cluster

該canal server節點所屬的server集群名稱

 

canal server集群擴容

目前canal server集群實現K8s部署方式,可以無感知擴展pod,實現節點穩定性

業務方申請流程

待完善

canal instance命令規則

instance + “_” + 團號 + “_” + 業務代號

如:instance_x05_dsync


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM