1)producer:訊息生產者,就是向kafka broker發訊息的客戶端;
2)consumer:訊息消費者,向kafka broker取訊息的客戶端;
3)consumer group (cg):消費者組,由多個consumer組成。消費者組內每個消費者負責消費不同分割槽的資料,乙個分割槽只能由乙個組內 消費者消費;消費者組之間互不影響。所有的消費者都屬於某個消費者組,即消費者組是邏輯上的乙個訂閱者。
4)broker:一台kafka伺服器就是乙個broker。乙個集群由多個broker組成。乙個broker可以容納多個topic。
5)topic:可以理解為資料庫中的一張表,生產者和消費者面向的都是乙個topic;
6)partition:乙個topic可以分為多個partition(可以理解為hbase中的region),每個partition是乙個有序的佇列。(分割槽的好處是實現topic的負載均衡,對消費者可以提高併發度,提高效率);
7)replica:乙個topic的每個分割槽都有若干個副本,乙個leader和若干個follower(replica 副本數目不能大於 broker 節點的數目,否則報錯)。
8)leader:每個分割槽多個副本的「主」,生產者傳送資料的物件,以及消費者消費資料的物件都是leader(負責讀寫)。
9)follower:每個分割槽多個副本中的「從」,實時從leader中同步資料,保持和leader資料的同步。leader發生故障時,某個follower會成為新的leader(只負責備份)。
10)offset:每一條資料都有乙個 offset,是資料在該 partition 中的唯一標識(其實就是訊息的索引號),各個 consumer 會儲存其消費到的 offset 位置,這樣下次可以從該 offset 位置開始繼續消費,
consumer 的消費 offset 儲存在乙個專門的 topic(consumer_offsets)中;
新版本的message中各個欄位的含義介紹如下:
crc:占用 4 個位元組,主要用於校驗訊息的內容;
magic:這個占用 1 個位元組,主要用於標識 kafka 版本。kafka 0.10.x magic 預設值為 1
key length:占用 4 個位元組。主要標識 key 的內容的長度;
key:占用 n 個位元組,儲存的是 key 的具體內容;
value length:占用 4 個位元組。主要標識 value 的內容的長度;
value:value 即是訊息的真實內容,在 kafka 中這個也叫做 payload。
Kafka基礎 Kafka架構
目錄kakfa 架構 kafka最初是由linkedin公司採用scala語言開發的乙個多分割槽 多副本並且基於zookeeper協調的分布式訊息系統,現在已經捐獻給了apache 會。目前kafka已經定位為乙個分布式流式處理平台,它以 高吞吐 可持久化 可水平擴充套件 支援流處理等多種特性而被廣...
Kafka 基礎架構
1 producer 訊息生產者,就是向 kafka broker 發訊息的客戶端 2 consumer 訊息消費者,向 kafka broker 取訊息的客戶端 3 consumer group cg 消費者組,由多個 consumer 組成。消費者組內每個消費者負責消費不同分割槽的資料,乙個分割...
Kafka基礎架構
1 producer 訊息生產者,就是向 kafka broker 發訊息的客戶端 2 consumer 訊息消費者,向 kafka broker 取訊息的客戶端 3 consumer group cg 消費者組,由多個 consumer 組成。消費者組內每個消費者負責消費不同分割槽的資料,乙個分割...