1. kafka拓撲結構圖
2. 角色說明
a. producer
訊息生產者,發布訊息到kafka 集群的終端或服務
b. broker
節點,kafka 集群中包含的伺服器
c. topic
主題,每條發布到kafka 集群的訊息屬於的類別。生產者向kafka中生產訊息或消費者從消費者中消費訊息都是以kafka的topic為單位的。即kafka是面向topic的。
d. partition
分割槽,parition是物理上的概念,每個topic包含乙個或多個partition。kafka分配的原則是partition。partition數只能增加,不能減少。
e. consumer
訊息消費者,從kafka集群中消費訊息的終端或服務
f. consumer group
消費者組,每乙個consumer都屬於乙個consumer group。每條訊息可以被多個consumer group消費,但是每條訊息只能被consumer group中的乙個consumer消費。
即資料是組內競爭,組間共享。
g. replication
副本,為了保證資料的高可用,每乙個partition可以有多個replication。replication有leader和follower兩種角色。
h. leader
replication的角色,每乙個partition可以有多個replication,但是只有乙個leader。producer和consumer只與角色為leader的replication互動。
i. follower
replication的角色,負責從leader中同步資料。當leader掛掉後,選出新的leader,繼續工作。
j. controller
整個kafka集群的管理者,kafka集群中的其中一台伺服器,用來進行leader選舉以及各種失敗恢復。
1》負責管理集群的broker的上下線
2》所有topic的分割槽副本分配
3》leader選舉
k. zookeeper
kafka通過zookeeper來儲存集群的元資料資訊。
3. 設計理念
a. 為了方便擴充套件並提高吞吐量,乙個topic分為多個分割槽。
b. 配合分割槽的概念提出了消費者組的概念,組內的每個消費者並行消費。消費者組內的每個消費者負責消費不同分割槽的資料,乙個分割槽只能被乙個消費者消費。
c. 為了提高高可用,每乙個分割槽增加了若干個副本。類似與hdfs的namenode的ha
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 組成。消費者組內每個消費者負責消費不同分割槽的資料,乙個分割...