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複製過來,不能“落後太多”; “落後太多”由引數{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節點
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543790/viewspace-2658916/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- alpakka-kafka(10)-用kafka實現分散式近實時交易Kafka分散式
- Laravel基於reset機制實現分散式事務Laravel分散式
- 分散式鎖機制分散式
- 實戰Kafka ACL機制Kafka
- 崑崙分散式資料庫Sequence功能及其實現機制分散式資料庫
- 使用Spring Boot + Kafka實現Saga分散式事務模式的原始碼 - vinsguruSpring BootKafka分散式模式原始碼
- 分散式訊息Kafka分散式Kafka
- Kafka Eagle分散式模式Kafka分散式模式
- Apache Pulsar分散式事務機制Apache分散式
- Kafka Consumer 的 Rebalance 機制Kafka
- Redisson 分散式鎖實戰與 watch dog 機制解讀Redis分散式
- 「分散式」實現分散式鎖的正確姿勢?!分散式
- 分散式鎖的實現原理分散式
- redis分散式鎖的實現Redis分散式
- ZooKeeper分散式鎖的實現分散式
- 分散式鎖的實現方案分散式
- 基於SLF4J的MDC機制和Dubbo的Filter機制,實現分散式系統的日誌全鏈路追蹤Filter分散式
- 實現分散式鎖分散式
- LightDB分散式實現分散式
- 分散式鎖實現分散式
- 「分散式技術專題」副本機制分散式
- 分散式流平臺Kafka分散式Kafka
- Kafka分散式查詢引擎Kafka分散式
- ElasticSearch是如何實現分散式的?Elasticsearch分散式
- 分散式鎖的實現及原理分散式
- 分散式鎖初窺-分散式鎖的三種實現方式分散式
- 分散式鎖----Redis實現分散式Redis
- Redis實現分散式鎖Redis分散式
- Redis分散式實現原理Redis分散式
- 分散式鎖及其實現分散式
- etcd實現分散式鎖分散式
- KAFKA介紹(分散式架構)Kafka分散式架構
- Kafka 分散式訊息系統Kafka分散式
- Spring AOP 的實現機制Spring
- alpakka-kafka(9)-kafka在分散式運算中的應用Kafka分散式
- Redis分散式鎖的正解實現方式Redis分散式
- 利用 DB 實現分散式鎖的思路分散式
- 分散式鎖的多種實現方式分散式