2016-01-20 116 views
1

在我的卡夫卡消費者線程(高電平),之後我所消耗的消息我申請了一些業務邏輯來此留言和轉發此爲WS。但是這個webservice有時可能會關閉,並且由於我從kafka中消耗了這個對象,並且偏移向前移動,所以我會錯過這個對象。複用消費者和生產者在卡夫卡

一種方式擺脫從這個問題是在動物園管理員禁用自動提交,並通過調用programmaticaly犯偏移,但我希望這是一個非常昂貴的操作。我將以大約2000 tps的速度生產卡夫卡,並可能會延長時間。

另一種方式 - 我不確定它是否是一個好主意 - 如果我面對任何問題,再次產生這個消耗的對象給卡夫卡,但我沒有看到任何與我的所有googleings相關的帖子。這是一件甚至不相稱的事情嗎?

能否請你給我講處理這種情況的一些見解。

由於

+0

你能解決這個問題嗎? – Nautilus

回答

1

您可以張貼回失敗的消息同一主題或其他您所選擇的。

如果使用相同的話題,你將在主題末尾推的消息,他們將在別人之後有所回升(所以如果爲了事宜,你不這樣做)。另外,如果您在發送消息之前執行的操作不是冪等的,那麼您將不得不採取一些措施來識別這些記錄,以便它們不會執行兩次操作。

如果您使用failed_topic,則可以將無法發送到此主題的消息推送出去,並且當WS再次健康時,您需要創建一個消費者,它將消耗所有消息並將消息發送給WS。

希望它有幫助!

+0

感謝您的建議。我開始像上面解釋的那樣執行;) – jit