1. 程式人生 > 其它 >kafka入門與實踐-讀書筆記

kafka入門與實踐-讀書筆記

1.主題
Kafka將一組訊息抽象歸納為一個主題(Topic),也就是說,一個主題就是對訊息的一個分類。
生產者將訊息傳送到特定主題,消費者訂閱主題或主題的某些分割槽進行消費。
2.訊息
訊息是Kafka通訊的基本單位,由一個固定長度的訊息頭和一個可變長度的訊息體構成。
在老版本中,每一條訊息稱為Message;在由Java重新實現的客戶端中,每一條訊息稱為Record。
3.分割槽和副本
Kafka將一組訊息歸納為一個主題,而每個主題又被分成一個或多個分割槽(Partition)
每個分割槽在物理上對應為一個資料夾,分割槽的命名規則為主題名稱後接“—”連線符
之後再接分割槽編號,分割槽編號從0開始,編號最大值為分割槽的總數減1
每個分割槽又有一至多個副本(Replica)
分割槽的副本分佈在叢集的不同代理上,以提高可用性
Kafka只能保證一個分割槽之內訊息的有序性,並不能保證跨分割槽訊息的有序性
Kafka提供兩種刪除老資料的策略,一是基於訊息已儲存的時間長度,二是基於分割槽的大小
4.Leader副本和Follower副本
Leader副本只有一個,Follower副本有多個
只有Leader副本才負責處理客戶端讀/寫請求,Follower副本從Leader副本同步資料
實際上使用的只有Leader副本,Follower副本只是作為備份使用
如果Leader失效,通過相應的選舉演算法將從其他Follower副本中選出新的Leader副本