欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

ZooKeeper必會(huì)的知識(shí)點(diǎn)有哪些

這篇文章主要講解了“ZooKeeper必會(huì)的知識(shí)點(diǎn)有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“ZooKeeper必會(huì)的知識(shí)點(diǎn)有哪些”吧!

成都創(chuàng)新互聯(lián)是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),網(wǎng)站模板,微信公眾號(hào)開發(fā),軟件開發(fā),小程序設(shè)計(jì),10多年建站對(duì)服務(wù)器租用等多個(gè)方面,擁有豐富的營(yíng)銷推廣經(jīng)驗(yàn)。

ZooKeeper 是什么?

ZooKeeper 是一個(gè)分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是 Google 的 Chubby 一個(gè)開源的實(shí)現(xiàn),

它是集群的管理者監(jiān)視著集群中各個(gè)節(jié)點(diǎn)的狀態(tài)根據(jù)節(jié)點(diǎn)提交的反饋進(jìn)行下一步合理操作。最終,將簡(jiǎn)單易

用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。

客戶端的讀請(qǐng)求可以被集群中的任意一臺(tái)機(jī)器處理,如果讀請(qǐng)求在節(jié)點(diǎn)上注冊(cè)了監(jiān)聽器,這個(gè)監(jiān)聽器也是由所

連接的 zookeeper 機(jī)器來(lái)處理。對(duì)于寫請(qǐng)求,這些請(qǐng)求會(huì)同時(shí)發(fā)給其他 zookeeper 機(jī)器并且達(dá)成一致后,請(qǐng)

求才會(huì)返回成功。因此,隨著 zookeeper 的集群機(jī)器增多,讀請(qǐng)求的吞吐會(huì)提高但是寫請(qǐng)求的吞吐會(huì)下降

有序性是 zookeeper 中非常重要的一個(gè)特性,所有的更新都是全局有序的,每個(gè)更新都有一個(gè)唯一的時(shí)間戳

這個(gè)時(shí)間戳稱為 zxid(Zookeeper Transaction Id)。而讀請(qǐng)求只會(huì)相對(duì)于更新有序,也就是讀請(qǐng)求的返回

結(jié)果中會(huì)帶有這個(gè) zookeeper 最新的 zxid

ZooKeeper 提供了什么?

1、文件系統(tǒng)

2、通知機(jī)制

Zookeeper 文件系統(tǒng)

Zookeeper 提供一個(gè)多層級(jí)的節(jié)點(diǎn)命名空間(節(jié)點(diǎn)稱為 znode)。與文件系統(tǒng)不同的是,這些節(jié)點(diǎn)都可以設(shè)置

關(guān)聯(lián)的數(shù)據(jù),而文件系統(tǒng)中只有文件節(jié)點(diǎn)可以存放數(shù)據(jù)而目錄節(jié)點(diǎn)不行。Zookeeper 為了保證高吞吐和低延

遲,在內(nèi)存中維護(hù)了這個(gè)樹狀的目錄結(jié)構(gòu),這種特性使得 Zookeeper 不能用于存放大量的數(shù)據(jù),每個(gè)節(jié)點(diǎn)的存

放數(shù)據(jù)上限為 1M

四種類型的 znode

1、PERSISTENT-持久化目錄節(jié)點(diǎn)

客戶端與 zookeeper 斷開連接后,該節(jié)點(diǎn)依舊存在

2、PERSISTENT_SEQUENTIAL-持久化順序編號(hào)目錄節(jié)點(diǎn)

客戶端與 zookeeper 斷開連接后,該節(jié)點(diǎn)依舊存在,只是 Zookeeper 給該節(jié)點(diǎn)名稱進(jìn)行順序編號(hào)

3、EPHEMERAL-臨時(shí)目錄節(jié)點(diǎn)

客戶端與 zookeeper 斷開連接后,該節(jié)點(diǎn)被刪除

4、EPHEMERAL_SEQUENTIAL-臨時(shí)順序編號(hào)目錄節(jié)點(diǎn)客戶端與 zookeeper 斷開連接后,該節(jié)點(diǎn)被刪除, 只是 Zookeeper 給該節(jié)點(diǎn)名稱進(jìn)行順序編號(hào)

Zookeeper 通知機(jī)制

client 端會(huì)對(duì)某個(gè) znode 建立一個(gè) watcher 事件,當(dāng)該 znode 發(fā)生變化時(shí),這些 client 會(huì)收到 zk 的通知,

然后 client 可以根據(jù) znode 變化來(lái)做出業(yè)務(wù)上的改變等。

Zookeeper 做了什么?

1、命名服務(wù)

2、配置管理

3、集群管理

4、分布式鎖

5、隊(duì)列管理7.zk 的命名服務(wù)(文件系統(tǒng))

命名服務(wù)是指通過指定的名字來(lái)獲取資源或者服務(wù)的地址,利用 zk 創(chuàng)建一個(gè)全局的路徑,即是唯一的路徑,這

個(gè)路徑就可以作為一個(gè)名字,指向集群中的集群,提供的服務(wù)的地址,或者一個(gè)遠(yuǎn)程的對(duì)象等等。

zk 的配置管理(文件系統(tǒng)、通知機(jī)制)

