开发者社区> 问答> 正文

请教几个Canal使用的几个问题,多谢

1、文档说多个canal实例的serverId不能重复,请问有啥影响?我试的好像没什么问题

2、instance.properties里面的正则监听一个表和多个表对canal服务端性能影响大吗,因为我们的表是动态生成的,如果影响不大在客户端动态订阅就好了

3、多个otter客户端连接同一个canal时我发现一条消息只会收到一次,请问这个特性靠谱吗?

原提问者GitHub用户zhufeizzz

展开
收起
绿子直子 2023-05-09 16:03:32 178 0
2 条回答
写回答
取消 提交回答
  • 1、同一个mysql主备集群serverId,出现重复的时候,mysql会随机kill一个客户端链接

    2、正则表达式会有长度限制,相比于正则计算,网络I/O会先成为瓶颈

    3、建议一个server只有一个client,server和client都使用HA的模式,可以保证只有一个client工作,并且client能收到全部数据

    原回答者GitHub用户agapple

    2023-05-10 11:02:20
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    1、如果多个canal实例的serverId重复,可能会导致数据重复或者丢失的问题。因为canal会根据serverId来判断哪些数据已经被消费过,如果有多个实例的serverId重复,就会出现数据被重复消费或者消费不到的情况。

    2、如果监听的表比较多,可能会对canal服务端性能有一定影响,建议根据实际情况来选择监听哪些表。如果表是动态生成的,建议在客户端动态订阅,可以有效减少canal服务端的压力。

    3、多个otter客户端连接同一个canal时,canal会将同一条消息广播给每个客户端,确保每个客户端都可以消费到完整的数据。这个特性是靠谱的,可以有效避免数据丢失或者消费不到的问题。

    2023-05-10 10:46:36
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载