环境信息
canal version 1.1.3 mysql version 5.7.5
问题描述
早上我使用canal1.1.2测试HA高可用,发现两者之间切换有问题但是全部关闭再起一个canal server服务是能接着正常抽取的,而且在zkui里能看到position的实时变化。下午换成了canal1.1.3发现position信息并不会实时更新到zookeeper里,而且两个canal server之间来回切换每次总是获取的固定不变的position,就算之起一个canal server然后停止再启动在zookeeper里获取的还是固定不变的position
原提问者GitHub用户lijif
在Canal 1.1.3中,binlog位点信息默认是通过MQ进行传递的,而不是直接存储到Zookeeper中。因此,您需要确保MQ正常工作并正确配置,以便Canal能够正确地处理位点信息。
如果您使用的是Kafka作为MQ,则需要确保Kafka的分区数与Canal的worker线程数相匹配,并且使用正确的分区分配策略。您可以检查Canal的日志文件以查看它是否正确地分配了分区,并查看Kafka的日志文件以查看消息是否正确地发送到了Kafka的各个分区中。
如果使用的是其他的MQ,例如RocketMQ或者ActiveMQ等,则需要确保它们的配置正确,并能够正确地处理Canal发送的消息。
另外,如果您确信MQ已经正确配置,但仍然无法获取到实时更新的位点信息,可能是由于Canal的某些配置问题或者版本问题导致的。建议您检查Canal的日志文件以查看是否存在异常或者错误信息,并尝试使用较新的版本进行测试。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。