最近打算好好學(xué)習(xí)一下zookeeper,那么第一步就是要搭建一個環(huán)境。
單機(jī)版的比較簡單,這里就不介紹了。
集群版本的,看網(wǎng)上的教程也蠻簡單的,但是自己動起手來還是會遇到各種問題,這里做一下記錄。
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比靈臺網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式靈臺網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋靈臺地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。
1、3個阿里云服務(wù)器,其中2個ECS,1個輕量服務(wù)器。
2、zookeeper使用最新版本 https://archive.apache.org/dist/zookeeper/stable/apache-zookeeper-3.5.5-bin.tar.gz
3、3臺云主機(jī)的Java使用jdk1.8版本。
1、檢查各個主機(jī)的Java環(huán)境是否正常
2、下載最新版本zookeeper,并解壓,3臺機(jī)器最好采用統(tǒng)一的目錄,我采用的目錄
/enzi/zk/apache-zookeeper-3.5.5-bin
3、3個機(jī)器,分別創(chuàng)建zookeeper的數(shù)據(jù)目錄和日志目錄
/enzi/zk/data
/enzi/zk/log
4、進(jìn)入程序目錄下,3個機(jī)器操作都一樣
/enzi/zk/apache-zookeeper-3.5.5-bin/conf
復(fù)制zoo_sample.cfg為zoo.cfg,并修改zoo.cfg內(nèi)容如下:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/enzi/zk/data
dataLogDir=/enzi/zk/log
# the port at which the clients will connect
clientPort=2181
#admin.serverPort=8089
# the maximum number of client connections.
# increase this if you need to handle more clients
#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
server.1=ip1:2888:3888
server.2=ip2:2888:3888
server.3=ip3:2888:3888
quorumListenOnAllIPs=true
5、創(chuàng)建myid文件
分別在對應(yīng)的data目錄下,為自己的服務(wù)指定myid,內(nèi)容就是zoo.cfg里面server.后面的序號,分別是1,2,3,ip1機(jī)器下myid內(nèi)容為1,依次類推。
6、依次啟動3個機(jī)器zookeeper服務(wù)
bin/zkServer.sh start
如果想看有沒有什么錯誤信息可以使用如下命令,在調(diào)試階段建議使用這個命令。
bin/zkServer.sh start-foreground
7、查看是否啟動成功
mode:follower,代表這個服務(wù)是follower節(jié)點(diǎn)。
這里server.1是leader節(jié)點(diǎn)。
8、使用客戶端進(jìn)行連接,這里采用的windows的客戶端
zkCli.cmd -server ip1:2181,ip2:2181,ip3:2181
使用命令,創(chuàng)建臨時節(jié)點(diǎn)如下
注意:對于阿里云,因?yàn)榉阑饓蛘逧CS的安全策略來說,會導(dǎo)致集群之間的接口連接失敗。
1、輕量服務(wù)器來說需要把2181,2888,3888增加到防火墻上。
2、對于ESC需要把2181,2888,3888的安全規(guī)則,入口和出口都設(shè)置為允許。