搭建一个简单的zookeeper集群

最近想研究一下zookeeper的源码,为了理论联合实践,我搭建了一个简单的zookeeper集群,现在把步骤写在下面
本人所搭建的集群是在3台ubuntu的虚拟机上,ip分别如下所示

server.1=10.112.2.88
server.2=10.112.2.140
server.3=10.112.2.43

1、配置zoo.cfg


搭建一个简单的zookeeper集群_第1张图片
zookeeper的配置

参数说明

tickTime:zookeeper中使用的基本时间单位,毫秒值
initLimit:zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower. initLimit参数配置初始化连接时, follower和leader之间的最长心跳时间
syncLimit:该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度
dataDir:数据目录,存放持久化的数据所在地址
dataLogDir:zookeeper生成日志的地方,这个与zookeeper重启时选举领导有关
clientPort:监听客户端的端口
server.1=ip:port1:port2:这是配置zookeeper的列表,`port1`表示各个server之间的交流数据的端口,`port2`表示server之间的选举端口

2、建立两个目录

mkdir /tmp/zookeeper
mkdir /tmp/zookeeper/{log,data}

3、创建myid文件,每台机器的myid中的值递增

#host1
echo "1" >> /tmp/zookeeper/myid
#host2
echo "2" >> /tmp/zookeeper/myid
#host3
echo "3" >> /tmp/zookeeper/myid

4、在bin目录下使用./zkServer.sh start分别启动zkServer,然后使用./zkServer.sh status来查看zkServer的主从情况

从机

主机

5、使用zkCli进行登录,在主机创建一个节点,然后看看从机有什么变化


主机创建节点

搭建一个简单的zookeeper集群_第2张图片
从机查看节点

从上面可以看到,在主机创建的节点会被复制到从机上面
6、下面我们来看看,把leader关闭,看看会不会重新选举


关闭leader

新主机

可以看到从原先的从机客户端退下来之后发现进行了新一轮的选举
7、继续把主机关闭看看
只剩下一台主机

可以看到,当只剩下一台主机的时候,zookeeper集群就无法继续工作了

至于为什么需要向上面一样的设置,就需要详细的了解zookeeper的ZAB协议了,可以参考一下其它的zookeeper博客和文档

你可能感兴趣的:(搭建一个简单的zookeeper集群)