Canal高可用模式介绍
Canal HA一共分为两部分,分别为Canal Server HA 和 Canal Client HA
Canal Server HA
说明
需要特别说明的是,Canal 集群的高可用 不是基于Server级别的,而是基于instance级别的,而一个instance对应的是一个mysql实例。
打个比方
假如一共安装了两个Canal Server,数据库端一共有两个instance 需要连接,如果要实现高可用的话,需要在每个Canal Server都配置上这两个instance ,当两个Canal Server启动的时候这两个Canal Server的各两个instance 都会试图去连接这两个 mysql,如果其中一个连接成功,则会在 zookeeper 对应位置注册节点,而另一个Canal Server的instance因为没有抢占成功,处于standby状态。如果当前instance 在与mysql 建立连接并进行binlog解析时,发送一定次数的连接异常,则将会判断为当前instance失效。zookeeper删除相应节点,再次触发抢占。
部署步骤
修改canal.properties文件
canal.zkServers=xxx:2181
canal.instance.global.spring.xml = classpath:spring/default-instance.xml
canal.instance.mysql.slaveId = 1234 ##另外一台机器改成1235&#x