2017-10-20 91 views
0

我的問題是,我有三個經紀人Kafka集羣和一個可用性要求,當我的三個經紀人中有一個或兩個經紀人倒閉時,可以訪問並獲得一個主題。爲什麼我的卡夫卡主題不能和經紀人一起消費?

我也有一個複製因子爲3的可靠性要求。這些似乎對我有衝突的要求。這裏是我的問題是如何體現:

  1. 我創建了一個新的話題複製因子3
  2. 我發幾條消息,該主題
  3. 我殺了我的經紀公司之一,以模擬代理問題
  4. 我試圖消耗我創建的主題
  5. 我的消費掛起
  6. 我回顧我的日誌,看看錯誤: 活着經紀人數「2」不符合上面的偏移量所需的複製因子「3」 IC

如果我把所有經紀人的offsets.topic.replication.factor設置爲1,那麼我就能夠生產和消費我的話題,即使我的主題級別複製因子爲3

這是一個好的配置嗎?或者你可以通過這種方式看到任何陷阱嗎?

回答

0

創建主題時,您只需要與您的複製因子一樣多的代理。

我想你的情況,你開始一個新的集羣,並沒有消費者已經連接。在這種情況下,__consumer_offsets內部主題不存在,因爲它僅在首次需要時才創建。因此,首先連接一個消費者一會兒,然後殺死其中一個經紀人。

除此之外,爲了消耗你只需要1個經紀人,分區的領導者。

+0

就是這樣!謝謝你Mickael Maison! –

+0

我真的很難重現我的問題。但是,如果我去刪除所有偏移主題以強制用戶重新創建它們,我會再次出現錯誤。獲得的經驗:如果您關閉代理並且您的offset.replication.factor當前不可滿足,請不要讓消費者連接到新羣集。 –

相關問題