开发者社区> 问答> 正文

canalv1.1.2使用HA模式对接kafka

环境信息

canal 1.1.2 mysql 5.6

问题描述

canal server HA模式下 使用tcp模式,发生主备切换时可以正常解析binlog的接收binlog

对接kafka时,发生主备切换后不再正常解析和接收binlog

手动停止当前running的节点后,主备切换成功了,instance正常启动,也从zookeeper获取到了上次解析的位点信息,但是对于新的binlog,没有继续解析并投递到kafka。

我这里准备了2台canal server 和 3台zookeeper,出现上述情况后,我将所有的canal server都停掉,然后启动其中一台,这时就自动从上次解析的点位正常投递到kafka中了。

请大神解答疑惑。

原提问者GitHub用户shubiao-yao

展开
收起
古拉古拉 2023-05-08 16:38:15 579 0
3 条回答
写回答
取消 提交回答
  • 您遇到的问题可能和canal server在高可用模式下无法正确切换主备节点有关。出现这种情况的原因可能是主备节点间网络通信出现问题,导致canal server无法正确获取到binlog并发送到kafka。

    解决这个问题的一个方法是检查网络设置,确保主备节点之间的连接正常。另外,您可以尝试使用canal server在高可用模式下使用UDP模式进行通信,这也许能够解决您的问题。您可以参考canal server的文档了解如何设置UDP模式。

    此外,还有一些其他的可能性需要排除。例如:kafka集群是否正常工作、binlog解析是否正确等。您可以针对这些可能的问题进行一一排查,并逐步解决。

    2023-05-14 08:11:07
    赞同 展开评论 打赏
  • 1.1.2的一个已知问题,可以尝试一下1.1.3

    原回答者GitHub用户agapple

    2023-05-09 18:14:36
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    可能是因为在主备切换时,canal server HA模式下使用的是不同的ip地址或者hostname,导致kafka无法正确地接收到binlog信息。可以尝试在canal server HA配置中指定固定的ip地址或者hostname来解决这个问题。另外,也可以查看canal server和kafka之间的网络连接是否正常。

    2023-05-08 16:44:17
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第16讲】:Spring Boot 2.0 实战Apache Kafka百万级高并发消息中间件与原理解析 立即下载
MaxCompute技术公开课第四季 之 如何将Kafka数据同步至MaxCompute 立即下载
消息队列kafka介绍 立即下载