2016-04-05 30 views
1

我正在使用卡夫卡0.9。我想知道是否有任何方法通過了解分區和偏移量從其主題中檢索已處理的消息。例如,消費者正在消費分區1和偏移10處的消息。並且我想在相同分區和偏移5處獲得消息。通過了解卡夫卡的分區和偏移量來獲取消息

我能想到的一種方法是將偏移重置爲5並消耗一條消息。但是poll()方法只能返回一批消息。所以我必須先聽取第一條信息,不要理睬其他人。處理完消息後,偏移被重置。

我認爲這會奏效。但仍然想知道是否有其他優雅的方式。

+0

'但是poll()方法只能一批messages'返回 - >如果你不設置batch.size 0 – C4stor

回答

2

Kafka設計用於從磁盤讀取長條數據而不移動磁盤磁頭 - 換句話說,它優化爲使用線性讀取。忽略必須從磁盤讀取的數據(可能通過網絡服務)的整個數據塊似乎效率不高,但實際上使磁盤頭跳轉很多的效率低得多。查看卡夫卡的設計理念,瞭解它的使用方法,here

換句話說,你的方法可能有效。但是你更像是有人使用關係數據庫而不是消息系統。

+0

謝謝!我完全同意。卡夫卡是消息系統,在消息檢索中效率不高。由於我在這種情況下需要重新調用一些沒有外部存儲支持的消息,因此我必須找出正確的方法。這種情況不會經常發生,所以我不擔心效率。 – sudododo

相關問題