Hadoop大數(shù)據(jù)開發(fā)基礎(chǔ)與實(shí)戰(zhàn)(微課版) 課件 第5章 Zkeeper分布式協(xié)調(diào)服務(wù)_第1頁
Hadoop大數(shù)據(jù)開發(fā)基礎(chǔ)與實(shí)戰(zhàn)(微課版) 課件 第5章 Zkeeper分布式協(xié)調(diào)服務(wù)_第2頁
Hadoop大數(shù)據(jù)開發(fā)基礎(chǔ)與實(shí)戰(zhàn)(微課版) 課件 第5章 Zkeeper分布式協(xié)調(diào)服務(wù)_第3頁
Hadoop大數(shù)據(jù)開發(fā)基礎(chǔ)與實(shí)戰(zhàn)(微課版) 課件 第5章 Zkeeper分布式協(xié)調(diào)服務(wù)_第4頁
Hadoop大數(shù)據(jù)開發(fā)基礎(chǔ)與實(shí)戰(zhàn)(微課版) 課件 第5章 Zkeeper分布式協(xié)調(diào)服務(wù)_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第5章Zookeeper分布式協(xié)調(diào)服務(wù)認(rèn)識ZookeeperZookeeper的安裝和常用命令Zookeeper客戶端編程Zookeeper典型應(yīng)用場景認(rèn)識ZookeeperZookeeper的安裝和常用命令Zookeeper客戶端編程Zookeeper典型應(yīng)用場景5.1認(rèn)識Zookeeper5.1.1Zookeeper簡介5.1.2Zookeeper的設(shè)計(jì)目的5.1.3Zookeeper的系統(tǒng)模型5.1.4Zookeeper中的角色5.1.5Zookeeper的工作原理5.1 認(rèn)識ZookeeperZookeeper是開源的分布式應(yīng)用程序協(xié)調(diào)服務(wù)。Zookeeper提供了同步服務(wù)、命名服務(wù)、組服務(wù)、配置管理服務(wù),較好地解決了Hadoop中經(jīng)常出現(xiàn)的死鎖、競態(tài)條件等問題。死鎖是在執(zhí)行兩個(gè)或兩個(gè)以上的進(jìn)程時(shí),由競爭資源或彼此通信造成的阻塞現(xiàn)象。競態(tài)條件是指在執(zhí)行兩個(gè)或兩個(gè)以上的進(jìn)程時(shí),進(jìn)程執(zhí)行順序?qū)?zhí)行后的結(jié)果存在影響。Zookeeper可以與需要保證高可用的Hadoop組件搭配使用,如HA模式下的HDFS、HA模式下的YARN、HBase。5.1.1Zookeeper簡介5.1 認(rèn)識ZookeeperZookeeper提供一個(gè)協(xié)調(diào)方便、易于編程的環(huán)境,能夠減輕分布式應(yīng)用程序所承擔(dān)的協(xié)調(diào)任務(wù),其設(shè)計(jì)目的主要體現(xiàn)在以下幾個(gè)方面。(1)一致性??蛻舨徽撨B接到哪個(gè)服務(wù)器,看到的都是相同的視圖。(2)實(shí)時(shí)性。Zookeeper的數(shù)據(jù)存放在內(nèi)存當(dāng)中,可以做到高吞吐、低延遲。(3)可靠性。組成Zookeeper服務(wù)的服務(wù)器必須互相知道其他服務(wù)器的存在。(4)有序性。例如,Zookeeper為每次更新操作賦予一個(gè)版本號,此版本號是唯一、有序的。(5)原子性。Zookeeper的客戶端在讀取數(shù)據(jù)時(shí),只有成功或失敗兩種狀態(tài),不會出現(xiàn)只讀取部分?jǐn)?shù)據(jù)的情況。5.1.2Zookeeper的設(shè)計(jì)目的5.1 認(rèn)識ZookeeperZookeeper的系統(tǒng)模型,如圖所示。5.1.3 Zookeeper的系統(tǒng)模型ZooKeeper的系統(tǒng)模型分為服務(wù)器(Server)和客戶端(Client)。(1)客戶端可以連接到ZooKeeper集群的任意服務(wù)器??蛻舳伺c服務(wù)器通過TCP建立連接,主要負(fù)責(zé)發(fā)送請求和心跳,獲取響應(yīng)和監(jiān)視事件。5.1 認(rèn)識ZookeeperTCP(TransmissionControlProtocol,傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。(2)如果客戶端與服務(wù)器的TCP連接中斷,客戶端自動嘗試連接到其他服務(wù)器。(3)客戶端第一次連接到一個(gè)服務(wù)器時(shí),該服務(wù)器會為客戶端建立一個(gè)會話。當(dāng)該客戶端連接到其他的服務(wù)器時(shí),新的服務(wù)器會為客戶端重新建立一個(gè)會話。5.1.3 Zookeeper系統(tǒng)模型5.1 認(rèn)識ZookeeperZookeeper中主要有三種角色:Leader(領(lǐng)導(dǎo)者)、Follower(跟隨者)和Observer(觀察者)。1.LeaderLeader是Zookeeper集群中的領(lǐng)導(dǎo)者,在集群中有且只有一個(gè),主要負(fù)責(zé)以下工作。(1)調(diào)度和處理事務(wù)請求,保證事務(wù)按順序進(jìn)行處理。(2)調(diào)度Zookeeper集群內(nèi)部各個(gè)服務(wù)器。2.FollowerFollower是Zookeeper集群中的跟隨者,集群中有多個(gè),主要負(fù)責(zé)以下工作。(1)處理客戶端非事務(wù)請求,轉(zhuǎn)發(fā)事務(wù)請求給Leader服務(wù)器。5.1.4 Zookeeper中的角色5.1 認(rèn)識Zookeeper(2)參與Leader選舉投票。3.ObserverObserver和Follower類似,負(fù)責(zé)處理客戶端非事務(wù)請求,轉(zhuǎn)發(fā)事務(wù)請求給Leader服務(wù)器。Observer與Follower的區(qū)別在于:Observer不參與Leader選舉投票。Observer是從Zookeeper3.3.0版本開始新增的角色。當(dāng)Zookeeper集群節(jié)點(diǎn)增多時(shí),為了支持更多的客戶端,需要增加更多服務(wù)器,然而服務(wù)器增多,投票階段耗費(fèi)時(shí)間過多,影響集群性能。為了增強(qiáng)集群的擴(kuò)展性,保證數(shù)據(jù)的高吞吐量,引入Observer。5.1.4 Zookeeper中的角色5.1 認(rèn)識ZookeeperZookeeper的核心工作原理是:選舉一臺服務(wù)器作為Leader對外提供服務(wù),當(dāng)該Leader出問題時(shí),從剩下的多臺服務(wù)器中快速選出一個(gè)新Leader繼續(xù)對外提供服務(wù)。Zookeeper實(shí)現(xiàn)分布式協(xié)調(diào)服務(wù),其本身是以集群的形式存在的,采用ZAB(ZookeeperAtomicBroadcast,Zookeeper原子廣播)算法保證自身的高可用性。ZAB算法包含兩個(gè)無限重復(fù)的階段:領(lǐng)導(dǎo)選舉(LeaderElection)和原子廣播(AtomicBrodcast)。1.領(lǐng)導(dǎo)選舉領(lǐng)導(dǎo)選舉是Zookeeper集群中的多臺服務(wù)器選舉一臺服務(wù)器作為Leader的過程。Leader之外的服務(wù)器為Follower。5.1.5 Zookeeper的工作原理5.1 認(rèn)識ZookeeperZookeeper規(guī)定集群中半數(shù)以上的服務(wù)器保持正常運(yùn)行,集群才能對外提供服務(wù)。如果Zookeeper集群有7臺服務(wù)器,要保證集群能對外提供服務(wù),最多允許有3臺服務(wù)器出現(xiàn)故障;如果Zookeeper集群有8臺服務(wù)器,要保證集群能對外提供服務(wù),也是最多允許3臺服務(wù)器出現(xiàn)故障。安裝Zookeeper集群時(shí),一般設(shè)置服務(wù)器的數(shù)量為奇數(shù)。Leader被選舉出來后,如果Zookeeper集群中半數(shù)以上的服務(wù)器保持正常運(yùn)行,則選舉階段結(jié)束,進(jìn)入到原子廣播階段。5.1.5 Zookeeper的工作原理要進(jìn)行Leader選舉,至少需要兩臺機(jī)器,以3臺機(jī)器組成的服務(wù)器集群為例,在集群初始化階段,當(dāng)服務(wù)器Server1啟動時(shí),無法進(jìn)行和完成Leader選舉,當(dāng)?shù)诙_服務(wù)器Server2啟動時(shí),兩臺機(jī)器可以相互通信,每臺機(jī)器都試圖找到Leader,于是進(jìn)入Leader選舉階段。選舉過程如下。5.1 認(rèn)識Zookeeper(1)每臺服務(wù)器發(fā)出一個(gè)投票。初始情況下,Server1和Server2都會推舉自己作為Leader。投票信息包含所推舉的服務(wù)器的myid(機(jī)器編號)和zxid(事務(wù)編號),用(myid,zxid)表示,此時(shí)Server1的投票為(1,0),Server2的投票為(2,0),它們各自將投票發(fā)給集群中其他機(jī)器。(2)接收來自各臺服務(wù)器的投票。集群的每個(gè)服務(wù)器收到投票后,先判斷該投票的有效性,如檢查是否為本輪投票、是否來自LOOKING(搜尋)狀態(tài)的服務(wù)器。(3)處理投票。針對每一次投票,服務(wù)器都需要將別人的投票和自己的投票進(jìn)行PK,PK規(guī)則如下。優(yōu)先檢查zxid,zxid比較大的服務(wù)器優(yōu)先作為Leader。如果zxid相同,那么就比較myid,myid較大的服務(wù)器作為Leader服務(wù)器。5.1.5 Zookeeper工作原理5.1 認(rèn)識Zookeeper對于Server1而言,它的投票是(1,0),接收到Server2的投票為(2,0),首先比較兩者的zxid,均為0,然后比較myid,此時(shí)Server2的myid較大,于是Server1更新自己的投票為(2,0),重新投票。對于Server2而言,自己的投票無須更新,它需要再次向集群中所有機(jī)器發(fā)出上一次投票信息。(4)統(tǒng)計(jì)投票。每次投票后,服務(wù)器都會統(tǒng)計(jì)投票信息,判斷是否有過半機(jī)器接收到相同的投票信息。對于Server1、Server2而言,一旦統(tǒng)計(jì)出集群中有兩臺機(jī)器接收到了投票信息(2,0),便認(rèn)為已經(jīng)選出了Leader。(5)改變服務(wù)器狀態(tài)。一旦確定了Leader,每臺服務(wù)器就會更新自己的狀態(tài),F(xiàn)ollower變更狀態(tài)為FOLLOWING(跟隨),Leader變更狀態(tài)為LEADING(領(lǐng)導(dǎo))。5.1.5 Zookeeper工作原理5.1 認(rèn)識Zookeeper2.原子廣播原子廣播階段首先需要同步Leader和Follower的數(shù)據(jù)。當(dāng)Leader出現(xiàn)故障或者Leader失去大多數(shù)的Follower時(shí),Zookeeper集群會在Follower中快速選舉一個(gè)Leader,保證客戶端無論連接哪個(gè)Zookeeper服務(wù)器,獲取的數(shù)據(jù)都是一致的。保證數(shù)據(jù)一致性的過程稱為原子廣播。5.1.5 Zookeeper工作原理5.2Zookeeper的安裝和常用命令5.2.1Zookeeper單機(jī)模式5.2.2Zookeeper全分布式5.2.3Zookeeper服務(wù)器常用腳本5.2.4Zookeeper客戶端節(jié)點(diǎn)和命令5.2 Zookeeper的安裝和常用命令本書使用的是3.4.10版本的Zookeeper,安裝包見附錄。用Java編寫的Zookeeper運(yùn)行在虛擬機(jī)上,需要提前安裝JDK并配置好Java環(huán)境。本書主要講述Zookeeper的兩種安裝模式:單機(jī)模式和全分布式。5.2 Zookeeper的安裝和常用命令Zookeeper單機(jī)模式,安裝步驟如下。(1)將Zookeeper安裝包zookeeper-3.4.10放到虛擬機(jī)qf01的/root/Downloads/目錄下,切換到root用戶,新建目錄/mysoft,解壓Zookeeper安裝包到/mysoft目錄下。5.2.1 Zookeeper單機(jī)模式(2)切換到/mysoft目錄下,將zookeeper-3.4.10重命名為zookeeper。(3)打開/etc/profile文件,配置Zookeeper環(huán)境變量。5.2 Zookeeper的安裝和常用命令5.2.1 Zookeeper單機(jī)模式在文件末尾添加如下三行內(nèi)容。(4)使環(huán)境變量生效。(5)將文件/mysoft/zookeeper/conf/zoo_sample.cfg重命名為zoo.cfg(Zookeeper的配置文件)。(6)啟動Zookeeper的服務(wù)器。5.2 Zookeeper的安裝和常用命令(7)檢測Zookeeper服務(wù)器是否啟動成功有兩種方法。①查看Zookeeper服務(wù)器的啟動狀態(tài)。5.2.1 Zookeeper單機(jī)模式出現(xiàn)QuorumPeerMain進(jìn)程表明Zookeeper服務(wù)器啟動成功。QuorumPeerMain是zookeeper集群的啟動入口。出現(xiàn)如下內(nèi)容表明Zookeeper服務(wù)器啟動成功。②用jps命令查看Zookeeper服務(wù)器的QuorumPeerMain進(jìn)程是否啟動。5.2 Zookeeper的安裝和常用命令(8)關(guān)閉Zookeeper服務(wù)器。5.2.1 Zookeeper單機(jī)模式5.2 Zookeeper的安裝和常用命令1.安裝步驟Zookeeper全分布式,又稱Zookeeper集群模式,安裝步驟如下。(1)修改Zookeeper的配置文件zoo.cfg。5.2.2 Zookeeper全分布式將dataDir=/tmp/zookeeper修改為如下內(nèi)容。在文件末尾添加如下3行。其中,“1”“2”“3”被稱為myid,要求是1~255的整數(shù)。qf01、qf02、qf03其對應(yīng)的主機(jī)地址。2888是Leader端口,負(fù)責(zé)和Follower進(jìn)行通信。3888是Follower端口,負(fù)責(zé)推選Leader。5.2 Zookeeper的安裝和常用命令(2)新建目錄/mysoft/zookeeper/zkdata,在該目錄下新建文件myid。5.2.2 Zookeeper全分布式在myid文件中填寫如下內(nèi)容。(4)修改虛擬機(jī)qf02的/mysoft/zookeeper/zkdata/myid文件。將myid文件中的內(nèi)容替換為如下內(nèi)容。(3)將/soft/zookeeper/分發(fā)到虛擬機(jī)qf02、qf03。5.2 Zookeeper的安裝和常用命令(5)修改虛擬機(jī)qf03的/mysoft/zookeeper/zkdata/myid文件。5.2.2 Zookeeper全分布式將myid文件中的內(nèi)容替換為如下內(nèi)容。(7)分別使虛擬機(jī)qf02、qf03的環(huán)境變量生效。(8)分別啟動虛擬機(jī)qf01、qf02、qf03的Zookeeper服務(wù)器。(6)將虛擬機(jī)qf01的系統(tǒng)環(huán)境變量分發(fā)到虛擬機(jī)qf02、qf03。5.2 Zookeeper的安裝和常用命令(9)分別查看各虛擬機(jī)的Zookeeper服務(wù)器啟動狀態(tài)。查看虛擬機(jī)qf01的Zookeeper服務(wù)器啟動狀態(tài)。5.2.2 Zookeeper全分布式查看虛擬機(jī)qf02的Zookeeper服務(wù)器啟動狀態(tài)。查看虛擬機(jī)qf02的Zookeeper服務(wù)器啟動狀態(tài)。5.2 Zookeeper的安裝和常用命令查看啟動狀態(tài)返回的結(jié)果中,出現(xiàn)Mode:follower或Mode:leader,表明Zookeeper服務(wù)器啟動成功。2.啟動和關(guān)閉Zookeeper集群啟動和關(guān)閉Zookeeper集群需要在每臺虛擬機(jī)上啟動和關(guān)閉Zookeeper服務(wù)器。在實(shí)際工作中,使用的服務(wù)器可能會比較多,在每臺服務(wù)器上進(jìn)行重復(fù)的操作效率不高。為了方便地啟動和關(guān)閉Zookeeper集群,可以編寫啟動腳本xzk.sh,具體步驟如下。5.2.2 Zookeeper全分布式5.2 Zookeeper的安裝和常用命令(1)在虛擬機(jī)qf01的/usr/local/bin/目錄下,新建xzk.sh腳本文件,xzk.sh文件內(nèi)容如下。5.2.2 Zookeeper全分布式(2)為xzk.sh腳本擁有者添加執(zhí)行權(quán)限。5.2 Zookeeper的安裝和常用命令(3)通過xzk.sh腳本的start和stop命令,在虛擬機(jī)qf01上同時(shí)啟動和關(guān)閉虛擬機(jī)qf01、qf02、qf03的Zookeeper服務(wù)器。至此,Zookeeper全分布式安裝完成。5.2.2 Zookeeper全分布式5.2 Zookeeper的安裝和常用命令Zookeeper服務(wù)器的常用腳本在/mysoft/zookeeper/bin/目錄下,具體含義如下表所示。5.2.3 Zookeeper服務(wù)器常用腳本5.2 Zookeeper的安裝和常用命令1.Zookeeper客戶端的節(jié)點(diǎn)(1)Zookeeper客戶端的文件系統(tǒng)。Zookeeper客戶端的文件系統(tǒng)使用了樹形目錄結(jié)構(gòu),與Linux文件系統(tǒng)類似。Zookeeper客戶端的目錄項(xiàng)都被稱為節(jié)點(diǎn)(Znode)。每個(gè)節(jié)點(diǎn)擁有數(shù)據(jù)、數(shù)據(jù)長度、創(chuàng)建時(shí)間、修改時(shí)間、子節(jié)點(diǎn)數(shù)量等信息。注意:此處的節(jié)點(diǎn)要區(qū)別于NameNode、DataNode等。(2)Zookeeper節(jié)點(diǎn)的3種類型。永久節(jié)點(diǎn):在Zookeeper客戶端退出后,不會自動刪除的節(jié)點(diǎn)。Zookeeper客戶端默認(rèn)創(chuàng)建永久節(jié)點(diǎn)。5.2.4 Zookeeper客戶端節(jié)點(diǎn)和命令、5.2 Zookeeper的安裝和常用命令臨時(shí)節(jié)點(diǎn):在Zookeeper客戶端退出后,會自動刪除的節(jié)點(diǎn)。臨時(shí)節(jié)點(diǎn)不能有子節(jié)點(diǎn)。使用者可以通過臨時(shí)節(jié)點(diǎn)判斷分布式服務(wù)的打開或關(guān)閉。順序節(jié)點(diǎn):節(jié)點(diǎn)名稱末尾會自動附加一個(gè)10位序列號的節(jié)點(diǎn)。(3)Zookeeper節(jié)點(diǎn)的權(quán)限控制。在實(shí)際生產(chǎn)環(huán)境中,多個(gè)應(yīng)用常使用相同的Zookeeper,但是不同應(yīng)用系統(tǒng)很少使用共同的數(shù)據(jù)。鑒于這種情況,Zookeeper采用ACL(AccessControlList,訪問控制列表)策略來進(jìn)行權(quán)限控制,類似于Linux文件系統(tǒng)的權(quán)限控制。Zookeeper的節(jié)點(diǎn)定義了5種權(quán)限。5.2.4 Zookeeper客戶端節(jié)點(diǎn)和命令5.2 Zookeeper的安裝和常用命令CREATE:創(chuàng)建子節(jié)點(diǎn)的權(quán)限。READ:獲取子節(jié)點(diǎn)數(shù)據(jù)和子節(jié)點(diǎn)列表的權(quán)限。WRITE:更新節(jié)點(diǎn)數(shù)據(jù)的權(quán)限。DELETE:刪除子節(jié)點(diǎn)的權(quán)限。ADMIN:設(shè)置節(jié)點(diǎn)ACL的權(quán)限。5.2.4 Zookeeper客戶端節(jié)點(diǎn)和命令5.2 Zookeeper的安裝和常用命令2.打開Zookeeper客戶端以下操作在Zookeeper全分布式下進(jìn)行。(1)打開Zookeeper本地客戶端。在虛擬機(jī)qf01、qf02、qf03的Zookeeper服務(wù)器都啟動的情況下,在虛擬機(jī)qf01中使用如下命令打開客戶端。5.2.4 Zookeeper客戶端節(jié)點(diǎn)和命令出現(xiàn)如下內(nèi)容,表明Zookeeper客戶端啟動成功。退出Zookeeper客戶端的命令如下。5.2 Zookeeper的安裝和常用命令(2)打開指定的Zookeeper遠(yuǎn)程客戶端。例如,在虛擬機(jī)qf01上打開遠(yuǎn)程虛擬機(jī)qf02的Zookeeper客戶端,可使用如下命令。5.2.4 Zookeeper客戶端節(jié)點(diǎn)和命令出現(xiàn)如下內(nèi)容,表明虛擬機(jī)qf02的Zookeeper客戶端啟動成功。其中,qf02指的是虛擬機(jī)qf02的主機(jī)地址。5.2 Zookeeper的安裝和常用命令3.Zookeeper客戶端的命令(1)使用help命令查看Zookeeper客戶端的命令。5.2.4 Zookeeper客戶端節(jié)點(diǎn)和命令5.2 Zookeeper的安裝和常用命令(2)Zookeeper客戶端的常用命令。Zookeeper客戶端的常用命令及具體含義,如表所示。5.2.4 Zookeeper客戶端節(jié)點(diǎn)和命令注意:Zookeeper客戶端中操作節(jié)點(diǎn)的命令必須使用絕對路徑。5.3Zookeeper客戶端編程5.3.1配置開發(fā)環(huán)境5.3.2Java程序操作Zookeeper客戶端5.3 Zookeeper客戶端編程Zookeeper提供了JavaAPI來方便開發(fā)者進(jìn)行客戶編程,并根據(jù)項(xiàng)目需求操作服務(wù)器上的數(shù)據(jù)。5.3 Zookeeper客戶端編程在InterlliJIDEA中項(xiàng)目testHadoop下新建模塊testZK,修改pom.xml文件的內(nèi)容,具體如下。5.3.1 配置開發(fā)環(huán)境5.3 Zookeeper客戶端編程編寫Java程序?qū)崿F(xiàn)對Zookeeper客戶端的操作,具體代碼和測試結(jié)果,參見教材例5-1。5.3.2 Java程序操作Zookeeper客戶端5.4Zookeeper典型應(yīng)用場景5.4.1數(shù)據(jù)發(fā)布與訂閱5.4.2命名服務(wù)5.4.3分布式鎖5.4 Zookeeper典型應(yīng)用場景數(shù)據(jù)發(fā)布與訂閱模型,即配置中心,顧名思義就是發(fā)布者將數(shù)據(jù)發(fā)布到Zookeeper節(jié)點(diǎn)上,供訂閱者動態(tài)獲取數(shù)據(jù),實(shí)現(xiàn)配置信息的集中式管理和動態(tài)更新。全局配置信息、服務(wù)式框架的服務(wù)地址列表等非常適合使用該模型。(1)把應(yīng)用中用到的一些配置信息放到Zookeeper上進(jìn)行集中管理。這類場景通常是這樣:應(yīng)用在啟動時(shí)會主動來獲取一次配置,同時(shí)在節(jié)點(diǎn)上注冊一個(gè)Watcher(監(jiān)聽者),這樣一來,以后每次配置有更新的時(shí)候,客戶端訂閱者都會收到通知。(2)分布式搜索服務(wù)中,索引的元信息和服務(wù)器集群機(jī)器的節(jié)點(diǎn)狀態(tài)存放在Zookeeper的一些指定節(jié)點(diǎn),供客戶端訂閱使用。5.4.1 數(shù)據(jù)發(fā)布與訂閱5.4 Zookeeper典型應(yīng)用場景(3)分布式日志收集系統(tǒng)。這個(gè)系統(tǒng)的核心工作是收集分布在不同機(jī)器的日志。收集器通常是按照應(yīng)用來分配收集任務(wù)單元,因此需要在Zookeeper上創(chuàng)建一個(gè)以應(yīng)用名作為Path(路徑)的節(jié)點(diǎn)P,并將這個(gè)應(yīng)用的所有機(jī)器IP地址,以子節(jié)點(diǎn)的形式注冊到節(jié)點(diǎn)P上,這樣一來,機(jī)器變動的時(shí)候就能夠?qū)崟r(shí)通知到收集器調(diào)整任務(wù)分配。(4)系統(tǒng)中有些信息需要?jiǎng)討B(tài)獲取,并且存在手動修改信息的詢問。這時(shí)通常要暴露出接口,如JMX(JavaManagementExtensions,Java管理擴(kuò)展)接口,來獲取一些運(yùn)行時(shí)的信息。引入Zookeeper之后,開發(fā)者就不用自己去實(shí)現(xiàn)一套方案了,只要將這些信息存放到指定的Zookeeper節(jié)點(diǎn)上即可。注意:上面提到的應(yīng)用場景的默認(rèn)前提是數(shù)據(jù)量很小而數(shù)據(jù)更新比較快。5.4.1 數(shù)據(jù)發(fā)布與訂閱5.4 Zookeeper典型應(yīng)用場景命名服務(wù)也是分布式系統(tǒng)中比較常見的一類場景。在分布式系統(tǒng)中,通過使用命名服務(wù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論