真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Zookeeper的配置與集群管理方法是什么-創(chuàng)新互聯(lián)

這篇文章主要講解了“Zookeeper的配置與集群管理方法是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Zookeeper的配置與集群管理方法是什么”吧!

成都創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)成都網(wǎng)站制作、網(wǎng)站營(yíng)銷(xiāo)推廣、網(wǎng)站開(kāi)發(fā)設(shè)計(jì),對(duì)服務(wù)紙箱等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司成立于2013年,提供專(zhuān)業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶(hù),為客戶(hù)提供賞心悅目的作品。 與客戶(hù)共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!

4.1 配置文件

ZooKeeper安裝好之后,在安裝目錄的conf文件夾下可以找到一個(gè)名為“zoo_sample.cfg”的文件,是ZooKeeper配置文件的模板。

ZooKeeper啟動(dòng)時(shí),會(huì)默認(rèn)加載“conf/zoo.cfg”作為配置文件,所以需要將“zoo_sample.cfg”復(fù)制一份,命名為“zoo.cfg”,然后根據(jù)需要設(shè)定里面的配置項(xiàng)。

配置項(xiàng)很簡(jiǎn)單,說(shuō)明如下:

tickTime=2000

這個(gè)時(shí)間是作為 ZooKeeper服務(wù)器之間或客戶(hù)端與服務(wù)器之間維持心跳的時(shí)間間隔,也就是每個(gè) tickTime 時(shí)間就會(huì)發(fā)送一個(gè)心跳。單位為毫秒。

initLimit=10

這個(gè)配置項(xiàng)是用來(lái)配置 Leader接受Follower 初始化連接時(shí)最長(zhǎng)能忍受多少個(gè)心跳時(shí)間間隔數(shù)。當(dāng)已經(jīng)超過(guò) 10 個(gè)心跳的時(shí)間(也就是 tickTime)長(zhǎng)度后 Leader還沒(méi)有收到Follower的返回信息,那么表明這個(gè)Follower連接失敗??偟臅r(shí)間長(zhǎng)度就是 5*2000=10 秒。

syncLimit=5

這個(gè)配置項(xiàng)標(biāo)識(shí) Leader 與 Follower 之間發(fā)送消息,請(qǐng)求和應(yīng)答時(shí)間長(zhǎng)度,最長(zhǎng)不能超過(guò)多少個(gè)tickTime 的時(shí)間長(zhǎng)度,總的時(shí)間長(zhǎng)度就是5*2000=10 秒。

dataDir=/tmp/zookeeper

顧名思義就是 ZooKeeper保存數(shù)據(jù)的目錄,用于存放內(nèi)存數(shù)據(jù)庫(kù)快照的文件夾,同時(shí)用于集群的myid文件也存在這個(gè)文件夾里。默認(rèn)情況下,ZooKeeper 將寫(xiě)數(shù)據(jù)的日志文件也保存在這個(gè)目錄里。注意:一個(gè)配置文件只能包含一個(gè)dataDir字樣,即使它被注釋掉了。

clientPort=2181

這個(gè)端口就是客戶(hù)端連接 ZooKeeper服務(wù)器的端口,ZooKeeper 會(huì)監(jiān)聽(tīng)這個(gè)端口,接受客戶(hù)端的訪問(wèn)請(qǐng)求。

maxClientCnxns=60

大的客戶(hù)端連接數(shù),默認(rèn)為60.

autopurge.snapRetainCount=3

autopurge.purgeInterval=1

客戶(hù)端在與ZooKeeper交互過(guò)程中會(huì)產(chǎn)生非常多的日志,而且ZooKeeper也會(huì)將內(nèi)存中的數(shù)據(jù)作為snapshot保存下來(lái),這些數(shù)據(jù)是不會(huì)被自動(dòng)刪除的,這樣磁盤(pán)中這些數(shù)據(jù)就會(huì)越來(lái)越多。不過(guò)可以通過(guò)這兩個(gè)參數(shù)來(lái)設(shè)置,讓zookeeper自動(dòng)刪除數(shù)據(jù)。autopurge.purgeInterval就是設(shè)置多少小時(shí)清理一次。而autopurge.snapRetainCount是設(shè)置保留多少個(gè)snapshot,之前的則刪除。

4.2 服務(wù)端命令