程序分布式的部署在不同的機(jī)器上,將程序的配置信息放在 zk 的 znode下,當(dāng)有配置發(fā)生改變時(shí),也就是

znode 發(fā)生變化時(shí),可以通過改變 zk 中某個(gè)目錄節(jié)點(diǎn)的內(nèi)容,利用 watcher通知給各個(gè)客戶端,從而更改配

置。

Zookeeper 集群管理(文件系統(tǒng)、通知機(jī)制)

所謂集群管理無(wú)在乎兩點(diǎn):是否有機(jī)器退出和加入、選舉 master

對(duì)于第一點(diǎn),所有機(jī)器約定在父目錄下創(chuàng)建臨時(shí)目錄節(jié)點(diǎn),然后監(jiān)聽父目錄節(jié)點(diǎn)的子節(jié)點(diǎn)變化消息。一旦有機(jī)

器掛掉,該機(jī)器與 zookeeper 的連接斷開,其所創(chuàng)建的臨時(shí)目錄節(jié)點(diǎn)被刪除,所有其他機(jī)器都收到通知:某個(gè)

兄弟目錄被刪除,于是,所有人都知道:它上船了。

新機(jī)器加入也是類似,所有機(jī)器收到通知:新兄弟目錄加入,highcount 又有了,對(duì)于第二點(diǎn),我們稍微改變

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

Zookeeper 分布式鎖(文件系統(tǒng)、通知機(jī)制)

有了 zookeeper 的一致性文件系統(tǒng),鎖的問題變得容易。鎖服務(wù)可以分為兩類,一個(gè)是保持獨(dú)占,另一個(gè)是

制時(shí)序

對(duì)于第一類,我們將 zookeeper 上的一個(gè) znode 看作是一把鎖,通過 createznode 的方式來(lái)實(shí)現(xiàn)。所有客戶

端都去創(chuàng)建 /distribute_lock 節(jié)點(diǎn),最終成功創(chuàng)建的那個(gè)客戶端也即擁有了這把鎖。用完刪除掉自己創(chuàng)建的

distribute_lock 節(jié)點(diǎn)就釋放出鎖。對(duì)于第二類, /distribute_lock 已經(jīng)預(yù)先存在,所有客戶端在它下面 創(chuàng)建臨時(shí)順序編號(hào)目錄節(jié)點(diǎn),和選

master 一樣,編號(hào)最小的獲得鎖,用完刪除,依次方便。

獲取分布式鎖的流程

在獲取分布式鎖的時(shí)候在 locker 節(jié)點(diǎn)下創(chuàng)建臨時(shí)順序節(jié)點(diǎn),釋放鎖的時(shí)候刪除該臨時(shí)節(jié)點(diǎn)。客戶端調(diào)用

createNode 方法在 locker 下創(chuàng)建臨時(shí)順序節(jié)點(diǎn),

然后調(diào)用 getChildren(“l(fā)ocker”)來(lái)獲取 locker 下面的所有子節(jié)點(diǎn),注意此時(shí)不用設(shè)置任何 Watcher。客戶

端獲取到所有的子節(jié)點(diǎn) path 之后,如果發(fā)現(xiàn)自己創(chuàng)建的節(jié)點(diǎn)在所有創(chuàng)建的子節(jié)點(diǎn)序號(hào)最小,那么就認(rèn)為該客戶

端獲取到了鎖。如果發(fā)現(xiàn)自己創(chuàng)建的節(jié)點(diǎn)并非 locker 所有子節(jié)點(diǎn)中最小的,說明自己還沒有獲取到鎖,此時(shí)客

戶端需要找到比自己小的那個(gè)節(jié)點(diǎn),然后對(duì)其調(diào)用 **exist()**方法,同時(shí)對(duì)其注冊(cè)事件監(jiān)聽器。之后,讓這個(gè)被關(guān)

注的節(jié)點(diǎn)刪除,則客戶端的 Watcher 會(huì)收到相應(yīng)通知,此時(shí)再次判斷自己創(chuàng)建的節(jié)點(diǎn)是否是 locker 子節(jié)點(diǎn)中

序號(hào)最小的,如果是則獲取到了鎖,如果不是則重復(fù)以上步驟繼續(xù)獲取到比自己小的一個(gè)節(jié)點(diǎn)并注冊(cè)監(jiān)聽。 當(dāng)前這個(gè)過程中還需要許多的邏輯判斷。

代碼的實(shí)現(xiàn)主要是基于互斥鎖,獲取分布式鎖的重點(diǎn)邏輯在于 BaseDistributedLock,實(shí)現(xiàn)了基于

Zookeeper 實(shí)現(xiàn)分布式鎖的細(xì)節(jié)。

感謝各位的閱讀,以上就是“ZooKeeper必會(huì)的知識(shí)點(diǎn)有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)ZooKeeper必會(huì)的知識(shí)點(diǎn)有哪些這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

當(dāng)前題目:ZooKeeper必會(huì)的知識(shí)點(diǎn)有哪些
標(biāo)題網(wǎng)址:http://www.chinadenli.net/article12/iiepdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名品牌網(wǎng)站制作ChatGPT云服務(wù)器營(yíng)銷型網(wǎng)站建設(shè)App開發(fā)

廣告

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

商城網(wǎng)站建設(shè)