Apache ZooKeeper【動物管理員】

【ZooKeeper】
筆者堅信,每一個名字都有着一個故事,或者一段含義。zoo表明動物園,keeper管理員。既然做爲動物管理員,那麼是否是得管理一些動物呢?
前面我們講到Hadoop,這貨居然是大象,不信的看圖:
Apache ZooKeeper【動物管理員】
Hive【蜜蜂】
Apache ZooKeeper【動物管理員】
pig【apache pig豬】
Apache ZooKeeper【動物管理員】
從未想到zookeeper還能夠如此的形象,真是來源於生活啊。
Apache ZooKeeper【動物管理員】
【主要功能】
ZooKeeper是用於維護配置信息,命名,提供分佈式同步和提供組服務的集中式服務。主要功能:配置管理、名字服務、分佈式鎖、集羣管理。
一、配置管理
像咱們傳統的項目配置文件,那是很是多的。尤爲是涉及動態配置文件的時候。要是有一款能集中管理配置的方法就行了,咱們集中修改配置。Zookeeper就能夠很好的解決嘛,它使用Zab這種一致性協議,在Alibaba開源的SOA框架Dubbo中也普遍的使用Zookeeper管理一些配置來實現服務治理。apache

二、名字服務
通常咱們項目中的訪問地址都是ip地址+端口號這樣的形式。可是呢,在外網的環境中不都是域名嗎,哪有什麼IP地址做爲訪問的。
但是,計算機不能識別域名,那怎麼辦呢?
因而咱們有了DNS這個東西,咱們只須要訪問一個你們熟知的點,他就會告訴你這個域名對應的IP是什麼。在這個點裏,提供統一的入口。
【ps,什麼是DNS?】
答:域名系統(服務)協議(DNS)是一種分佈式網絡目錄服務,主要用於域名與 IP 地址的相互轉換,以及控制因特網的電子郵件的發送。
Apache ZooKeeper【動物管理員】
Apache ZooKeeper【動物管理員】
三、分佈式鎖
Zookeeper是一個分佈式協調服務,咱們利用Zookeeper來協調多個分佈式進程之間的活動。
例如,在一個分佈式環境中,爲了提升可靠性,咱們在集羣的每臺服務器上都部署一樣的服務。咱們只讓一個服務進行操做,會存在單點問題。那麼還有一種相似線程鎖的東西,就是分佈式鎖,在某個時刻只讓一個服務去操做,當這臺服務出現問題的時候鎖釋放,而後別的服務啓動。使用需謹慎哦。
四、集羣管理
在分佈式的集羣中,會有各類問題出現,像服務器斷電,重啓,網絡問題,這時候的節點會進進出出的。集羣中的其餘機器須要感知這種變化,而後根據這種變化作出應對策略。
這時候咱們就須要動態感知到集羣目前的狀態,還有就是當某個客戶端訪問某個服務的時候,就須要採用某種機制去尋找那些節點能夠提供該服務--服務發現。
【ps,什麼是分佈式?】
答:分佈式系統是多個處理機經過網絡互連而構成的鬆散耦合系統。
具備如下四個特徵:
①分佈性:系統有多臺服務器組成,地域上是分散的。整個系統的功能分散在各個節點上實現;
②自治性:分佈式系統中的各個節點都有本身的處理機和內存,地位上平等,無主次之分。既能自治的進行工做,又能利用網絡來傳送信息,協調任務處理;
③並行性:各個節點能夠並行執行;
④全局性:分佈式系統必有存在一個單一的,全局進程通信機制。系統中全部機器上有統一的系統調用集合。
【ps,Zookeeper與HA區別?】
答:HA是High Available縮寫,是雙機集羣系統簡稱,指高可用性集羣,是保證業務連續性的有效解決方案,通常有兩個或兩個以上的節點,且分爲活動節點及備用節點。
Apache ZooKeeper【動物管理員】
在Zookeeper中,沒有主從關係,二是引入了新的概念: Leader(頭),Flower(隨從),Observer(觀察者)三種角色。
Apache ZooKeeper【動物管理員】服務器

相關文章
相關標籤/搜索