ZooKeeper入門教程二在單機(jī)和集群環(huán)境下的安裝搭建及使用
通過(guò)本篇學(xué)習(xí)掌握zookeeper環(huán)境的搭建,為后續(xù)學(xué)習(xí)做好準(zhǔn)備
1、下載
首先我們下載最新穩(wěn)定版本的zookeeper
http://chabaoo.cn/softs/578345.html
2、解壓
下載完成后,我們解開(kāi)壓縮包
3、創(chuàng)建配置文件
解壓后的路徑下找到conf文件夾,進(jìn)入conf文件夾復(fù)制zoo_sample.cfg,命名為zoo.cfg
# 每個(gè)tick的毫秒數(shù)。后面的initLimit和syncLimit都以tick為單位 tickTime=2000 #初始化同步階段時(shí)長(zhǎng) initLimit=10 # 同步確認(rèn)時(shí)長(zhǎng) syncLimit=5 # 快照存儲(chǔ)路徑,不要使用/tmp。這里使用只是為了示例 dataDir=/tmp/zookeeper # 客戶端端口好 clientPort=2181 #可連接的client的最大數(shù) #如果需要處理更多的clinet,請(qǐng)?jiān)黾哟藬?shù)量 #maxClientCnxns=60 # Be sure to read the maintenance section of the # # administrator guide before turning on autopurge. # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1
對(duì)于學(xué)習(xí)來(lái)說(shuō),一般無(wú)需做修改。生產(chǎn)環(huán)境,需要修改dataDir。其他參數(shù)后續(xù)調(diào)優(yōu)。
4、單機(jī)啟動(dòng)ZooKeeper
在ZooKeeper根目錄下執(zhí)行 bin/zkServer.sh start
? zookeeper-3.4.12 bin/zkServer.sh start ZooKeeper JMX enabled by default Using config: /Users/yimingli/dev/tool/zookeeper-3.4.12/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
5、通過(guò)客戶端連接ZooKeeper
? zookeeper-3.4.12 bin/zkCli.sh
6、通過(guò)客戶端執(zhí)行基本命令
1、創(chuàng)建znode,名為/my_test,攜帶數(shù)據(jù)testData
[zk: localhost:2181(CONNECTED) 0] create /my_test testData
2、查看znode信息
[zk: localhost:2181(CONNECTED) 2] get /my_test
返回如下:
testData cZxid = 0x2e9 ctime = Mon Oct 29 10:50:46 CST 2018 mZxid = 0x2e9 mtime = Mon Oct 29 10:50:46 CST 2018 pZxid = 0x2e9 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 8 numChildren = 0
3、修改znode數(shù)據(jù)
[zk: localhost:2181(CONNECTED) 3] set /my_test testDataV2
4、創(chuàng)建子znode
[zk: localhost:2181(CONNECTED) 0] create /my_test/tester1 testData
5、列出子znode
[zk: localhost:2181(CONNECTED) 5] ls /my_test [tester1]
6、刪除znode
有子節(jié)點(diǎn)的znode不能直接刪除,否則會(huì)報(bào)錯(cuò)。
[zk: localhost:2181(CONNECTED) 6] delete /my_test Node not empty: /my_test
我們刪除/my_test/tester1。
[zk: localhost:2181(CONNECTED) 8] delete /my_test/tester1
再次查看該znode。
[zk: localhost:2181(CONNECTED) 9] get /my_test/tester1 Node does not exist: /my_test/tester1
已經(jīng)被成功刪除了。
7、集群配置和啟動(dòng)
我們配置和啟動(dòng)一個(gè)三臺(tái)server的集群。
1、修改zoo.cfg文件
tickTime=2000 dataDir=/var/lib/zookeeper clientPort=2181 initLimit=5 syncLimit=2 server.1=ip1:2888:3888 server.2=ip2:2888:3888 server.3=ip3:2888:3888
initLimit,zookeeper用來(lái)限制zookeeper服務(wù)器連接到leader的時(shí)長(zhǎng)。
syncLimit,一個(gè)服務(wù)器多久在leader那里過(guò)期。
以上兩種過(guò)期時(shí)間,單位都是tickTime,
本例initLimit時(shí)長(zhǎng)為5個(gè)tickTime=5*2000ms=10秒
server.x列出了所有的zookeeper服務(wù)。集群?jiǎn)?dòng)它通過(guò)查看data下面的myid來(lái)知道自己是哪臺(tái)服務(wù)器。
2888用來(lái)連接其它server。3888用來(lái)leader選舉。
2、復(fù)制2份zookeeper到另外兩臺(tái)server上。
3、在配置的dataDir路徑下創(chuàng)建myid文件,文件內(nèi)容為對(duì)應(yīng)自己的server.x的x值。比如zoo1這臺(tái)sever,myid文件中內(nèi)容為1.
4、啟動(dòng)每個(gè)zookeeper
5、查看本機(jī)狀態(tài),是leader還是follower
? zookeeper-3.4.12 bin/zkServer.sh status
至此我們已經(jīng)把zookeeper集群?jiǎn)?dòng)起來(lái)了,并且做了驗(yàn)證,有一臺(tái)是leader,另外兩臺(tái)是follower。
我們還可以做個(gè)實(shí)驗(yàn),看zookeeper集群是否工作正常。
1、連接其中一臺(tái)server,創(chuàng)建一個(gè)znode。
? zookeeper-3.4.12 bin/zkCli.sh -server ip1:2181 [zk: ip1:2181(CONNECTED) 10] create /zk_test my_data
2、連接另外一臺(tái)server,列出所有根節(jié)點(diǎn)下znode。
? zookeeper-3.4.12 bin/zkCli.sh -server ip2:2181 [zk: ip2:2181(CONNECTED) 10] ls /
輸出如下:
[zk_test]
可以看到集群已經(jīng)能夠正常工作,server間可以正常進(jìn)行數(shù)據(jù)的復(fù)制。
客戶端連接集群方法如下:
? zookeeper-3.4.12 bin/zkCli -server ip1:2181,ip2:2181,ip3:2181
客戶端會(huì)自動(dòng)隨機(jī)選擇集中一臺(tái)連接。
小結(jié):
至此,ZooKeeper單機(jī)環(huán)境和集群環(huán)境的搭建講解完成,更多關(guān)于ZooKeeper單機(jī)集群環(huán)境的安裝搭建使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Springboot動(dòng)態(tài)配置AOP切點(diǎn)詳解
這篇文章主要介紹了Springboot動(dòng)態(tài)配置AOP切點(diǎn)詳解,Springboot 可以定義注解切點(diǎn)去攔截注解修飾的類方法以及execution(xxxx)切點(diǎn)去攔截具體的類方法,默認(rèn)情況下我們都會(huì)使用注解@PointCut去定義切點(diǎn),然后定義切面攔截切點(diǎn),需要的朋友可以參考下2023-09-09使用MDC快速查詢應(yīng)用接口全部執(zhí)行日志
這篇文章主要為大家介紹了使用MDC快速查詢應(yīng)用接口全部執(zhí)行日志的方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01