假設我有消費者組G1,它有三個消費者C1,C2和C3。所有訂閱具有單個分區的主題1。現在製作人在分區1上產生3條消息,代理 將切換1消息給每個消費者。 對不對?隊列消息/消費者組的工作流程?
但我得到了在kafka tutorial
- 單個消費者訂閱一個特定的主題,從部分
Workflow of Queue Messaging/Consumer Group
閱讀下面的粗體文字後一頭霧水,假設「主題-01」和「組ID」爲 「組-1「 - Kafka與Pub-Sub Messaging以相同的方式與消費者進行交互,直到消費者訂購新的 消費者訂閱與」Group-1「具有相同」Group ID「的相同主題」Topic-01「
- 開當新消費者到達時,Kafka將其操作切換到共享模式並在兩個消費者之間共享數據。 這種共享將繼續進行,直到消費者數量 達到爲該特定主題配置的分區數量。
- 一旦消費者數量超過分區數量,新消費者 將不會收到任何進一步的消息,直到任何一個現有的消費者退訂。 這種情況的出現是因爲卡夫卡的每個消費者都將被分配至少一個 分區,並且一旦所有分區被分配給現有消費者,新消費者將不得不等待。
如果我走3/4點,只有消費者1將獲得所有消息作爲消費者數量(這是3)大於沒有分區(這是1)?這是否意味着我需要在所有分區中創建3個分區,並且組G1將使用所有3個分區進行預訂,以便每個消費者分別獲取一條消息?
'是的。它可以是三者中的一個。「可以是這樣的: - 第一條消息可以由C1消耗。 C2第二,C3第三,或者它會一直是同一個消費者? – user3198603
沒有將分區分配給組中的使用者,分配保持不變,直到消費者取消訂閱或停止,或分區數量更改或新消費者加入組。因爲它是一個動態的任務,這就是我提到三個消費者中的任何一個的原因。 –
'沒有將分區分配給組中的使用者,分配保持不變......誰將分區分配給使用者?我相信它的消費者會選擇分區並提取消息? – user3198603