zookeeper版本3.6.1 https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz
centos6,使用iptables作防火墙
0、前置操作
解压好zookeeper文件,然后在./目录(解压后的文件夹内)下,创建data、
data/1、data/2、data/3(这边的1、2、3,对应zoo.cfg配置中的dataDir目录),在
data/1目录下创建文件myid,内容就一个数字1(这个数字对应zoo.cfg配置中的 server.1)
data/2目录下创建文件myid,内容就一个数字2(这个数字对应zoo.cfg配置中的 server.2)
data/3目录下创建文件myid,内容就一个数字3(这个数字对应zoo.cfg配置中的 server.3)
1、配置文件(下方配置中的localhost可更改成各自主机IP地址或域名)
./conf/zoo1.cfg (拷贝自./conf/zoo_simple.cfg),内容如下
tickTime=2000
initLimit=10
syncLimit=5
dataDir=./data/1
clientPort=2181
server.1=localhost:2188:3188
server.2=localhost:2288:3288
server.3=localhost:2389:3388
./conf/zoo1.cfg (拷贝自./conf/zoo_simple.cfg),内容如下
tickTime=2000
initLimit=10
syncLimit=5
dataDir=./data/2
clientPort=2182
server.1=localhost:2188:3188
server.2=localhost:2288:3288
server.3=localhost:2389:3388
./conf/zoo1.cfg (拷贝自./conf/zoo_simple.cfg),内容如下
tickTime=2000
initLimit=10
syncLimit=5
dataDir=./data/3
clientPort=2183
server.1=localhost:2188:3188
server.2=localhost:2288:3288
server.3=localhost:2389:3388
3、启动(在./目录下启动命令,对应配置文件中dataDir的./路径,如果配置文件中采用绝对路径,则这边不局限于./目录下执行启动命令)
./bin/zkService.sh start $PWD/conf/zoo1.cfg
./bin/zkService.sh start $PWD/conf/zoo2.cfg
./bin/zkService.sh start $PWD/conf/zoo3.cfg
查看状态
./bin/zkService.sh status $PWD/conf/zoo1.cfg
./bin/zkService.sh status $PWD/conf/zoo2.cfg
./bin/zkService.sh status $PWD/conf/zoo3.cfg
【有意思1】
问题来了(我的某个环境有此问题,另一个环境则没有),单服务器搭建集群,按理防火墙不会拦截(默认防火墙规则),但是zookeeper启动不了,此时需要将2181、2182、2183,开放。如果还不行,则需要将2188、2288、2388、3188、3288、3388端口开放
【有意思2】
集群能正常选举,集群启动完毕。你以为能在另一台服务器连接上这个集群了,嘿嘿,还有遐思。
我的另一个服务器,连接不上(dubbo 2.7.3采用zookeeper作注册、元数据中心)。我把服务器(dubbo所在的)iptables关了,能连上。经过一番测试,得出问题。开着iptables,连接会慢,zookeeper连接器默认超时时间是5秒,连不上。关了iptables,连接速度就增加了(具体原因不明)。我最后的解决方案是不关iptables,配置超时时间(在zookeeper://IP:2181,IP:2182,IP:2183?timeout=30000)