设置tention.ms时,Kafka没有清除数据

时间:2018-07-31 01:31:17

标签: apache-kafka kafka-consumer-api kafka-producer-api kafka-topic

因此,当我寻找一种方法来统计主题中的消息时,这很好

kafka-run-class kafka.tools.GetOffsetShell --broker-list broker1:9092,broker2:9092,broker3:9092 --topic rev-dly-upd --time -1

唯一的是,当我将retention.ms配置更改为retention.ms=1000时,甚至通过运行kafka-topics --describe --zookeeper zookeeper1:2181 --topic rev-dly-upd来检查是否已配置了该主题。我可以清楚地看到该配置设置为1000 ...

Topic:rev-dly-upd   PartitionCount:8    ReplicationFactor:3 Configs:retention.ms=1000
    Topic: rev-dly-upd  Partition: 0    Leader: 159 Replicas: 159,96,160    Isr: 159,96,160
    Topic: rev-dly-upd  Partition: 1    Leader: 160 Replicas: 160,159,94    Isr: 94,160,159
    Topic: rev-dly-upd  Partition: 2    Leader: 94  Replicas: 94,160,95 Isr: 95,94,160
    Topic: rev-dly-upd  Partition: 3    Leader: 95  Replicas: 95,94,96  Isr: 95,96,94
    Topic: rev-dly-upd  Partition: 4    Leader: 96  Replicas: 96,95,159 Isr: 95,96,159
    Topic: rev-dly-upd  Partition: 5    Leader: 159 Replicas: 159,160,94    Isr: 159,94,160
    Topic: rev-dly-upd  Partition: 6    Leader: 160 Replicas: 160,94,95 Isr: 94,160,95
    Topic: rev-dly-upd  Partition: 7    Leader: 94  Replicas: 94,95,96  Isr: 95,96,94

但是,当我运行kafka-run-class kafka.tools.GetOffsetShell --broker-list broker1:9092,broker2:9092,broker3:9092 --topic rev-dly-upd --time -1时,我总是会得到返回的记录。原因可能是什么?

1 个答案:

答案 0 :(得分:0)

基本上,我不得不停止使用kafka-run-class kafka.tools.GetOffsetShell来统计主题中的消息。如果您在Google中搜索“如何计算kafka主题中的邮件”,那么很多帖子和事情都会使您认为,上面的命令给出正确的参数后,会为您提供总邮件数。但是,如果您在该主题的使用期限内清除了消息,则不会为您提供准确的计数。您只需要执行以下操作:打开控制台使用者,输出到文本文件,然后使用老式的wc -l读取该文件的行。