kafka核心中的分布式機制實現
乙個topic中的所有資料分布式的儲存在kafka集群的所有機器(broker)上,以分割槽(partition)的的形式進行資料儲存;每個分割槽允許存在備份資料/備份分割槽(儲存在同一kafka集群的其它broker上的分割槽)
每個資料分割槽在kafka集群中存在乙個broker節點上的分割槽叫做leader,儲存在其它broker上的備份分割槽叫做followers;只有leader節點負責該分割槽的資料讀寫操作,followers節點作為leader節點的熱備節點,從leader節點備份資料;當leader節點掛掉的時候,followers節點中會有乙個節點變成leader節點,重新提供服務
kafka集群的partition的leader和followers切換依賴zookeeper
kafka分布式保證的第乙個特性就是:kafka的replication
kafka的replication指的是partition的複製,乙個partition的所有分割槽中只有乙個分割槽是leader節點,其它分割槽是follower節點。
replication對kafka的吞吐率有一定的影響,但是極大的增強了可用性
follower節點會定時的從leader節點上獲取增量資料,乙個活躍的follower節點必須滿足一下兩個條件:
1. 所有的節點必須維護和zookeeper的連線(通過zk的heartbeat實現)
2. follower必須能夠及時的將leader上的writing複製過來,不能「落後太多」; 「落後太多」由引數和決定
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節點
kafka 分布式安裝
1.wget 2.這裡我用了兩台機器,在兩台機器下分別解壓,放在自己想要的安裝目錄下 假設zookeeper集群搭好,可參考 3.開啟config中的server.properties檔案 找到zookeeper那個地方,修改zookeeper集群 zookeeper.connect centos ...
Kafka Kafka核心理解 分布式機制
乙個topic中的所有資料分布式的儲存在kafka集群的所有機器 broker 上,以分割槽 partition 的的形式進行資料儲存 每個分割槽允許存在備份資料 備份分割槽 儲存在同一kafka集群的其它broker上的分割槽 每個資料分割槽在kafka集群中存在乙個broker節點上的分割槽叫做...
分布式事務機制
事務定義 作為單個邏輯單元執行的一組操作,要麼全成功,要麼全失敗。事務特性 原子性 一致性 隔離性 永續性 事務型別 單機事務 保證單資料來源一致性 分布式事務 保證多資料來源一致性 事務實現 分布式 分布式事務用於在分布式系統中保證不同節點之間的資料一致性。xa分布式事務協議是分布式事務最具代表性...