“zkServer.sh”腳本用于執(zhí)行Zookeeper的啟動(dòng)、停止及狀態(tài)查看等操作

利用“zkServer.sh help”命令,可以查看支持的參數(shù):

Zookeeper的配置與集群管理方法是什么

可見(jiàn),“zkServer.sh”可以附帶的參數(shù)有:

(1)start:用于啟動(dòng)服務(wù)端

(2)stop:用于停止服務(wù)端

(3)restart:用于重啟服務(wù)端

(4)status:用于查看服務(wù)端狀態(tài)

以及用于前臺(tái)啟動(dòng)、更新等操作的其他參數(shù)。

例如,使用命令“zkServer.sh start”啟動(dòng)ZooKeeper服務(wù)端,該命令后面可以附帶參數(shù),用于指定配置文件的路徑,比如“zkServer.sh start ../conf/ZooKeeper.cfg”,代表使用ZooKeeper.cfg作為配置文件,如果不指定路徑,默認(rèn)加載“conf/zoo.cfg”文件:

Zookeeper的配置與集群管理方法是什么

使用“zkServer.sh stop”停止服務(wù)端:

Zookeeper的配置與集群管理方法是什么

4.3 客戶(hù)端命令

使用命令“zkCli.sh -server 127.0.0.1:2181”可以連接到IP為“127.0.0.1”,端口為“2181”的ZooKeeper服務(wù)器。如果連接本機(jī)的2181端口,則后面的參數(shù)可以省略。如:

Zookeeper的配置與集群管理方法是什么

此時(shí),輸入“help”可以查看命令參數(shù):

Zookeeper的配置與集群管理方法是什么

4.3.1 查看節(jié)點(diǎn)列表

在前面已經(jīng)提到過(guò),ZooKeeper維護(hù)者一個(gè)樹(shù)形的數(shù)據(jù)結(jié)構(gòu),根節(jié)點(diǎn)為“/”。

ls path”用于查看路徑path下的所有直接子節(jié)點(diǎn):

Zookeeper的配置與集群管理方法是什么

可見(jiàn),系統(tǒng)初始化的時(shí)候,根節(jié)點(diǎn)下會(huì)自動(dòng)創(chuàng)建一個(gè)名為“zookeeper”的節(jié)點(diǎn),用于存儲(chǔ)ZooKeeper的管理信息。所以用戶(hù)不能再根節(jié)點(diǎn)下創(chuàng)建同名的子節(jié)點(diǎn)。

4.3.2 創(chuàng)建新節(jié)點(diǎn)

“create path data”用于在path路徑下創(chuàng)建一個(gè)新節(jié)點(diǎn),攜帶數(shù)據(jù)data。

例如,在根節(jié)點(diǎn)下新建一個(gè)名為“firstNode”節(jié)點(diǎn),存儲(chǔ)的數(shù)據(jù)為“HelloWorld”:

./zkClient.sh -server 127.0.01

create /firstNode HelloWorld

Zookeeper的配置與集群管理方法是什么

4.3.3 查看節(jié)點(diǎn)數(shù)據(jù)

“get path”用于獲取path節(jié)點(diǎn)下的數(shù)據(jù),例如:

get /firstNode

Zookeeper的配置與集群管理方法是什么

除了返回節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)之外,還有一系列的元信息,如代表節(jié)點(diǎn)創(chuàng)建時(shí)間的“cZxid”、“ctime”(兩種表示方法);節(jié)點(diǎn)的修改時(shí)間“mZxid”、“mtime”等。

4.3.4 修改節(jié)點(diǎn)數(shù)據(jù)

set path data ”用于將path節(jié)點(diǎn)下的數(shù)據(jù)更改為data。

如,將“/firstNode”下的數(shù)據(jù)更改為“WorldHello”:

set /firstNode WorldHello

Zookeeper的配置與集群管理方法是什么

4.3.5 刪除節(jié)點(diǎn)

“delete path”用于刪除path節(jié)點(diǎn)。

如,刪除“/firstNode”節(jié)點(diǎn):

delete /firstNode

Zookeeper的配置與集群管理方法是什么

此外,還有用于設(shè)置節(jié)點(diǎn)ACL、查看節(jié)點(diǎn)狀態(tài)等其他命令,需要時(shí)可以查閱相關(guān)手冊(cè)。

4.4 ZooKeeper四字命令

