2014-10-08 49 views
2

我面临着卡夫卡话题的的getOffset奇怪的行为(希望,人们并不陌生,我只是不明白的地方),从控制台卡夫卡:一个主题的不同偏移

偏移: 第一偏移= 8625

./bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list kaf001:9092,kaf002:9092 --topic topic1 --time -2 --partitions 0 

最后偏移= 16789145

./bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list kaf001:9092,kaf002:9092 --topic topic1 --time -1 --partitions 0 

偏移从Java代码:0和16780520对应。我正在使用人造物品kafka_2.10:0.8.1.1

所以,Java返回的偏移量与控制台的偏移量不同。但是

16780520 - 0 = 16789145 - 8625. 

所以,消息的数量是相同的。

它们为什么不同?

+0

您的消费者在获取这些偏移量时是否不断消耗数据?在这种情况下,偏移量会不断更新,因此您的差异。 – mbaxi 2014-10-10 12:33:35

+0

不,我已经通过命令行和java代码请求偏移量之前停止了所有消费者/生产者。 – Natalia 2014-10-10 13:40:22

+0

你能否在这里提供java代码? – 2015-01-25 12:28:19

回答