成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

分布式協(xié)調(diào)服務(wù):zookeeper

cocopeak / 1144人閱讀

摘要:協(xié)調(diào)服務(wù)的功能在分布式架構(gòu)中,每個(gè)服務(wù)器或者服務(wù)之間信息的協(xié)調(diào)和管理是非常有必要的常見的分布式協(xié)調(diào)服務(wù)有的,的因?yàn)楣雀璧氖遣婚_源的,后來雅虎模仿它開發(fā)了,并捐贈(zèng)給,并將其開源供大家使用我們先從的幾個(gè)功能來了解名稱服務(wù)什么是名稱服務(wù)比如將域名

協(xié)調(diào)服務(wù)的功能

在分布式架構(gòu)中,每個(gè)服務(wù)器或者服務(wù)之間信息的協(xié)調(diào)和管理是非常有必要的

常見的分布式協(xié)調(diào)服務(wù)有Google的Chubby,Apache的ZooKeeper
因?yàn)楣雀璧腃hubby是不開源的,后來雅虎模仿它開發(fā)了zookeeper,并捐贈(zèng)給Apache,并將其開源供大家使用

我們先從zookeeper的幾個(gè)功能來了解zookeeper
1.名稱服務(wù):什么是名稱服務(wù)?比如DNS將域名映射到一個(gè)IP、手機(jī)通訊錄將人命映射到手機(jī)號(hào)...諸如此類功能就是名稱服務(wù),在分布式系統(tǒng)中,zookeeper的名稱服務(wù)是通過名稱來跟蹤一些服務(wù)器或者服務(wù)的運(yùn)行狀態(tài)

2.分布式鎖:在一臺(tái)機(jī)器一個(gè)服務(wù)上,我們可以用高并發(fā)中學(xué)到的對(duì)象鎖,重入鎖等知識(shí),來完成不同線程對(duì)同一資源的順序調(diào)度。那么在分布式架構(gòu)下,我們面對(duì)的問題要復(fù)雜得多,這時(shí)候不同進(jìn)程對(duì)于同一資源的調(diào)度,就只能使用分布式鎖來完成協(xié)調(diào),zookeeper提供一種簡(jiǎn)單的方式來實(shí)現(xiàn)分布式互斥(distributed mutexes

3.配置管理:zookeeper通過集中式存儲(chǔ)和管理分布式系統(tǒng)的配置,加入加入一個(gè)新的服務(wù)節(jié)點(diǎn)(znode),那么可以立即使用zookeeper的最新配置,也可以通過一個(gè)zookeeper客戶端來更改集中式配置

4.領(lǐng)導(dǎo)者選舉:當(dāng)分布式系統(tǒng)中一個(gè)服務(wù)出現(xiàn)故障(比如停機(jī)),zookeeper通過領(lǐng)導(dǎo)者選舉來轉(zhuǎn)移故障,使系統(tǒng)繼續(xù)運(yùn)行

zookeeper的安裝

首先在linux上安裝zookeeper,必須保證linux上裝有jdk,因?yàn)閦ookeeper是在jvm上運(yùn)行的
下載地址:http://www.apache.org/dist/zo...

使用wget下載后,
打開解壓文件夾,進(jìn)入到conf文件下,拷貝zoo_sample.cfg副本,命名為zoo.cfg

此步驟的原因是:Zookeeper 在啟動(dòng)時(shí)會(huì)找zoo.cfg這個(gè)文件作為默認(rèn)配置文件

啟動(dòng)zookeeper(在解壓根目錄下輸入):./bin/zkServer.sh start(關(guān)閉stop)
當(dāng)然為了方便,在etc/profile下添加:

export ZOOKEEPER_HOME=/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

這樣便可直接使用zkServer.sh start啟動(dòng)

zookeeper的UI模型

zookeeper的數(shù)據(jù)模型是由zondes構(gòu)成的,你可以把zookeeper的數(shù)據(jù)模型看成是操作系統(tǒng)中的目錄結(jié)構(gòu),每個(gè)目錄的文件夾名就是一個(gè)zonde,在每個(gè)文件夾(znode)下都有一些存儲(chǔ)數(shù)據(jù),類似于目錄下的文件,但是在zookeeper下這些數(shù)據(jù)一般很小(1M以下),只是用來存儲(chǔ)一些必要信息

每個(gè)zookeeper服務(wù)器下都存儲(chǔ)了znodes,這也遵循了分布式的原則,因?yàn)閦ookeeper本身也是一個(gè)分布式應(yīng)用,此外每個(gè)zookeeper服務(wù)器都維護(hù)了一個(gè)事務(wù)日志(記錄的是所有的請(qǐng)求)

zk客戶端與zk服務(wù)器的交互

在啟動(dòng)一個(gè)zk服務(wù)器的時(shí)候,我們先來看下它的配置
默認(rèn)啟動(dòng)的配置文件在zookeeper/conf/下:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/log
clientPort=2181
#端口2888由對(duì)等的zookeeper服務(wù)器使用,用于互相通信
#端口3888用于領(lǐng)導(dǎo)者選舉
server.1=106.15.205.155:2888:3888

clientPort是給客戶端連接用的端口
dataDir是節(jié)點(diǎn)數(shù)據(jù)存儲(chǔ)的目錄
dataLogDir是日志輸出的目錄,不指定的話默認(rèn)在dataDir下