ZooKeeper 支持某些特定的四字命令字母與其的交互。它們大多是查詢(xún)命令,用來(lái)獲取 ZooKeeper 服務(wù)的當(dāng)前狀態(tài)及相關(guān)信息。用戶(hù)在客戶(hù)端可以通過(guò) telnet 或 nc 向 ZooKeeper 提交相應(yīng)的命令。

如:

ZooKeeper四字命令

conf

功能描述

輸出相關(guān)服務(wù)配置的詳細(xì)信息

cons

列出所有連接到服務(wù)器的客戶(hù)端的完全的連接 / 會(huì)話(huà)的詳細(xì)信息。包括“接受 / 發(fā)送”的包數(shù)量、會(huì)話(huà) id 、操作延遲、最后的操作執(zhí)行等等信息

dump

列出未經(jīng)處理的會(huì)話(huà)和臨時(shí)節(jié)點(diǎn)

envi

輸出關(guān)于服務(wù)環(huán)境的詳細(xì)信息(區(qū)別于 conf 命令)

reqs

列出未經(jīng)處理的請(qǐng)求

ruok

測(cè)試服務(wù)是否處于正確狀態(tài)。如果確實(shí)如此,那么服務(wù)返回“ imok ”,否則不做任何相應(yīng)

stat

輸出關(guān)于性能和連接的客戶(hù)端的列表

wchs

列出服務(wù)器 watch 的詳細(xì)信息

wchc

通過(guò) session 列出服務(wù)器 watch 的詳細(xì)信息,它的輸出是一個(gè)與 watch 相關(guān)的會(huì)話(huà)的列表

wchp

通過(guò)路徑列出服務(wù)器 watch 的詳細(xì)信息。它輸出一個(gè)與 session 相關(guān)的路徑


例如,查看配置信息:

“echo conf | nc 127.0.0.1 2181”:

nc為“NetCat”工具提供的命令,通常的Linux發(fā)行版中都帶有NetCat。NetCat在網(wǎng)絡(luò)工具中有“瑞士刀”美譽(yù),被設(shè)計(jì)為一個(gè)簡(jiǎn)單、可靠的網(wǎng)絡(luò)工具,可通過(guò)TCP或UDP協(xié)議傳輸讀寫(xiě)數(shù)據(jù)。

該命令的意思為,將“conf”命令傳遞給127.0.0.1的2181端口(即本機(jī)的ZooKeeper服務(wù)端口),并將響應(yīng)打印出來(lái):

Zookeeper的配置與集群管理方法是什么

在一臺(tái)機(jī)器上運(yùn)營(yíng)一個(gè)ZooKeeper實(shí)例,稱(chēng)之為單機(jī)(Standalone)模式。單機(jī)模式有個(gè)致命的缺陷,一旦唯一的實(shí)例掛了,依賴(lài)ZooKeeper的應(yīng)用全得完蛋。

實(shí)際應(yīng)用當(dāng)中,一般都是采用集群模式來(lái)部署ZooKeeper,集群中的Server為奇數(shù)(2N+1)。只要集群中的多數(shù)(大于N+1臺(tái))Server活著,集群就能對(duì)外提供服務(wù)。

在每臺(tái)機(jī)器上部署一個(gè)ZooKeeper實(shí)例,多臺(tái)機(jī)器組成集群,稱(chēng)之為完全分布式集群。此外,還可以在僅有的一臺(tái)機(jī)器上部署多個(gè)ZooKeeper實(shí)例,以偽集群模式運(yùn)行。

5.1 集群配置

下面我們來(lái)建一個(gè)3個(gè)實(shí)例的zookeeper偽分布式集群。

首先,需要為三個(gè)實(shí)例創(chuàng)建不同的配置文件:

zk1.cfg的配置項(xiàng)如下:

 tickTime=2000

 initLimit=10

 syncLimit=5

 dataDir=/zk1/dataDir

 clientPort=2181

 server.1=127.0.0.1:2888:3888

 server.2=127.0.0.1:2889:3889

 server.3=127.0.0.1:2890:3890
zk2.cfg的配置項(xiàng)如下:

 tickTime=2000

 initLimit=10

 syncLimit=5

 dataDir=/zk2/dataDir

 clientPort=2182

 server.1=127.0.0.1:2888:3888

 server.2=127.0.0.1:2889:3889

 server.3=127.0.0.1:2890:3890
