首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kafka不会为过期的偏移提交生成墓碑

Kafka不会为过期的偏移提交生成墓碑
EN

Stack Overflow用户
提问于 2019-12-27 14:32:25
回答 1查看 470关注 0票数 0

用例

我为卡夫卡消费集团补偿(https://github.com/cloudworkz/kafka-minion)写了一个prometheus出口商,它通过使用内部__consumer_offsets主题来工作。本主题中所有消息的键和值都是二进制的,我能够对它们进行解码。当任何组偏移到期时,Kafka应该为该键创建一个墓碑(由组id、主题名称和分区id组成)。

问题

到目前为止,这种方法非常有效,但是Kafka显然没有为一些过期的偏移/组提供墓碑。我使用以下命令讨论了偏移主题:

代码语言:javascript
复制
kafka-console-consumer.sh --from-beginning --topic __consumer_offsets zookeeper.connect=${ZOO_HOST} --bootstrap-server="${KAFKA_HOST}"  --formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageFormatter

这会产生格式化的日志行,其中包含偏移量提交以及它们的组名、partitionID和提交时间戳。它还将打印墓碑(空值)。还有一些消费者群体补偿,他们仍然没有墓碑,即使他们的补偿已经实行了6个月前(抵消保留设置为2w)。当我列出来自Kafka (使用其他shell脚本)的消费者组时,Kafka也没有列出这个消费群体--因此内部Kafka显然意识到这些抵消是过期的。

问题

为什么卡夫卡有时不为过期的补偿生产墓碑?卡夫卡是如何知道这些抵消是过期的,当它显然不依赖于接收墓碑过期的组偏移?

EN

回答 1

Stack Overflow用户

发布于 2019-12-27 23:32:24

过期的记录不会被删除:文件段只是从磁盘中删除。

听起来,您在应用程序中维护状态,而在您所消耗的记录上没有TTL。

您可能想检查一下其他普罗米修斯公司的出口商或伯劳公司是如何运作的。

您也不需要将zookeeper.connect作为该命令的一部分

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59502202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档