开发者社区> 问答> 正文

canal-server集群停止一个节点后另外节点从头开始同步的问题

目前搭建canal集群有两个节点,N个instance。其中一个canal-server节点挂掉后,instance会转移到其他节点继续和mysql进行主从同步。但是原来的canal-server本来同步到【mysql-bin.002374,316785316】这个位置了,但是转移到其他canal-server后又重新从【mysql-bin.002373,375776674】这个位置开始同步。是不是有问题呢?还是我没有配置对。 多些各位了。

原提问者GitHub用户luger1990

展开
收起
山海行 2023-04-28 15:06:42 144 0
2 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    这个问题是正常情况下的行为,原因在于当一个canal-server节点挂掉后,它上面的instance会被重新分配到其他节点,这些instance在新的节点上的同步位置会重新开始。

    因此,在Canal分布式架构中,为了能够提高服务的可用性,必须预留足够的instance容量,以便被挂掉的节点的instance可以被分配给其他正常运行的节点。

    同时,为了在canal-server集群发生故障时不至于损失过多数据,建议进行数据备份。在备份数据时,需要注意备份mysql-binlog文件和canal meta/position文件,以确保重新同步时可以从正确的位置开始同步。这样,在一个节点挂掉后,可以方便地将instance重新分配到其他节点上,并从正确的同步位置上继续同步数据。

    2023-04-29 14:41:59
    赞同 展开评论 打赏
  • 已经解决了 解决的方式就是 配置改为如下。 canal.instance.global.spring.xml = classpath:spring/default-instance.xml

    原回答者GitHub用户luger1990

    2023-04-28 15:20:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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