一、kafka常見名稱:broker、cluster、producer、consumer、partition、group
- broker:節點,說直白點就是kafka服務部署時使用的服務器數量,eg.一臺服務器就是一個節點,以此類推
- cluster:集羣,也就是部署的一整套多節點、高可用的kafka環境,對外提供的host如:10.1.254.35:9092,10.1.254.36.9092,10.1.254.37.9092這樣的
- producer:生產者,即生產數據到kafka的一方
- consumer:消費者,即將數據從kafka取出的一方
- partition:分區,即生產到kafka的數據存儲位置
- group:消費組,也就是給消費者分的組別
二、partition和consumer、group的關係
1、一個group,consumer數量大於partition時
如圖1,向test發送消息:1,2, 3,4,5,6,7,8,9
只有C1能接收到消息,C2則不能接收到消息,即同一個partition內的消息只能被同一個組中的一個consumer消費。當消費者數量多於partition的數量時,多餘的消費者空閒。
也就是說如果只有一個partition,你在同一組啓動多少個consumer都沒用,partition的數量決定了此topic在同一組中可被均衡的程度,例如partition=4,則可被同一組中最多4個consumer均衡消費。
2、一個group,consumer少於或等於partition時
如圖2,consumer數量爲2,小於partition的數量3,此時,向test2發送消息1,2,3,4,5,6,7,8,9
C1接收到1,3,4,6,7,9
C2接收到2,5,8
此時P1、P2對應C1,即多個partition對應一個消費者,C1接收到消息量是C2的兩倍
3、多個group
如圖3,向test2發送消息1,2,3,4,5,6,7,8,9
g3組:
C1接收到了:2,5,8
C2接收到了:3,6,9
C3接收到了:1,4,7
g4組:
C1接收到了:1,2,3,4,5,6,7,8,9
三、其他內容敬請期待…