具有相同group.id的kafka消费者可以分别使用不同的主题

时间:2018-02-11 03:45:40

标签: java apache-kafka kafka-producer-api

我们在不同的主机上有多个kafka消费者。

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.

预计Consumer-1和Consumer-2可以单独运行以处理来自Topic-1和Topic-2的消息。

但是,我们发现有时当我们重新启动Consumer-2(在服务器-2上)时,它会尝试获取有关Topic-1的元数据并最终失败。如果我们再次重新启动它,它可能会获取有关Topic-2的元数据并按预期工作。

我很困惑并找出this page,如果它是正确的,主题重新平衡的关键是(主题:consumer_group_id),为什么它不稳定?

我们正在使用kafka版本0.11.0.1。

1 个答案:

答案 0 :(得分:0)

使用手动分区分配Consumer.assign方法代替subscribe。使用assign,您可以更好地控制消费者应从哪个主题分区读取数据。您也可以使用相同的group.id

在Kafka中提交偏移量

注意:使用assign机制,组内不会发生任何重新平衡机制。

相关问题