/tmp/zookeeper/data目錄下新建一個(gè)文件myid,并存入一個(gè)值為1
它對(duì)應(yīng)zoo.cfg中的server.1

server.1=106.15.205.155:2888:3888這行代碼中
106.15.205.155是Ip(寫自己的)
2888是領(lǐng)導(dǎo)者選舉端口
3888是zookeeper服務(wù)器間的通信端口

打開zookeeper服務(wù)器(關(guān)閉為stop):

zkServer.sh start

打印出以下日志說明zookeeper啟動(dòng)成功:

ZooKeeper JMX enabled by default
Using config: /zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

啟動(dòng)zk客戶端:

zkCli.sh

成功連接之后,便可以對(duì)zkServer進(jìn)行節(jié)點(diǎn)操作

1.增加節(jié)點(diǎn)并且給予success數(shù)據(jù):

create /znode1 success

2.查看該zk服務(wù)器znode明細(xì):

ls /

3.查看指定節(jié)點(diǎn)詳情:

get znode1

4.設(shè)置節(jié)點(diǎn)(比如修改數(shù)據(jù):sunnces變?yōu)閑rror)

set /znode1 error

5.關(guān)閉zkCli:

close

6.刪除節(jié)點(diǎn)

delete /znode1

同樣可以使用java代碼來實(shí)現(xiàn)對(duì)zookeeper服務(wù)器的操作
但是很多框架已經(jīng)封裝了操作類
如果想要自己實(shí)現(xiàn),推薦使用nio的模型來操作
可以去看下Doug Lea的PPT:Scalable io in java

監(jiān)聽日志

我們監(jiān)聽的是zookeeper/bin下zookeeper.out日志
因?yàn)槲覀円呀?jīng)配置了系統(tǒng)環(huán)境變量,所以直接在根目錄下啟動(dòng):

tail -f zookeeper.out

以上便是zookeeper服務(wù)器的簡(jiǎn)單介紹
謝謝閱讀

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/35903.html

相關(guān)文章

  • 可能是全網(wǎng)把 ZooKeeper 概念講的最清楚的一篇文章

    摘要:的設(shè)計(jì)目標(biāo)是將那些復(fù)雜且容易出錯(cuò)的分布式一致性服務(wù)封裝起來,構(gòu)成一個(gè)高效可靠的原語集,并以一系列簡(jiǎn)單易用的接口提供給用戶使用。具有不可分割性即原語的執(zhí)行必須是連續(xù)的,在執(zhí)行過程中不允許被中斷。 該文已加入開源文檔:JavaGuide(一份涵蓋大部分Java程序員所需要掌握的核心知識(shí))。地址:https://github.com/Snailclimb... showImg(https:...

    DrizzleX 評(píng)論0 收藏0
  • Zookeeper知識(shí)點(diǎn)整理

    摘要:當(dāng)已經(jīng)超過個(gè)心跳的時(shí)間也就是長(zhǎng)度后服務(wù)器還沒有收到客戶端的返回信息那么表明這個(gè)客戶端連接失敗。 基礎(chǔ)篇 1、zookeeper是什么 Zookeeper,一種分布式應(yīng)用的協(xié)作服務(wù),是Google的Chubby一個(gè)開源的實(shí)現(xiàn),是Hadoop的分布式協(xié)調(diào)服務(wù),它包含一個(gè)簡(jiǎn)單的原語集,應(yīng)用于分布式應(yīng)用的協(xié)作服務(wù),使得分布式應(yīng)用可以基于這些接口實(shí)現(xiàn)諸如同步、配置維護(hù)和分集群或者命名的服務(wù)。...

    linkFly 評(píng)論0 收藏0
  • zookeeper小入門(一)

    摘要:好吧,就是給指定的結(jié)點(diǎn)里面稱之為提供了統(tǒng)一的名稱。分布式鎖服務(wù)這個(gè)特性是最吸引我的特性了,如何實(shí)現(xiàn)分布式鎖呢,就是使用提供的有序且臨時(shí)的特性實(shí)現(xiàn)。當(dāng)然詳細(xì)的可以參照分布式鎖避免羊群效應(yīng)這篇文章,同時(shí)寫了如何避免羊群效應(yīng)。 最近想學(xué)東西,于是就又拿起前段時(shí)間因?yàn)闆]時(shí)間而落下的zookeeper啃了起來,第一次啃完教程發(fā)現(xiàn)什么都不明白,第二次啃完發(fā)現(xiàn),這東西,就這么簡(jiǎn)單的東西??? 先來摘...

    mumumu 評(píng)論0 收藏0
  • 如果有人問你ZooKeeper是什么,就把這篇文章發(fā)給他。

    摘要:所以,雅虎的開發(fā)人員就試圖開發(fā)一個(gè)通用的無單點(diǎn)問題的分布式協(xié)調(diào)框架,以便讓開發(fā)人員將精力集中在處理業(yè)務(wù)邏輯上。在立項(xiàng)初期,考慮到之前內(nèi)部很多項(xiàng)目都是使用動(dòng)物的名字來命名的例如著名的項(xiàng)目雅虎的工程師希望給這個(gè)項(xiàng)目也取一個(gè)動(dòng)物的名字。 前言 提到ZooKeeper,相信大家都不會(huì)陌生。Dubbo,Kafka,Hadoop等等項(xiàng)目里都能看到它的影子。但是你真的了解 ZooKeeper 嗎?如...

    suosuopuo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<