2015-10-09 204 views
1

我試圖建立一個卡夫卡鏡像機制的所有消息,但似乎從源頭卡夫卡集羣卡夫卡MirrorMaker消費者僅從新傳入的數據儘快讀的專題視鏡製造商的過程開始,也就是說,它不會先前在主題中讀取歷史保存的數據。卡夫卡MirrorMaker的消費者不取出由主題

我使用卡夫卡MirrorMaker類作爲:

/bin/kafka-run-class.sh kafka.tools.MirrorMaker --consumer.config consumer.config --num.streams 2 --producer.config producer.config --whitelist=".*"

consumer.config從卡夫卡源羣集讀,如:

zookeeper.connect=127.0.0.1:2181

zookeeper.connection.timeout.ms=6000

group.id=kafka-mirror

producer.config設置,以產生新的卡夫卡鏡像集羣:

metadata.broker.list=localhost:9093

producer.type=sync

compression.codec=none

serializer.class=kafka.serializer.DefaultEncoder

有沒有一種方法來定義卡夫卡MirrorMaker消費者從我的主題開始閱讀來源Kafka集羣?有點奇怪,因爲我在consumer.config設置已經定義了一個新的消費羣體(kafka-mirror),所以消費者應該只從offset 0讀,即從主題的開始。

非常感謝提前!

回答

4

看卡夫卡的消費配置auto.offset.reset參數。

從卡夫卡文檔:

auto.offset.reset最大

怎麼辦時,沒有初始的動物園管理員或者如果 誤差是超出範圍:自動:最小 *復位偏移到最小的偏移 *最大:自動復位偏移量最大偏移 *別的:拋出異常給消費者。如果將此設置爲最大,那麼消費者可能會在其訂閱的主題的 分區數在代理上發生變化時丟失一些消息。爲了防止 分區添加過程中數據丟失,設置auto.offset.reset到 最小

因此,使用smallest用於auto.offset.reset應該解決您的問題。

+0

遇到同樣的問題,試過這種相同的解決方案。沒有骰子。任何其他想法? –