Apache kafka 如何将卡夫卡消费群体中的消费者补偿推进到底?
是否有一种简单的方法--使用Kafka REST API--将使用者组中所有分区上的使用者偏移量提前到分区的末尾?实际上,有时我希望跳过对所有剩余消息的消费——例如,如果我希望重新生成所有消息Apache kafka 如何将卡夫卡消费群体中的消费者补偿推进到底?,apache-kafka,kafka-consumer-api,Apache Kafka,Kafka Consumer Api,是否有一种简单的方法--使用Kafka REST API--将使用者组中所有分区上的使用者偏移量提前到分区的末尾?实际上,有时我希望跳过对所有剩余消息的消费——例如,如果我希望重新生成所有消息 我知道我可以检索消费者组、检索分区、循环并查找每个分区--有没有更简单的方法?根据上的文档,您可以通过以下请求为消费者组执行此操作: POST /consumers/testgroup/instances/my_consumer/positions/end HTTP/1.1 Host: proxy-ins
我知道我可以检索消费者组、检索分区、循环并查找每个分区--有没有更简单的方法?根据上的文档,您可以通过以下请求为
消费者组执行此操作:
POST /consumers/testgroup/instances/my_consumer/positions/end HTTP/1.1
Host: proxy-instance.kafkaproxy.example.com
Content-Type: application/vnd.kafka.v2+json
{
"partitions": [
{
"topic": "test",
"partition": 0
},
{
"topic": "test",
"partition": 1
}
]
}
不过,您需要提前知道订阅的主题和ConsumerGroup的分区
编辑:
有时我想跳过所有剩余的邮件
我在这里看到了多个选项,但在我看来,所有这些选项都相当粗糙,而且也没有使用Kafka Rest API
选择1
将主题的保留时间(retention.ms
)更改为一个较小的值(如1
),稍等片刻,让LogCleaner删除所有邮件,并将保留时间更改回正常值。然后生成新的替代数据
选择2
将所有使用者的使用者组名称更改为新的使用者组(配置group.id
),并通过设置auto.offset.reset=latest
,让使用者从主题末尾开始阅读。然后生成新的替代数据
选择3
与我的初始答案类似,使用卡夫卡工具Kafka消费群体
手动将消费群体(例如“myConsumer”)的偏移量更改为结束偏移量:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --reset-offsets --group myConsumer --topic myTopic --to-latest
我可以处理的主题,但我仍然必须获得分区。打电话只做所有分区会很酷吗?还是很有帮助的。谢谢。嗯,这似乎表明它会推动某个实例的偏移量。知道我将如何为所有现有实例这样做吗?我的用例是,我希望所有消费者跳过所有剩余的未使用数据,例如,当数据无效时,我将为主题生成新的替代数据。有更好的方法吗?嗨@PatrickSzalapski,我在回答如何处理这个用例的问题时添加了一些备选方案。你能帮我了解我在哪里可以找到卡夫卡消费群体吗?我有Windows和debian。这是一个命令行工具,应该位于您的Kafka安装目录中。