Zookeeper被普遍應用於各類分佈式集羣場景中,好比Hadoop、Storm、Spark、Kafka等,要想學好大數據分析,不可避免的要用到大規模機器集羣,瞭解和掌握Zookeeper的工做原理將會對學好大數據分析起到事半功倍的做用。node
一、實時配置文件算法
Zookeeper能夠做爲互聯網應用的實時配置開關,將配置信息設置在Zookeeper的node上,並在應用中設置Zookeeper的觀察者,實時獲取該node關聯數據的變化,達到動態實時控制應用的配置信息的目的,實時調控生產環境各項參數。apache
在大型電商網站中,這種方式可用於節假日等流量爆發的場景,關閉某些不過重要的電商網站功能,下降併發量大爆發對服務器性能的衝擊。 服務器
二、Kafka中使用併發
Kafka經過Zookeeper的使用提供給客戶端負載均衡能力,每一個Kafka客戶端直接經過鏈接Zookeeper就能得到整個Kafka的配置信息。負載均衡
Kafka將隊列服務的機器註冊在Zookeeper上,同時維護客戶端列表,依靠負載均衡算法將客戶端動態分配到合適的隊列分區上,維持整個集羣的負載均衡。客戶端不須要預先知道當前的隊列到底分配在哪一個機器上,經過Zookeeper獲取隊列分配的動態變化。分佈式
三、Hadoop使用oop
在Hadoop1.x版本中Master是單節點模式,存在單點故障不支持熱備份。Hadoop2.x版本已經開始支持使用Zookeeper做爲Master節點的高可靠性方案。性能
Hadoop客戶端鏈接集羣時指定Zookeeper服務器地址,從Zookeeper獲取當前Master節點地址,進而鏈接Master操做Hadoop。Hadoop客戶端同時監聽Zookeeper中數據變化,當Master節點切換時會將切換狀態變動保存到Zookeeper中,同時Zookeeper會觸發數據變化監聽客戶端,通知Hadoop客戶端切換Master地址,達到熱切換(HA)的目的。大數據
四、參考
ZooKeeper官網:http://zookeeper.apache.org/
Netty官網:http://netty.io/