栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

canal往kafka生产消息,部分消息可见,原因及解析

canal往kafka生产消息,部分消息可见,原因及解析

bug重现

kafka消费者只能消费到部分canal传到kafka的数据

[2021-12-21 21:39:23,851] WARN [Consumer clientId=consumer-console-consumer-66962-1, groupId=console-consumer-66962] Connection to node 4 (hadoop104/192.168.100.104:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
原因

按主键分区的前提下,canal设置的分区数大于kafka主题分区数量
canal设置中分区数为4,canal在kafka的主题数量是1
导致canal按主键送往相应的分区,只有部分数据送往了0号分区,因为kafka中不存在其他分区,所以接受不到canal的数据送往其他分区的数据

解决

1、修改canal的/conf/example/instance.properties文件
确定canal.mq.partitionsNum=4
2、修改kafka的配置文件/config/server.properties文件
修改num.partitions=4 (新建topic的初始分区数尽量大于等于canal的分区)
3、因为修改了kafka的新建topic分区数量,要删除原来的主题,
关闭canal-》删除对应的主题-》重启kafka-》重启canal

验证

启动kafka消费者,改变canal所监控的数据库的数据
可以看到所有的数据

遗留问题

canal送往其他分区的消息,既然kafka中没有对应的分区,为什么没有报错呢?

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/673760.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号