[Kafka] - Kafka內核理解:分布式機制


一個Topic中的所有數據分布式的存儲在kafka集群的所有機器(broker)上,以分區(partition)的的形式進行數據存儲;每個分區允許存在備份數據/備份分區(存儲在同一kafka集群的其它broker上的分區)

每個數據分區在Kafka集群中存在一個broker節點上的分區叫做leader,存儲在其它broker上的備份分區叫做followers;只有leader節點負責該分區的數據讀寫操作followers節點作為leader節點的熱備節點,從leader節點備份數據;當leader節點掛掉的時候,followers節點中會有一個節點變成leader節點,重新提供服務

Kafka集群的Partitionleaderfollowers切換依賴Zookeeper

 

Kafka分布式保證的第一個特性就是:Kafka的Replication

Kafka的Replication指的是Partition的復制,一個Partition的所有分區中只有一個分區是leader節點,其它分區是follower節點。

Replication對Kafka的吞吐率有一定的影響,但是極大的增強了可用性

Follower節點會定時的從leader節點上獲取增量數據,一個活躍的follower節點必須滿足一下兩個條件:

  1. 所有的節點必須維護和zookeeper的連接(通過zk的heartbeat實現)

  2. follower必須能夠及時的將leader上的writing復制過來,不能“落后太多”; “落后太多”由參數{replica.lag.time.max.ms}和{replica.lag.max.messages}決定

 

Kafka分布式保證的第二個特性就是:Kafka Leader Election

Kafka提供了一個in-sync replicas(ISR)來確保Kafka的Leader選舉,ISR是一個保存分區node的集合,如果一個node宕機了或數據“落后太多”,leader會將該node節點從ISR中移除,只有ISR中的follower節點才有可能成為leader節點

Leader節點的切換基於Zookeeper的Watcher機制,當leader節點宕機的時候,其他ISR中的follower節點會競爭的在zk中創建一個文件目錄(只會有一個follower節點創建成功),創建成功的follower節點成為leader節點


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM