Zookeeper相關(guān)內(nèi)容及簡單理解、安裝-創(chuàng)新互聯(lián)

一、什么是Zookeeper

10年積累的網(wǎng)站制作、成都網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有萊陽免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

Zookeeper是一個開源的分布式服務(wù)框架,它是Apache hadoop項目的一個子項目,主要用來解決分布式應(yīng)用場景中存在的一些問題,如:統(tǒng)一命名服務(wù)、狀態(tài)同步服務(wù)、集群管理、分布式應(yīng)用配置管理等。在分布式模式下,能夠為分布式應(yīng)用提供高性能和可靠地協(xié)調(diào)服務(wù),使用Zookeeper可以簡化分布式協(xié)調(diào)服務(wù)的實現(xiàn)。

Zookeeper提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù)等。

具體可見這個博客:http://blog.csdn.net/liuyuehu/article/details/52120546

和 http://blog.csdn.net/u012152619/article/details/52908878


二、Zookeeper一般用在什么場合?

數(shù)據(jù)發(fā)布與訂閱(配置中心):

發(fā)布與訂閱,是發(fā)布者將數(shù)據(jù)發(fā)布到zk節(jié)點上,工訂閱者動態(tài)獲取數(shù)據(jù),實現(xiàn)配置信息的集中式管理和動態(tài)更新。例如全局的配置信息,服務(wù)式服務(wù)框架的服務(wù)地址。

(1)應(yīng)用中用到的一些配置信息放到ZK上進(jìn)行集中管理。通常是:應(yīng)用在啟動時會主動來獲取一次配置,在節(jié)點上注冊一個Watcher,以后每次配置有更新時,都會實時通知給訂閱了的哭護(hù)短,從而達(dá)到獲取最新配置信息的目的。

(2)分布式搜索服務(wù)器中,索引的云信息和服務(wù)器集群機器的節(jié)點狀態(tài)存放ZK的一些指定節(jié)點,供各個客戶端訂閱使用

負(fù)載均衡

這里說的負(fù)載均衡是指軟負(fù)載均衡。在分布式環(huán)境中,為了保證高可用性,通常同一個應(yīng)用或同一服務(wù)的提供方都會部署多份,達(dá)到對等服務(wù)。而消費者就需要在這些對等服務(wù)的服務(wù)器中選擇一個來執(zhí)行相關(guān)的業(yè)務(wù)邏輯,其中比較典型的是消息中間件中生產(chǎn)者/消費者負(fù)載均衡。

消息中間件發(fā)布者和訂閱者的負(fù)載均衡,linkedin開源的KafkaMQ和阿里開源的metaq都是通過zookeeper來做到生產(chǎn)者、消費者的負(fù)載均衡。這里以metaq為例講下:

生產(chǎn)者負(fù)載均衡/消費者負(fù)載均衡:

metaq發(fā)送消息的時候,生產(chǎn)者在發(fā)送消息的時候必須選擇一臺broker上的一個分區(qū)來發(fā)送消息,因此metaq在運行過程中,會把所有broker和對應(yīng)的分區(qū)信息全部注冊到ZK指定節(jié)點上,默認(rèn)的策略是一個依次輪詢的過程,生產(chǎn)者在通過ZK獲取分區(qū)列表之后,會按照brokerId和partition的順序排列組織成一個有序的分區(qū)列表,發(fā)送的時候按照從頭到尾循環(huán)往復(fù)的方式選擇一個分區(qū)來發(fā)送消息。

在消費過程中,一個消費者會消費一個或多個分區(qū)中的消息,但是一個分區(qū)只會由一個消費者來消費。MetaQ的消費策略是:

  • 每個分區(qū)針對同一個group只掛載一個消費者。

  • 如果同一個group的消費者數(shù)目大于分區(qū)數(shù)目,則多出來的消費者將不參與消費。

  • 如果同一個group的消費者數(shù)目小于分區(qū)數(shù)目,則有部分消費者需要額外承擔(dān)消費任務(wù)。

在某個消費者故障或者重啟等情況下,其他消費者會感知到這一變化(通過 zookeeper watch消費者列表),然后重新進(jìn)行負(fù)載均衡,保證所有的分區(qū)都有消費者進(jìn)行消費。

(3)命名服務(wù)(Naming Service)

命名服務(wù)也是分布式系統(tǒng)中比較常見的一類場景。在分布式系統(tǒng)中,通過使用命名服務(wù),客戶端應(yīng)用能夠根據(jù)指定名字來獲取資源或者服務(wù)的地址,提供者等信息。被命名實體通常可以是集群中的機器,提供的服務(wù)地址,遠(yuǎn)程對象等等——這些我們都可以統(tǒng)稱為他們的名字(Name)。其中較為常見的就是一些分布式服務(wù)框架中的服務(wù)地址列表。通過調(diào)用ZK提供的創(chuàng)建節(jié)點的API,能夠很容易創(chuàng)建一個全局唯一的path,這個path就可以作為一個名稱。

Dubbo中使用zookeeper來作為命名服務(wù),維護(hù)全局的服務(wù)地址列表。

在Dubbo(下一個話題講)中:

服務(wù)提供者在啟動的時候,向ZK上的指定節(jié)點/dubbo/${serviceName}/providers目錄下寫入自己的URL地址,這個操作就完成了服務(wù)的發(fā)布。

服務(wù)消費者啟動的時候,訂閱/dubbo/${serviceName}/providers目錄下的提供者URL地址,并向/dubbo/${serviceName}/consumers目錄下寫入自己的URL地址。

向ZK上注冊的地址都是臨時節(jié)點,這樣就能夠保證服務(wù)提供者和消費者能自動感應(yīng)資源的變化。

(4)分布式通知/協(xié)調(diào)

Zookeeper中持有watcher注冊與異步通知機制,能夠很好的實現(xiàn)分布式環(huán)境下不同系統(tǒng)之間的通知與協(xié)調(diào),實現(xiàn)對數(shù)據(jù)變更的實時處理。使用方法通常是不同系統(tǒng)都對ZK上同一個znode進(jìn)行注冊,監(jiān)聽znode的變化(包括znode本身內(nèi)容及其子節(jié)點),其中一個系統(tǒng)更新了znode,那么另一個系統(tǒng)能夠收到通知,并做出相應(yīng)處理。(http://www.cnblogs.com/tommyli/p/3766189.html)

(5)集群管理與Master選舉:

集群機器監(jiān)控:通常用于對集群中機器狀態(tài)有較高的要求的場景,能夠快速對集群中機器變化做出響應(yīng)。

(6)分布式鎖

分布式鎖,這個主要得益于ZooKeeper為我們保證了數(shù)據(jù)的強一致性。鎖服務(wù)可以分為兩類,一個是保持獨占,另一個是控制時序。

(7)分布式隊列

隊列方面,簡單地講有兩種,一種是常規(guī)的先進(jìn)先出隊列,另一種是要等到隊列成員聚齊之后的才統(tǒng)一按序執(zhí)行。

第二種隊列其實是在FIFO隊列的基礎(chǔ)上作了一個增強。通??梢栽?/queue 這個znode下預(yù)先建立一個/queue/num 節(jié)點,并且賦值為n(或者直接給/queue賦值n),表示隊列大小,之后每次有隊列成員加入后,就判斷下是否已經(jīng)到達(dá)隊列大小,決定是否可以開始執(zhí)行了。這種用法的典型場景是,分布式環(huán)境中,一個大任務(wù)Task A,需要在很多子任務(wù)完成(或條件就緒)情況下才能進(jìn)行。這個時候,凡是其中一個子任務(wù)完成(就緒),那么就去 /taskList 下建立自己的臨時時序節(jié)點(CreateMode.EPHEMERAL_SEQUENTIAL),當(dāng) /taskList 發(fā)現(xiàn)自己下面的子節(jié)點滿足指定個數(shù),就可以進(jìn)行下一步按序進(jìn)行處理了。


三、windows中下載、安裝Zookeeper,啟動:

(1)下載在搜索框輸入Zookeeper進(jìn)入官網(wǎng)即可。下載的是zip包,解壓如下:

Zookeeper相關(guān)內(nèi)容及簡單理解、安裝

(2)bin目錄如下:

Zookeeper相關(guān)內(nèi)容及簡單理解、安裝

(3)打開控制臺窗口,并轉(zhuǎn)到bin目錄下:

Zookeeper相關(guān)內(nèi)容及簡單理解、安裝

運行zkServer.cmd:

注意此時如果啟動失敗,意外關(guān)閉,并提示zoo.conf找不到,那么zoo_sample.conf也是可以的,不過要實現(xiàn)對改文件進(jìn)行部分修改,換成你自己的參數(shù)。如圖:

Zookeeper相關(guān)內(nèi)容及簡單理解、安裝

Zookeeper啟動之后會顯示如下信息,如圖:

Zookeeper相關(guān)內(nèi)容及簡單理解、安裝

最后幾行是這樣的:表示啟動成功,

Zookeeper相關(guān)內(nèi)容及簡單理解、安裝

(4)啟動客戶端運行查看一下:

Zookeeper相關(guān)內(nèi)容及簡單理解、安裝

Zookeeper相關(guān)內(nèi)容及簡單理解、安裝

表示客戶端已經(jīng)順利連接,Zookeeper啟動成功!

//可以參考這篇博文:http://blog.csdn.net/morning99/article/details/40426133

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

名稱欄目:Zookeeper相關(guān)內(nèi)容及簡單理解、安裝-創(chuàng)新互聯(lián)
分享URL:http://muchs.cn/article48/dgcihp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)企業(yè)建站、電子商務(wù)、網(wǎng)站營銷網(wǎng)站策劃、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作