公司涉及到业务团队与IM团队的数据同步,为了解耦避免修改我们这边的代码,同时为了性能考虑,打算用canal来处理。

具体步骤都是参考了canal官方的文档
1、安装canal-admin
一个canal-admin是可以管理多个canal集群的。所以我把canal-admin安装在了base命名空间下。
配置好canal-manager数据库后,安装admin到base命名空间下。
1 | # 切换至base命名空间 |
我们现在是每个命名空间一个canal集群,dev、test、pre分别对应了三个环境。
2、安装zookeeper集群
1 | # 切换到preview命名空间 |
安装完成后,把zookeeper的k8s service地址填到canal-admin中。
然后可以针对这个集群添加主配置,这个配置就是集群下所有canal-server的instance默认的配置,在这里可以配置canal-admin地址、记录表结构发生变化的tsdb的地址、消息队列的地址:
1 | ################################################# |
3、部署canal-server
1 | # 主要配置 |
部署canal-server
1 | helm install canal-server -f ./server-values.yaml ./canal-server |
这个canal-server是可以部署多个replica的
instance 实例创建
1 | # 配置你要监听的数据库 |

