频道栏目
首页 > 资讯 > 其他 > 正文

ZooKeeper集群

17-01-09        来源:[db:作者]  
收藏   我要投稿

ZooKeeper集群:参数说明:tickTime=2000,tickTime 这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime 时间就会发送一个心跳。

1、环境说明

ZooKeeper-server:10.10.36.126

dubbo-admin-server:10.10.36.128

ZooKeeper1:2181,2881,3881

ZooKeeper2:2182,2882,3882

ZooKeeper3:2183,2883,3883

2、ZooKeeper安装

tar -zxvf zookeeper-3.4.9.tar.gz

mv zookeeper-3.4.9 ./zookeeper/node-01

mv zookeeper-3.4.9 ./zookeeper/node-02

mv zookeeper-3.4.9 ./zookeeper/node-03

 

cd node-01

mkdir data

mkdir logs

vi ./data/myid

内容:

1

(node-02中为2,node-03中为3)

cp ./conf/zoo_sample.cfg ./conf/zoo.cfg

vi ./confzoo.cfg

dataDir=/home/wangzi/soft/zookeeper/node-01/data
dataLogDir=/home/wangzi/soft/zookeeper/node-01/logs
clientPort=2181
server.1=10.10.36.126:2881:3881
server.2=10.10.36.126:2882:3882
server.3=10.10.36.126:2883:3883

node-02修改如下:

dataDir=/home/wangzi/soft/zookeeper/node-02/data
dataLogDir=/home/wangzi/soft/zookeeper/node-02/logs
clientPort=2182
server.1=10.10.36.126:2881:3881
server.2=10.10.36.126:2882:3882
server.3=10.10.36.126:2883:3883

node-03修改:

dataDir=/home/wangzi/soft/zookeeper/node-03/data
dataLogDir=/home/wangzi/soft/zookeeper/node-03/logs
clientPort=2183
server.1=10.10.36.126:2881:3881
server.2=10.10.36.126:2882:3882
server.3=10.10.36.126:2883:3883

initLimit=10
initLimit 这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper
服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长
能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服
务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。
syncLimit=5
syncLimit 这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少
个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒。
dataDir=/home/wusc/zookeeper/node-01/data
dataDir顾名思义就是Zookeeper保存数据的目录,默认情况下Zookeeper将写数据的日志文件也保存在
这个目录里。
clientPort=2181
clientPort 这个端口就是客户端(应用程序)连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端
口接受客户端的访问请求。

server.A=B:C:D
A 是一个数字,表示这个是第几号服务器(与./data/myid中的内容一致);
B 是这个服务器的 IP 地址(或者是与 IP 地址做了映射的主机名);
C 第一个端口用来集群成员的信息交换,表示这个服务器与集群中的 Leader 服务器交换信息的端口;
D 是在 leader 挂掉时专门用来进行选举 leader 所用的端口。

3、配置防火墙

打开2181,2182,2183,2881,2882,2883,3881,3882,3883端口

firewall-cmd --zone=public --add-port=2181/tcp --permanent

... ...

firewall-cmd --reload

4、配置dubbo管控台

dubbo管控台的安装已在之前的博客中说明,此处不再赘述

vi ./dubbo-admin-tomcat/webapps/ROOT/WEB-INF/dubbo.properties

修改内容如下:

dubbo.registry.address=zookeeper://10.10.36.126:2181?backup=10.10.36.126:2182,10.10.36.126:2183

5、启动zookeeper

./bin/zkServer.sh start

jps

输出如下:

4563 QuorumPeerMain
4635 Jps
4604 QuorumPeerMain
4526 QuorumPeerMain

可以得知zookeeper启动成功

6、配置服务提供者

7、查看各zookeeper的状态信息

$./node-01/bin/zkServer.sh status

ZooKeeper JMX enabled by default
Using config: /home/wangzi/soft/zookeeper/node-01/bin/../conf/zoo.cfg
Mode: follower
$ ./node-02/bin/zkServer.sh status

ZooKeeper JMX enabled by default
Using config: /home/wangzi/soft/zookeeper/node-02/bin/../conf/zoo.cfg
Mode: follower
$ ./node-03/bin/zkServer.sh status

ZooKeeper JMX enabled by default
Using config: /home/wangzi/soft/zookeeper/node-03/bin/../conf/zoo.cfg
Mode: leader

可以得知node-03是主节点,而01和02是从节点

这时,关闭node-03,服务运行正常,再次查看状态

$ ./node-01/bin/zkServer.sh status

ZooKeeper JMX enabled by default
Using config: /home/wangzi/soft/zookeeper/node-01/bin/../conf/zoo.cfg
Mode: follower
$ ./node-02/bin/zkServer.sh status

ZooKeeper JMX enabled by default
Using config: /home/wangzi/soft/zookeeper/node-02/bin/../conf/zoo.cfg
Mode: leader

此时node-02是主节点,node-01是从节点,服务运行正常

如此时关闭node-02,查看01的状态

$ ./node-01/bin/zkServer.sh status

ZooKeeper JMX enabled by default
Using config: /home/wangzi/soft/zookeeper/node-01/bin/../conf/zoo.cfg
Error contacting service. It is probably not running

node-01的状态已经查询不到,但服务依然运行正常,这种情况下,如果重启dubbo管控台,将启动不成功,处于等待状态。

开启node-02或node-03,node-01的状态立马可以查询到,并且dubbo管控台启动成功。

注:zookeeper集群必须半数以上处于正常状态时,才可以推选出主节点,此时的集群才是处于高可用状态。

相关TAG标签
上一篇:JavaAPI-StringBuffer类
下一篇:为什么要使用AlertDialog.Builder创建AlertDialog对话框
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站