2015-12-31 57 views
3

我是Kafka的新手。我注意到在消費者配置中有兩個ID。一個是group.id(強制性),第二個是consumer.id(非強制性)。請說出爲什麼2個Ids和差異。卡夫卡消費者中的groupid和consumerrid之間的區別

+2

根據消費者羣體,我們可以確定消費者的消息傳遞模型: ** 如果所有消費者實例具有相同的消費者羣組,那麼這就像傳統的消費者隊列平衡負載一樣工作。 如果所有消費者實例具有不同的消費者羣體,那麼這就像發佈 - 訂閱一樣,並且所有消息都被廣播給所有消費者。按照上述說法,充當發佈 - 訂閱的所有消費羣體應該是唯一的名稱。那麼爲什麼不能成爲消費者ID。爲什麼消費者組ID?團體意味着什麼 – Gnana

回答

6

消費者組是卡夫卡抽象,支持點對點和發佈/訂閱消息。消費者可以通過將其group.id設置爲group_1加入消費羣體(讓我們說group_1)。消費者羣體也是一種支持數據並行消費的方式,即同一消費羣體的不同消費者從不同分區並行消費數據。

除了group.id,每個消費者還使用consumer.id向卡夫卡經紀人標識自己。 Kafka使用這種方法來識別特定消費羣體的當前ACTIVE消費者。

閱讀this documentation瞭解更多詳情。

+0

請給更多的例子來理解。同一消費羣體的**不同消費者從不同分區並行消費數據。**。如何在同一消費羣體中添加不同的消費者?我用group.id = group1運行Java Consumer程序。它消費了消息。我運行相同的程序,而不改變goup.id。第一個程序使用消息。第二個消費者不能消費信息。團隊在這裏意味着什麼? – Gnana

+0

如果您還沒有對主題進行分區,那麼只有一位消費者會使用消息。如果您希望兩個消費者(屬於同一消費羣體)並行使用消息,則需要劃分主題。我建議你閱讀文檔 –

+0

感謝您的其他信息。我在一個經紀人中創建了一個帶有3個分區的Topic演示。我用demo-group運行程序,它消耗了信息。我再次運行具有相同組ID的程序。但是,第二個程序不能使用消息。如果將組標識名稱更改爲demo-group1。它運作良好。請告訴我消費者羣體的概念。 – Gnana