如何重置,更新或清除Kafka中某个主题的每个消费者群体的偏移量?

时间:2017-05-20 08:47:49

标签: apache-kafka apache-zookeeper

我有一个主题让我们说作为test001,假设主题中有10000条消息。我有两个消费者群体让我们说test-group1和test-group2来消费上述主题的消息。

如果test-group1使用者消耗了4000条消息而test-group2消费者消耗了4500条消息,那该怎么办呢?

  1. 将test-group1使用者组的偏移重置为0?
  2. 将test-group1使用者组的偏移更新为4500?
  3. 从主题中删除邮件并将所有使用者组的偏移重置为0?

3 个答案:

答案 0 :(得分:0)

我认为你不能在消费者群体层面重置偏移量。您可以使用MixedCase方法(在Java客户端API中)移动到分区的开头(偏移0),结束或您选择的任何其他偏移。尝试探索一些CLI选项,例如kafka-consumer-groups.sh,kafka-topics.sh

答案 1 :(得分:0)

此票证显示可以使用特殊的“__admin_client”ID直接生成__consumer_offsets主题以覆盖偏移量:

https://issues.apache.org/jira/browse/KAFKA-5246

我不熟悉__consumer_offsets主题消息的格式。这篇文章可能会有所帮助,但你需要自己做更多的事情:

http://dayooliyide.com/post/kafka-consumer-offsets-topic/

编写一个应用程序可能更简单,因为您的组ID会搜索给定位置并提交偏移量。

答案 2 :(得分:0)

为每个主题+分区+ group.id存储偏移,而不是整个主题的整体。您无法删除已提交的偏移量,仅提交较新的偏移量,或等待它们从_consumer-offsets主题到期(默认为24小时)。

在0.11中将有一个偏移管理工具,因此您可以独立于消费应用程序更改CLI的偏移量。