2016-01-08 81 views
0

我是卡夫卡的新手,並閱讀了很少的教程。我無法理解消費者和分區之間的關係。卡夫卡消費者和分區查詢

請解決我下面的問題。

  1. 根據文檔,只有一個消費者可以消費組中的消息。爲什麼我們需要在同一組中創造更多的消費者?有什麼好處?

  2. 消費者是否被ZK分配給個別分區? ,如果是,如果生產者將消息發送到不同的分區,那麼其他分區的消費者將如何消費該消息?

  3. 我有一個主題,有3個分區。我發信息,它去P0。我有5個消費者(不同的消費羣體)。所有消費者是否會從P0讀取消息?如果我增加很多消費者,都會從同一P0讀取消息嗎? 如果所有消費者從相同的PO中讀取,那麼性能會如何高?

  4. 重新平衡如何運作?當你增加同一組中的消費者羣體或消費者時,它會起作用嗎?

請澄清我的問題,舉一些例子。

+0

1.更多消費者 - 更多的消費者 - 並行處理更多的消息。每個消息由組內的一個消費者處理 – MGolovanov

+0

2消費者可以使用消費者API明確地分配給個別分區,但不能。默認消費讀數由卡夫卡經紀商平衡 – MGolovanov

+0

1.更多並行處理的消息。 - 所有消費者都會消費來自同一主題的消息並行處理。 ?。我希望只有一位消費者會閱讀一個主題的消息。休息同一組的所有消費者不能從同一主題獲得消息。如果是,那麼如何並行 – Gnana

回答

1
  1. 是,僅一次消費者在消費者組可以從一個分區,消費者的其餘在相同的組消耗的消息將被分配給剩餘的分割做並行處理。優勢在於並行處理。

  2. 是的分區將由ZK分配給消費者。根據分區數量和消費者數量,分配將完成。例如:主題(測試)有3個分區(P1,P2和P3)。我們有一個消費者(C1)。 C1將從所有分區讀取消息。如果您在同一組中再添加一位消費者(c2)。 ZK將P1,P2分配給C1,P3將分配給C2。如果再添加一個消費者(C3)比P1 = C1,P2 = C2和P3 = C3。消費者的數量不應大於該主題的分區數量。

  3. 以上點將回答這一個。

  4. 當您將消費者添加到同一個消費羣組時,重新平衡將起作用。

+0

關於#4 - 當您在同一個使用者羣組中添加或刪除使用者時,重新平衡會有效。 – Abhishek