2016-02-13 34 views
0

我們的30個主題都是在我們的kafka中使用10個分區創建的。我們通過分區監控所有主題/組標識的滯後。使用高級消費者閱讀卡夫卡日誌時,存在不一致的分區滯後值

我們使用Fluentd插件來讀取和路由來自kafka的日誌。該插件是使用高級消費者實現的。我們爲某些主題配置了一些消費者,爲一些插件的主題配置了一些消費者。總體而言,除了其中的3個主題外,數據流暢無阻。

問題是,對於正在處理的30個主題中的3個,我們看到分區滯後值不一致,即,通過查看特定主題/組ID的滯後值,某些分區的滯後時間遠遠高於其他分區,有時高達30k。然而,對於其他27個主題,所有分區的滯後數保持一致,一個主題/組ID的所有分區都保持在彼此的近距離內(例如,所有分區都在12和18之間)。

幾乎每次我們重新啓動Fluentd代理(重新啓動高級用戶)時,我們都會看到這三個主題的滯後開始平滑,有時它們會保持一段時間的一致,然後再次滯後數字開始變成鋸齒形。這隻發生在3個主題上。但是當我們檢查這3個主題的分佈時,一切看起來都很正常。

我們對此感到茫然。高級用戶不會編寫管理從分區中檢索數據的代碼。它是處理該部分的kafka庫。所有消費者代碼指定的是線程的數量。我們已經嘗試過10次,5次,並且在所有情況下(特別是10次和5次線程),滯後不一致性一直在顯示這3個主題。每個主題的數據量都不到每小時30k。

有什麼建議可能是什麼原因?可以做些什麼呢?

真的很感謝您的幫助提前。

回答

0

根據所提供的細節,我將開始着眼於下面的幾點,我想你應該已經看過它們了。

  1. 比較3個主題與其他主題產生的消息的趨勢。同時檢查發佈到這些主題的消息大小與其他主題。
  2. 只需將有問題的3個主題移動到另一個流暢的實例來驗證滯後行爲。

請不要讓我知道櫃面你更發現了什麼或者解決一些細微的調絃的問題

+0

THX您的答覆。是的,我已經完成了這些。沒有關於這些主題流程或味精大小的具體內容。我們有其他話題,流量越來越低。消息大小很小。我已經啓動了另一個流暢的服務器,只有這三個主題,並且出現了相同的incosistent/Zigzag滯後值。我在新服務器上測試了6個其他主題,就像在原始服務器上一樣,所有主題的行爲均如預期:所有分區的一致/平滑滯後值。 我的猜測是卡夫卡的這三個話題有些關係。但不能猜出它可能是什麼。 – FZF

+0

忘了提及同一個3個主題正在被另一個高級消費者使用1個線程處理,並且這些滯後都很順利。 – FZF

+0

明白了。在這三個主題上,有不同的分區或複製數量有什麼不同。在fluentd消費3個主題vs其他消息(意味着數據庫或其他任何更新)之後是否有任何特定的過程? fluentd上的垃圾回收如何?它看起來好嗎? – Mehul