zk3.cfg的配置項(xiàng)如下:

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/zk3/dataDir

clientPort=2183

server.1=127.0.0.1:2888:3888

server.2=127.0.0.1:2889:3889

server.3=127.0.0.1:2890:3890

因?yàn)椴渴鹪谕慌_(tái)機(jī)器上,所以每個(gè)實(shí)例的dataDir、clientPort要做區(qū)分,其余配置保持一致。

需要注意的是,集群中所有的實(shí)例作為一個(gè)整體對(duì)外提供服務(wù),集群中每個(gè)實(shí)例之間都互相連接,所以,每個(gè)配置文件中都要列出所有實(shí)例的映射關(guān)系。

在每個(gè)配置文件的末尾,有幾行“server.A=B:C:D”這樣的配置,其中, A 是一個(gè)數(shù)字,表示這個(gè)是第幾號(hào)服務(wù)器;B 是這個(gè)服務(wù)器的 ip 地址;C 表示的是這個(gè)服務(wù)器與集群中的 Leader 服務(wù)器交換信息的端口;D 表示的是萬(wàn)一集群中的 Leader 服務(wù)器掛了,需要一個(gè)端口來(lái)重新進(jìn)行選舉,選出一個(gè)新的 Leader,而這個(gè)端口就是用來(lái)執(zhí)行選舉時(shí)服務(wù)器相互通信的端口。如果是偽集群的配置方式,由于 B 都是一樣,所以不同的 Zookeeper 實(shí)例通信端口號(hào)不能一樣,所以要給它們分配不同的端口號(hào)。

除了修改 zoo.cfg 配置文件,集群模式下還要配置一個(gè)myid文件,這個(gè)文件在 dataDir 目錄下,文件里只有一個(gè)數(shù)據(jù),就是 A 的值(第幾號(hào)服務(wù)器),Zookeeper 啟動(dòng)時(shí)會(huì)讀取這個(gè)文件,拿到里面的數(shù)據(jù)與配置信息比較從而判斷到底是那個(gè) Server。

上例中,需要在每個(gè)實(shí)例各自的dataDir目錄下,新建myid文件,分別填寫(xiě)“1”、“2”、“3”。

5.2 集群?jiǎn)?dòng)

依次啟動(dòng)三個(gè)實(shí)例:

Zookeeper的配置與集群管理方法是什么

查看Server狀態(tài):

Zookeeper的配置與集群管理方法是什么

可見(jiàn),現(xiàn)在的集群中,zk2充當(dāng)著Leader角色,而zk1與zk3充當(dāng)著Follower角色。

使用三個(gè)客戶(hù)端連接三個(gè)Server,在zk1的客戶(hù)端下,新增“/newNode”節(jié)點(diǎn),儲(chǔ)存數(shù)據(jù)“zk1”:

Zookeeper的配置與集群管理方法是什么

在zk2的客戶(hù)端與查看該節(jié)點(diǎn):

Zookeeper的配置與集群管理方法是什么

在zk3的客戶(hù)端與查看該節(jié)點(diǎn):

Zookeeper的配置與集群管理方法是什么

可見(jiàn),集群中的Server保持著數(shù)據(jù)同步。

5.3 集群容災(zāi)

如果我們把身為L(zhǎng)eader的zk2關(guān)閉,會(huì)發(fā)生什么呢?

Zookeeper的配置與集群管理方法是什么

可見(jiàn),集群自動(dòng)完成了切換,zk3變成了Leader。實(shí)際應(yīng)用中,如果集群中的Leader宕機(jī)了,或者Leader與超過(guò)半數(shù)的Follower失去聯(lián)系,都會(huì)觸發(fā)ZooKeeper的選舉流程,選舉出新的Leader之后繼續(xù)對(duì)外服務(wù)。

如果我們?cè)侔褄k3關(guān)閉,會(huì)發(fā)生什么呢?

Zookeeper的配置與集群管理方法是什么

可見(jiàn),關(guān)閉zk3以后,由于集群中的可用Server只剩下一臺(tái)(達(dá)不到集群總數(shù)的半數(shù)以上),集群將處于不可用的狀態(tài)。

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


當(dāng)前標(biāo)題:Zookeeper的配置與集群管理方法是什么-創(chuàng)新互聯(lián)
分享地址:http://weahome.cn/article/dggspo.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部