2017-06-05 52 views
0

我們有一個包含5個分區的主題。我們正在根據密鑰的校驗和定義分區。有些情況下,沒有解決分區3的密鑰,所以沒有提交。因此,在配置的偏移保留天數之後,消費者當前偏移開始顯示未知。我們需要解決這個問題,因此我們認爲我們必須在主題級設置日誌和偏移保留。 在配置中,我看到我們有配置:retention.ms用於日誌保留,但沒有找到相應的偏移保留配置。有人可以請同樣的幫助。主題級別的kafka偏移和日誌保留配置

編輯: 倉/ kafka-topics.sh --zookeeper XXX --alter --topic XXXX --config retention.ms = 86400000

上述用於設置特定日誌保留時間到主題。但是,我們如何在查詢中指定偏移量保留。

回答

0

承諾所有消費者的消費者偏移量和所有主題都存儲在一個內部的「__consumer_offsets」主題中。因此,恐怕不能單獨控制每個主題的偏移保留。

注意:我發現這對於長時間沒有任何主題分區信息的情況可能會有問題。

我發現下面的票證能有所幫助: https://issues.apache.org/jira/browse/KAFKA-3806

第一個意見建議提交偏移甚至在消費者毫無進展的情況下(沒有到達一個給定的分區新的消息) ,爲了避免這種確切的問題:

你想保持犯下的偏移量,即使他們並沒有改變

+0

我有另一個問題。我試着做偏移量保留。在kafka配置文件中的分鐘數爲1分鐘,以測試偏移量是否未知且等待超過一小時(偏移量清除間隔爲10分鐘)。但它沒有改變。 –

+0

我認爲偏移量(如任何主題)一次只能移除一個段(而不是活動段),所以我認爲出於測試目的,您還必須確保偏移量主題的段正在滾動。我無法建議如何正確設計此測試。以下更好地說明了段刪除如何工作:https://stackoverflow.com/a/40251356/7897191 –

+0

謝謝Michal Borowiecki –

0

我認爲您正在尋找log.retention.bytes

然而,在保留期內根本沒有數據是您應該解決的問題。通過減少分區數量或使用其他算法創建密鑰。

+0

感謝jvwilge。編輯:bin/kafka-topics.sh --zookeeper XXX --alter --topic XXXX --config retention.ms = 86400000 以上內容用於設置特定於主題的日誌保留時間。但是,我們如何在查詢中指定偏移量保留。 –

+0

你究竟是什麼意思?例如,你想在最近的X小時內添加數據嗎? – jvwilge

+0

我想爲每個kafka主題配置日誌保留和偏移保留。是否有可能,如果是的話,如何做到這一點? –

0

可以配置取捨使用參數「offsetsets.retention.minutes」保留server.properties中的值。默認值是1440

抵消保留是系統範圍,因此您無法在單個主題級別上設置它