目前搭建canal集群有两个节点,N个instance。其中一个canal-server节点挂掉后,instance会转移到其他节点继续和mysql进行主从同步。但是原来的canal-server本来同步到【mysql-bin.002374,316785316】这个位置了,但是转移到其他canal-server后又重新从【mysql-bin.002373,375776674】这个位置开始同步。是不是有问题呢?还是我没有配置对。 多些各位了。
原提问者GitHub用户luger1990
这个问题是正常情况下的行为,原因在于当一个canal-server节点挂掉后,它上面的instance会被重新分配到其他节点,这些instance在新的节点上的同步位置会重新开始。
因此,在Canal分布式架构中,为了能够提高服务的可用性,必须预留足够的instance容量,以便被挂掉的节点的instance可以被分配给其他正常运行的节点。
同时,为了在canal-server集群发生故障时不至于损失过多数据,建议进行数据备份。在备份数据时,需要注意备份mysql-binlog文件和canal meta/position文件,以确保重新同步时可以从正确的位置开始同步。这样,在一个节点挂掉后,可以方便地将instance重新分配到其他节点上,并从正确的同步位置上继续同步数据。
已经解决了 解决的方式就是 配置改为如下。 canal.instance.global.spring.xml = classpath:spring/default-instance.xml
原回答者GitHub用户luger1990
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。