1、文档说多个canal实例的serverId不能重复,请问有啥影响?我试的好像没什么问题
2、instance.properties里面的正则监听一个表和多个表对canal服务端性能影响大吗,因为我们的表是动态生成的,如果影响不大在客户端动态订阅就好了
3、多个otter客户端连接同一个canal时我发现一条消息只会收到一次,请问这个特性靠谱吗?
原提问者GitHub用户zhufeizzz
1、同一个mysql主备集群serverId,出现重复的时候,mysql会随机kill一个客户端链接
2、正则表达式会有长度限制,相比于正则计算,网络I/O会先成为瓶颈
3、建议一个server只有一个client,server和client都使用HA的模式,可以保证只有一个client工作,并且client能收到全部数据
原回答者GitHub用户agapple
1、如果多个canal实例的serverId重复,可能会导致数据重复或者丢失的问题。因为canal会根据serverId来判断哪些数据已经被消费过,如果有多个实例的serverId重复,就会出现数据被重复消费或者消费不到的情况。
2、如果监听的表比较多,可能会对canal服务端性能有一定影响,建议根据实际情况来选择监听哪些表。如果表是动态生成的,建议在客户端动态订阅,可以有效减少canal服务端的压力。
3、多个otter客户端连接同一个canal时,canal会将同一条消息广播给每个客户端,确保每个客户端都可以消费到完整的数据。这个特性是靠谱的,可以有效避免数据丢失或者消费不到的问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。