我有一个数据库,我创建了2个instance去监听这个数据库里面的同一张表test, 结果:只有1个instancet同步到了数据。
请问,上面场景,是否支持?是否是bug?
原提问者GitHub用户sherlock111
在同一个数据库中创建多个canal instance监听同一个表理论上是可以的,每个instance都会独立地从binlog中读取数据,并进行数据同步。但是需要注意以下几个问题:
1.确保每个instance的serverId不同,以避免binlog重复读取和数据重复同步的问题。
2.监听同一张表的多个instance需要使用相同的过滤规则,确保每个instance都能获取到相同的数据。
3.确保每个instance的配置文件中destination的名称不同,以避免数据写入冲突。
4.需要根据实际情况适当调整batch size和commit batch等配置项,避免内存占用过高和数据同步延迟的问题。
如果以上问题都已经排除,但仍然存在只有1个instance能同步数据的问题,可能是canal的bug,建议升级canal的版本。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。