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