簡體   English   中英

卡夫卡多個消費群體

[英]kafka multiple consumer groups

我有多個消費者組,每個消費者組有1個消費者。

假設主題T1和分區P1和2消費者組CG1CG2 CG1有1個消費者-CG1#C1,相應地CG2有CG2#C1

現在,根據設計,我們正在多個消費者群體中收到相同的消息。

我的問題是,Kafka如何保持多個消費者群體之間的抵銷。 如果1個消費者組關閉了幾分鍾,然后備份了它,那么它將如何從最近一次提交的讀取中獲取消息。 CG1在偏移量24中且CG2'在下降之前一直提交到偏移量10。因此,當CG2上升時,它將如何從偏移量11開始,並且CG1不受影響。

默認情況下,偏移量存儲在名為__consumer_offsets的特殊主題中。 這是一個壓縮的主題 ,其中偏移量以消息的形式存儲,消息包含一個包含主題,分區和使用者組的鍵。 因此,不同消費者群體的抵消額是獨立的。 希望這能回答您的問題。 有關如何精確處理此問題的更多信息,可以在這里查看: http : //kafka.apache.org/documentation/#impl_offsettracking

消費者群體是獨立的實體。 如果不同消費者組中的消費者訂閱相同的kafka主題,則膠印管理之間不會有任何沖突。 每個消費者組將在__consumer_offsets主題中維護自己的偏移量(這是管理消費者偏移量的緊湊內部主題)

Kafka提供了一個選項,可以將給定消費者組的所有抵銷存儲在一個名為“抵銷管理器”的指定經紀人(針對該組)中。 每當使用者從分區讀取消息時,它將偏移提交請求發送到偏移管理器。 一旦提交請求被接受,使用者就可以讀取下一個偏移量。

在偏移提交失敗的情況下,使用者重試提交。 每個偏移提交都在每個分區中維護。

這是詳細的說明: http : //kafka.apache.org/documentation/#impl_offsettracking

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM