1. 消費者組(Consumer Group)
消費者組是Kafka實現單播和廣播兩種消息模型的手段。同一個topic,每個消費者組都可以拿到相同的全部數據。
1.1 消費者多於分區數
- 創建一個用於測試的單分區topic test
- 設置consumer.properties文件
將consumer.properties文件中的group id命名為group1,方便后續測試。
- 在group1中啟動兩個消費者
此時,消費者的數量大於分區的數量。
- 測試消費者消費數據的情況
使用生產者生產數據,可以得到兩個消費者消費數據的情況,如下:
這說明:同一個分區內的消息只能被同一個組中的一個消費者消費,當消費者數量多於分區數量時,多於的消費者空閑(不能消費數據)。
1.2 消費者少於和等於分區數
- 創建一個三分區的topic test2
- 首先在group1中啟動兩個消費者
此時,消費者的數量小於分區的數量
- 測試消費者消費數據的情況
這說明:當分區數多於消費者數的時候,有的消費者對應多個分區。
- 在group1中啟動三個消費者並測試
這說明:當分區數等於消費者數的時候,每個消費者對應一個分區。
1.3 多個消費者組
- 命名一個新的消費者組
- 啟動消費者消費數據
這說明:啟動多個組,相同的數據會被不同組的消費者消費多次。