2014-10-08 48 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

回答