producer(生產者)生產訊息以topic(主題)為單位進行儲存.消費者組訂閱主題消費內容.
producer生產者寫資料可能寫到topica-partition0 分割槽 ,也可能寫到 topica-partition1分割槽, 也可以指定只寫到哪個分割槽也是可以的.如果你不指定寫哪個分割槽,你只是指定寫到topica主題,那麼就會採取輪詢的策略,把資料輪流放到topica主題下的所有分割槽裡面.
為了方便我的消費,以及提高消費的速度,我們是有消費者組的概念,乙個組可以有多個消費者執行緒,乙個group組可以同時訂閱多個topic主題,多個group也可以同時訂閱多個主題.
每個group裡面各有三個consumer消費者,topica下的所有分割槽的資料都會分配到多個消費者執行緒上面. 同時是互斥的同一時刻乙個主題只能由乙個group內的乙個consumer來消費 ,
同時乙個consumer可以同時消費多個主題的,就是我既可以拿topica-partition0的資料,也可以拿topica-partition1的資料.
不能乙個group裡面的兩個consumer同時拿topica-partition0裡面的資料.這是不能允許的.
分割槽可以分散到多個broker中的
多個broker可以組成乙個集群.
為了提高可用性,可以為分割槽增加副本,比如說topica-partition0存到了broker0和broker2上.這樣保證資料的可用性和安全性.
有了副本概念,客戶端只能向leader傳送請求,比如說讀取topica-partition0的資料,就得看誰是leader了, 假如說broker0是leader,那麼不管是producer還是consumer只能請求leader角色的broker0機器, 然後broker2就是follower機器,它會傳送fetch請求從leader角色的broker0機器上同步topica-partition0資料.
另外kafka集群需要借助zookeeper的 ,你broker執行期間需要給資料存到zookeeper上的.比如說topic叫什麼名字,有多少分割槽等等,這些元資料都需要存到zookeeper裡面.
Kafka基礎 Kafka架構
目錄kakfa 架構 kafka最初是由linkedin公司採用scala語言開發的乙個多分割槽 多副本並且基於zookeeper協調的分布式訊息系統,現在已經捐獻給了apache 會。目前kafka已經定位為乙個分布式流式處理平台,它以 高吞吐 可持久化 可水平擴充套件 支援流處理等多種特性而被廣...
Kafka(一)Kafka的簡介與架構
一 kafka中的術語解釋 生產者,上圖有兩個生產者,往同乙個往topic 主題 發訊息。2 topic 主題,這是乙個邏輯概念,就和資料庫表一樣,資料庫表可以存在於多個資料庫,同樣 傳送到topic的資料也會分散到不同的kafka節點上。3 partition 分割槽,乙個topic可以有多個分割...
Kafka 基礎架構
1 producer 訊息生產者,就是向 kafka broker 發訊息的客戶端 2 consumer 訊息消費者,向 kafka broker 取訊息的客戶端 3 consumer group cg 消費者組,由多個 consumer 組成。消費者組內每個消費者負責消費不同分割槽的資料,乙個分割...