我的需求是我有多个消费者,需要重复消费某一个topic。
场景是sparkstreaming消费kafka数据
在这里sparkstream和kafka都是单节点的集群模式。
同时起两个不同的groupid的应用,发现会发生后起来的应用消费不到数据。
按理来讲不同的groupid属于不同的消费组,不会相互影响。由于是使用的cdh集成的kafka,不知道cdh里的zookeeper管理kafka的数据存在了什么地方,也无从考证kafka消费者的相关信息。
于是修改了创建topic的语句。
之前创建topic的时候都是一份备份,一个分区。
现改成了三个备份三个分区。
结果就能够满足我的需求了,多个应用程序可以重复消费同一个topic了。
这个需要我后面要就下,zookeeper管理kafka 的数据存到了什么地方,已经创建了三个备份三个分区之后,每个分区里的数据是不是一样才使得其能够满足多个应用。
还有个问题就是在其他的机器上,同样是单节点的集群环境,topic及时只是单个备份,指定一个分区对应用不会产生影响,这个现象还有待后续再研究一下。