Zookeeper安装

1  Zookeeper基本框架

Zookeeper集群主要角色有Leader,Learner(Follower,Observer(当服务器增加到一定程度,由于投票的压力增大从而使得吞吐量降低,所以增加了Observer。)以及client:

Leader:领导者,负责投票的发起和决议,以及更新系统状态

Follower:接受客户端的请求并返回结果给客户端,并参与投票

Observer:接受客户端的请求,将写的请求转发给leader,不参与投票。Observer目的是扩展系统,提高读的速度。

Client:客户端,想Zookeeper发起请求。

Zookeeper的基本框架图如下

1.2 zookeeper集群节点个数

zookeeper节点部署的越多,服务的可靠性也就越高。当然建议最好是部署奇数个,偶数个不是不可以。但是zookeeper集群是以宕机个数过半才会让整个集群宕机的,所以奇数个集群更佳,最好部署3,5,7个zookeeper节点。本次实验我们是以3个节点进行(centos6)。


二、zookeeper安装

2.1安装jdk

2.2安装zookeeper

[root@localhost ~]# cd /usr/local/

[root@localhost local]# wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz

[root@localhost local]# tar -xf zookeeper-3.4.8.tar.gz && rm -rf zookeeper-3.4.8.tar.gz && mv zookeeper-3.4.8 zookeeper && cd zookeeper && cp conf/zoo_sample.cfg conf/zoo.cfg

把zookeeper加入到环境变量,如下:

[root@localhost zookeeper]# vim /etc/profile


执行source命令使刚刚修改的环境生效,如下:

[root@localhost zookeeper]# source /etc/profile

[root@localhost zookeeper]# env


2.3修改zookeeper配置文件

[root@localhost zookeeper]# vim /usr/local/zookeeper/conf/zoo.cfg

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/usr/local/zookeeper/data

dataLogDir=/usr/local/zookeeper/logs

server.1= 192.168.1.2:2888:3888

server.2= 192.168.1.3:2888:3888

server.3= 192.168.1.4:2888:3888

clientPort=2181


配置文件参数说明:

tickTime这个时间是作为zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是说每个tickTime时间就会发送一个心跳。

initLimit这个配置项是用来配置zookeeper接受客户端(这里所说的客户端不是用户连接zookeeper服务器的客户端,而是zookeeper服务器集群中连接到leader的follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。

当已经超过10个心跳的时间(也就是tickTime)长度后 zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20秒。

syncLimit这个配置项标识leader与follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是5*2000=10秒。

dataDir顾名思义就是zookeeper保存数据的目录,默认情况下zookeeper将写数据的日志文件也保存在这个目录里;

clientPort这个端口就是客户端连接Zookeeper服务器的端口,Zookeeper会监听这个端口接受客户端的访问请求;

server.A=B:C:D中的A是一个数字,表示这个是第几号服务器,B是这个服务器的IP地址,C第一个端口用来集群成员的信息交换,表示这个服务器与集群中的leader服务器交换信息的端口,D是在leader挂掉时专门用来进行选举leader所用的端口。

2.4创建相关目录

[root@localhost zookeeper]# mkdir -p /usr/local/zookeeper/{data,logs}

2.5创建ServerID标识

除了修改zoo.cfg配置文件外,zookeeper集群模式下还要配置一个myid文件,这个文件需要放在dataDir目录下。

这个文件里面有一个数据就是A的值(该A就是zoo.cfg文件中server.A=B:C:D中的A),在zoo.cfg文件中配置的dataDir路径中创建myid文件。

在192.168.1.2服务器上创建myid文件,并设置为1,同时与zoo.cfg文件里面的server.1对应,如下:

echo "1" > /usr/local/zookeeper/data/myid

在192.168.1.3服务器上创建myid文件,并设置为2,同时与zoo.cfg文件里面的server.2对应,如下:

echo "2"  > /usr/local/zookeeper/data/myid

在192.168.1.4服务器上创建myid文件,并设置为2,同时与zoo.cfg文件里面的server.2对应,如下:

echo "3" > /usr/local/zookeeper/data/myid

三、启动zookeeper,查看集群

启动:

[root@localhost zookeeper]# bin/zkServer.sh start


注意:在启动第一台zookeeper的时候可能会报错,等三台zookeeper全部启动完成之后就不会报错了。

查看状态:

[root@localhost zookeeper]# bin/zkServer.sh status


四、连接zookeeper集群

[root@localhost zookeeper]# bin/zkCli.sh -server 192.168.1.3:2181


安装完成。。。

上一篇:.Net RabbitMQ实战指南——进阶(二)


下一篇:关于web 工程内web.xml文件的解读