溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

大數(shù)據(jù)生態(tài)之zookeeper(典型應(yīng)用場(chǎng)景)

發(fā)布時(shí)間:2020-07-19 19:10:46 來(lái)源:網(wǎng)絡(luò) 閱讀:833 作者:原生zzy 欄目:大數(shù)據(jù)

1. 命名服務(wù)

大數(shù)據(jù)生態(tài)之zookeeper(典型應(yīng)用場(chǎng)景)

       命名服務(wù)是分布式系統(tǒng)中較為常見(jiàn)的一類(lèi)場(chǎng)景,分布式系統(tǒng)中,被命名的實(shí)體通常可以是集群中的機(jī)器、提供的服務(wù)地址或者遠(yuǎn)程對(duì)象,通過(guò)命名服務(wù),客戶端可以根據(jù)指定名字來(lái)獲取資源的實(shí)體、服務(wù)地址和提供者的信息。Zookeeper可以幫助應(yīng)用系統(tǒng)通過(guò)資源引用的方式來(lái)實(shí)現(xiàn)對(duì)資源的定位和使用。Zookeeper 也可幫助應(yīng)用系統(tǒng)通過(guò)資源引用的方 式來(lái)實(shí)現(xiàn)對(duì)資源的定位和使用,廣義上的命名服務(wù)的資源定位都不是真正意義上的實(shí)體資源, 在分布式環(huán)境中,上層應(yīng)用僅僅需要一個(gè)全局唯一的名字。Zookeeper 可以實(shí)現(xiàn)一套分布式 全局唯一 ID的分配機(jī)制。

 

2. 配置管理

大數(shù)據(jù)生態(tài)之zookeeper(典型應(yīng)用場(chǎng)景)

    程序總需要配置,如果程序分散到各個(gè)機(jī)器上,要逐個(gè)改變配置就變得困難,現(xiàn)在這些配置全部放入zookeeper中,保存在zookeeper的某個(gè)目錄節(jié)點(diǎn)中,然后所有相關(guān)的應(yīng)用程序?qū)@個(gè)目錄節(jié)點(diǎn)進(jìn)行監(jiān)聽(tīng),一旦配置信息發(fā)生變化,每一個(gè)應(yīng)用程序就會(huì)收到zookeeper的通知,然后從zookeeper獲取新的配置信息應(yīng)用到系統(tǒng)中就好。例:以安裝hadoop集群為例,集群中的每一個(gè)節(jié)點(diǎn)的配置文件統(tǒng)一,在zk管理配置文件時(shí),用監(jiān)聽(tīng)的手段,監(jiān)聽(tīng)配置文件內(nèi)容是否被修改,配置文件是否添加配置文件是否刪除。以便于各個(gè)集群節(jié)點(diǎn)中同步配置文件。

 

3.集群管理

所謂的集群管理分兩大塊:是否有機(jī)器加入/退出,選舉master

    (1)是否有節(jié)點(diǎn)機(jī)器加入或者退出

            所有的機(jī)器約定在父目錄GroupMembers 下創(chuàng)建臨時(shí)目錄節(jié)點(diǎn),然后監(jiān)聽(tīng)父目錄節(jié)點(diǎn)的子節(jié)點(diǎn)變化的信息。一旦有機(jī)器掛掉,該機(jī)器與zookeeper的連接斷開(kāi),其所創(chuàng)建的臨時(shí)節(jié)點(diǎn)目錄被刪除。所有其他機(jī)器都收到通知:某個(gè)兄弟目錄被刪除,于是,所有人都 知道:有兄弟掛了。新機(jī)器加入也是類(lèi)似,所有機(jī)器收到通知:新兄弟目錄加入,又多了個(gè)新兄弟。

    (2)選舉master

             所有機(jī)器創(chuàng)建臨時(shí)順序編號(hào)目錄節(jié)點(diǎn),每次選取編號(hào)最小 的機(jī)器作為 master 就好。

                             大數(shù)據(jù)生態(tài)之zookeeper(典型應(yīng)用場(chǎng)景)

 

4. 分布式鎖

    在zk中鎖有三種:寫(xiě)鎖、讀鎖、時(shí)序鎖。

寫(xiě)鎖:在zk上創(chuàng)建的一個(gè)臨時(shí)的無(wú)編號(hào)的節(jié)點(diǎn)。由于是無(wú)序編號(hào),在創(chuàng)建時(shí)不會(huì)自動(dòng)編號(hào),導(dǎo)致只能客戶端有一個(gè)客戶端得到鎖,然后進(jìn)行寫(xiě)入。

讀鎖:在zk上創(chuàng)建一個(gè)臨時(shí)的有編號(hào)的節(jié)點(diǎn),這樣即使下次有客戶端加入是同時(shí)創(chuàng)建相同的節(jié)點(diǎn)時(shí),他也會(huì)自動(dòng)編號(hào),也可以獲得鎖對(duì)象,然后對(duì)其進(jìn)行讀取。

時(shí)序鎖:在zk上創(chuàng)建的一個(gè)臨時(shí)的有編號(hào)的節(jié)點(diǎn)根據(jù)編號(hào)的大小控制鎖。

 

5.隊(duì)列管理

    在zk中有兩種隊(duì)列管理方式:

        (1)同步隊(duì)列:當(dāng)一個(gè)隊(duì)列的成員都聚齊時(shí),這個(gè)隊(duì)列才可用,否則一直等待所有成員到達(dá)。

                   作用:在約定目錄下創(chuàng)建臨時(shí)目錄節(jié)點(diǎn),監(jiān)聽(tīng)節(jié)點(diǎn)數(shù)目是否是我們要求的數(shù)目。

        (2)先進(jìn)先出隊(duì)列:隊(duì)列按照 FIFO 方式進(jìn)行入隊(duì)和出隊(duì)操作。

                  作用:和分布式鎖服務(wù)中的控制時(shí)序場(chǎng)景基本原理一致,入列有編號(hào),出列按編號(hào)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI