我们在不同的主机上有多个卡夫卡消费者。
Consumer-1 (on server-1) consumes data from Topic-1.
Consumer-2 (on server-2) consumes data from Topic-2.
The group.id of Consumer-1 and Consumer-2 are the same.预计消费者1和消费者2可以单独运行来处理来自主题1和主题2的消息。
然而,我们发现,有时当我们重新启动Consumer-2 (在服务器-2上)时,它会尝试获取有关主题-1的元数据,最后失败了。如果我们再次重新启动它,它可能会获取有关主题-2的元数据,并按预期工作。
我很困惑,发现此页,如果它是正确的,主题再平衡的关键是(topic:consumer_group_id),为什么它不稳定?
我们使用的是卡夫卡0.11.0.1版。
发布于 2018-02-12 12:34:20
使用手动分区分配Consumer.assign方法而不是subscribe方法。使用assign,您可以更多地控制使用者应该从哪个主题分区读取数据。您还可以使用相同的group.id在Kafka中提交偏移量。
注意:使用assign机制,组内不会出现任何再平衡机制。
https://stackoverflow.com/questions/48728077
复制相似问题