开发者社区> 问答> 正文

1张表,被2个instance订阅,只有1个能同步数据

我有一个数据库,我创建了2个instance去监听这个数据库里面的同一张表test, 结果:只有1个instancet同步到了数据。

请问,上面场景,是否支持?是否是bug?

原提问者GitHub用户sherlock111

展开
收起
数据大拿 2023-05-04 18:21:13 65 0
2 条回答
写回答
取消 提交回答
  • 如果是两个完全独立的destination,是支持的,也有很多人这么玩

    原回答者GitHub用户agapple

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

    在同一个数据库中创建多个canal instance监听同一个表理论上是可以的,每个instance都会独立地从binlog中读取数据,并进行数据同步。但是需要注意以下几个问题:

    1.确保每个instance的serverId不同,以避免binlog重复读取和数据重复同步的问题。

    2.监听同一张表的多个instance需要使用相同的过滤规则,确保每个instance都能获取到相同的数据。

    3.确保每个instance的配置文件中destination的名称不同,以避免数据写入冲突。

    4.需要根据实际情况适当调整batch size和commit batch等配置项,避免内存占用过高和数据同步延迟的问题。

    如果以上问题都已经排除,但仍然存在只有1个instance能同步数据的问题,可能是canal的bug,建议升级canal的版本。

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

相关电子书

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