我讀了卡夫卡wiki,對這張圖片有些問題。
對於消費者組A,C1,C2只能接收到兩個分區消息,如C1只接收P0,C2只接收P1?
據我所知,一個消費者組映射一個主題,所以C1,C2必須有相同的主題,所以PO,P1,P2,P3具有相同的主題,是嗎?
所以有一個矛盾,如果問題2是正確的,那麼消費者組A和消費者組B具有相同的主題,所以它是一個消費者組映射一個主題的矛盾。
C1如何控制P0,P1消息,如果P0,P1具有相同的主題,則表示C1會收到重複消息,如果不是,C1如何控制只有一個偏移量的不同消息?
關於「所有分區包含相同的主題,至少這是我如何解釋這張照片」的問題。所以我假設,同一個主題名爲「test」,然後一個生產者爲此產生消息「Hello test」話題,這意味着C1,C2,C3,C4都會收到相同的信息? 對於答案,C1仍然會收到兩次「Hello測試」?
CG-A或CG-B可以接收不同的主題信息嗎?
我沒有看到Consumer Group的優勢,「有時讀卡夫卡消息的邏輯不關心處理消息偏移,它只是想要數據,所以提供高級消費者來抽象大部分消費卡夫卡事件的細節。「來自卡夫卡的維基, 你能否給我一個關於這張照片的消費羣體的例子,就像你種子CG-A正在報告任務和CG-B正在監控?
是否意味着來自一個名爲「test」的主題的P0,P1,P2,P3會發送不同的消息?但我跟着卡夫卡的wiki,如:
a。 bin/kafka-server-start.sh config/server.properties
b。 bin/kafka-topics.sh --create --zookeeper localhost:2181 - 複製因子1 --partitions 3 - 主題測試//分區爲3
c。 bin/kafka-console-producer.sh - 經紀商名單localhost:9092 - 專題測試
d。 bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
然後我在生產者中輸入一些東西,然後消費者會顯示這些消息?
那麼這三個分區怎麼會有不同的信息呢?
- 最後,如何使用命令行來模擬此圖片?創建消費組,然後分配一些消費者,然後生成消息,並且我可以監視分區和消費者之間的映射關係,並從其他分區發送消息?
非常感謝
謝謝爲你的真棒回答。 我仍然對「所有分區包含相同的主題,至少這是我如何解讀此圖片」有疑問。 所以我假設,同一個主題名爲「測試」,那麼一個生產者產生消息「Hello test」爲這個主題, 這意味着C1,C2,C3,C4都會收到相同的消息嗎? 對於答案,C1仍然會收到兩次「Hello測試」? 是錯的,或者我誤解了一些東西? – regrecall 2014-09-02 01:53:52
再次感謝您的時間,這些問題讓我擔心這麼久,我昨天開始了卡夫卡。 – regrecall 2014-09-02 02:16:59
如果您有一個主題「測試」並生成消息「Hello test」並且不使用任何特定的消息密鑰,那麼此消息將最終位於其中一個分區中(可選地加上該分區的副本)。如果該消息恰好結束於例如P1,那麼它可以被C2和C5消耗。 最後,消費者消費消息的次數實際上取決於該消費者,但對於常見情況,C1只會接收消息一次,然後按指定的時間間隔將最後消費的消息的消息ID作爲一種檢查點提交給Zookeeper 。 – Lundahl 2014-09-25 18:36:08