Apache ZooKeeper【动物管理员】
【ZooKeeper】
筆者堅信,每個名字都有著一個故事,或者一段含義。zoo代表動物園,keeper管理員。既然作為動物管理員,那么是不是得管理一些動物呢?
前面咱們講到Hadoop,這貨竟然是大象,不信的看圖:
Hive【蜜蜂】
pig【apache pig豬】
從未想到zookeeper還可以如此的形象,真是來源于生活啊。
【主要功能】
ZooKeeper是用于維護配置信息,命名,提供分布式同步和提供組服務的集中式服務。主要功能:配置管理、名字服務、分布式鎖、集群管理。
1、配置管理
像我們傳統的項目配置文件,那是非常多的。尤其是涉及動態配置文件的時候。要是有一款能集中管理配置的方法就好了,我們集中修改配置。Zookeeper就可以很好的解決嘛,它使用Zab這種一致性協議,在Alibaba開源的SOA框架Dubbo中也廣泛的使用Zookeeper管理一些配置來實現服務治理。
2、名字服務
一般我們項目中的訪問地址都是ip地址+端口號這樣的形式。但是呢,在外網的環境中不都是域名嗎,哪有什么IP地址作為訪問的。
可是,計算機不能識別域名,那怎么辦呢?
于是我們有了DNS這個東西,我們只需要訪問一個大家熟知的點,他就會告訴你這個域名對應的IP是什么。在這個點里,提供統一的入口。
【ps,什么是DNS?】
答:域名系統(服務)協議(DNS)是一種分布式網絡目錄服務,主要用于域名與 IP 地址的相互轉換,以及控制因特網的電子郵件的發送。
3、分布式鎖
Zookeeper是一個分布式協調服務,我們利用Zookeeper來協調多個分布式進程之間的活動。
例如,在一個分布式環境中,為了提高可靠性,我們在集群的每臺服務器上都部署同樣的服務。我們只讓一個服務進行操作,會存在單點問題。那么還有一種類似線程鎖的東西,就是分布式鎖,在某個時刻只讓一個服務去操作,當這臺服務出現問題的時候鎖釋放,然后別的服務啟動。使用需謹慎哦。
4、集群管理
在分布式的集群中,會有各種問題出現,像服務器斷電,重啟,網絡問題,這時候的節點會進進出出的。集群中的其他機器需要感知這種變化,然后根據這種變化做出應對策略。
這時候我們就需要動態感知到集群目前的狀態,還有就是當某個客戶端訪問某個服務的時候,就需要采用某種機制去尋找那些節點可以提供該服務--服務發現。
【ps,什么是分布式?】
答:分布式系統是多個處理機通過網絡互連而構成的松散耦合系統。
具有以下四個特征:
①分布性:系統有多臺服務器組成,地域上是分散的。整個系統的功能分散在各個節點上實現;
②自治性:分布式系統中的各個節點都有自己的處理機和內存,地位上平等,無主次之分。既能自治的進行工作,又能利用網絡來傳送信息,協調任務處理;
③并行性:各個節點可以并行執行;
④全局性:分布式系統必有存在一個單一的,全局進程通訊機制。系統中所有機器上有統一的系統調用集合。
【ps,Zookeeper與HA區別?】
答:HA是High Available縮寫,是雙機集群系統簡稱,指高可用性集群,是保證業務連續性的有效解決方案,一般有兩個或兩個以上的節點,且分為活動節點及備用節點。
在Zookeeper中,沒有主從關系,二是引入了新的概念: Leader(頭),Flower(隨從),Observer(觀察者)三種角色。
總結
以上是生活随笔為你收集整理的Apache ZooKeeper【动物管理员】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从WINDOW管理器差异,看WINDOW
- 下一篇: 用php语言说句情话,50句最美情话,套