如何搭建一个 Zookeeper 集群
Zookeeper 在分布式系统中被用来同步各个服务器节点之间的状态,也可以用作服务发现,在各种分布式系统中,有很广泛的应用。
本文介绍一种搭建 Zookeeper 集群的方法。
和大多数分布式系统一样,Zookeeper 适合部署在节点为奇数的服务器集群中。
Zookeeper 的部署的环境和软件要求为:
本地服务集群
openjdk8
zookeeper-3.4.14
本文使用之前配置好的的本地虚拟机集群,如果有配置服务器集群的需求,可以参照我之前关于搭建服务器集群文章。
软件安装
软件安装相对简单,只需要将 Zookeeper 解压到 /opt/module (对这块有疑问的可以去看我之前的文章),并把目录更名为 apache-zookeeper-3.6.1
。
集群配置
在 apache-zookeeper-3.6.1 目录中创建一个 zkData
目录,这里面用来存放服务运行中产生的数据以及集群的配置
进入到 conf
目录,将 zoo_sample.cfg
改名为 zoo.cfg
然后编辑 zoo.cfg 文件,将 dataDir
配置为刚才创建好的 zkData 目录
然后将配置好的软件同步到另外两个服务器
还有最后一步,需要在三台机器上分别执行,以 192.168.56.3 机器为例,进入 zkData 目录,然后创建 myid
文件,文件中随便填入一个数字,只要别与另外两台机器重复
然后再编辑 zoo.cfg,在配置文件中加上如下内容,需要注意 server
后面的数字需要与每台服务器中 myid 文件中的数字相同,然后配置好机器名称以及选举时需要用到的的端口号
bigdata1,bigdata2,bigdata3 是三台机器的别名,在 /etc/hosts
文件中定义。
在另外两台机器上分别编辑 myid 和 zoo.cfg,myid 中的内容不能相同。
到这里,配置工作就完成了。
运行验证
配置完成后,在三台机器上分别执行:
如果没有报错,那么三台机器上的 Zookeeper 服务应该启动了,在启动前,我们无法确定那台服务器是 leader
,哪台服务器是 follower
,这会根据当时服务器的状态自动选举产生。
启动后,可以来查看机器状态:
bigdata1: 可以看到这是一个从节点
bigdata2: 这也是一个从节点
bigdata3:这是一台主节点
在确认集群启动之后,就可以通过客户端来连接集群,除了下面使用的命令行客户端之外,还可以使用各种编程语言的客户端。
连接进入集群后,通过 ls /
来查看集群的根节点,默认情况下,只有一个空的 zookeeper 节点
创建一个名称为 ray 的节点,里面的内容是 rayjun
通过 get 命令来查看 ray 节点下的内容
文 / Rayjun
本文首发于公众号 Rayjun
版权声明: 本文为 InfoQ 作者【Rayjun】的原创文章。
原文链接:【http://xie.infoq.cn/article/187041007704250b73f95bc79】。文章转载请联系作者。
评论