测试告诉说kafka的topic列表里面新加入了一个topic,然后就不消费数据了;

自己验证了一下,确实这样,如果去掉新的topic,数据就可以正常消费;

然后我查看定义发现,topicA是1个分区; topicB是两个分区;topicNew是12分区;

1、难道分区不一样导致的;然后否决了这个项目,因为消费总共使用了4个线程,在日志里面,总共四条,说明:四个线程消费topic的情况,对应的每个topic的分区号,所以没问题

cat info.log |grep 'Setting newly'

 2、认真看topic的定义发现,明显是没有这样的leader的。

 然后就删掉(删干净,zookeeper数据),重建只有1个分区,然后测试,可以正常消费数据;

kafka-topics --zookeeper data2:2181,data3:2181,datan1:2181 --delete--topic topicNew

kafka-topics --zookeeper data2:2181,data3:2181,datan1:2181 --list

对应的topic并没有删掉,需要在zookeeper中删除

zookeeper-client

rmr /borkers/topics/topicNew

rmr /admin/delete_topics

kafka-topics --zookeeper data2:2181,data3:2181,datan1:2181 --create --replication-factor 1 --partitions 1 --topic topicNew

 说明:多加topic是不影响客户端消费的,那多分区是怎么回事??

然后删掉topic(删干净,zookeeper数据),继续建立12个分区,然后查看topicNew的实际情况

kafka-topics --zookeeper data2:2181,data3:2181,datan1:2181 --describe --topic topicNew

 发现leader都是none,重启程序,然后就是程序就开始不能消费数据了!!

至于leader:none, 那就说明kafka服务在同步信息时候出现了问题,

开始处理,首先删除topicNew(删干净,zookeeper数据),然后重启kafka服务;然后建立12分区

 验证重启程序,可以正常消费!

说明:客户端消费是不在乎多个topic是否分区数一样,参考着权威指南的图改了一下

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