六、总结
1. 启动两个监听example1的canal client,启动两个监听example2的canal client:
在example1或example2对应的数据发生变化时,两个canal client只有一个消费消息。
当两个监听同一个队列的canal client有一个宕掉时,再有数据变化时,剩下的一个canal client就会开始消费数据。
这就验证了canal client的HA机制:为了保证有序性,一份instance同一时间只能由一个canal client进行get/ack/rollback操作,否则客户端接收无法保证有序.
2. 启动两个canal server并在zk上注册
当停掉其中一个canal server时,当产生数据变化时,整个canal server集群仍可以正常对外提供服务。
这就验证了canal server的HA机制:为了减少对mysql dump的请求,不同server上的instance要求同一时间只能有一个处于running,其他的处于standby状态.
3. 在canal server切换过程中,canal client存在重复消费数据的问题
这点需要在消费端自行进行处理。