ZooKeeper集群安装

分类:Java
上篇文章我们介绍了ZooKeeper的基本知识,包括它的基本概念、应用场景、数据模型等,并在最后演示了ZooKeeper的安装过程,不过,这是单机的安装方法,而在分布式高可用的应用环境中,单机显然是不能满足要求的,今天,我们就来讲解ZooKeeper的集群安装,当然,这也只能算是伪集群,因为所有操作都是在一台机器上面进行的,不过,在真正多台机器中安装的时候,主要操作步骤基本一样,所以并不影响对于安装过程的演示。
我们先来看看ZooKeeper集群的基本概念,在ZK集群中,服务器一共有三种角色:

Leader:它是整个集群中的核心,一个集群中只能有一个Leader节点,它主要处理客户端的读写处理,以及集群内部各节点间的调度协调等工作。只有Leader节点才能处理客户端的写请求。

Follower:处理客户端请求,参与投票,写请求转发至Leader节点。

Observer:功能与Follower节点基本一致,它可以处理客户端请求,将请求转发至Leader节点,但它不参与投票。在中小规模的ZooKeeper集群中,一般不包括此种类型节点。

ZooKeeper集群安装

下面,我们来安装ZooKeeper集群,首先把ZK安装包下载到目录/usr/local下面并解压,并重名配置文件:zoo_sample.cfg具体步骤可以参见:“八面玲珑”的ZooKeeper入门介绍。然后切换到ZooKeeper下面,重命名配置文件并修改文件内容:
cp conf/zoo_sample.cfg conf/zoo1.cfg
vim conf/zoo1.cfg
并配置如下信息(如果配置文件中已经存在,则更新相应信息,否则新增配置项):
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper-1
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
这些配置项的含义如下:

tickTime心跳间隔时间,单位为毫秒

initLimit集群Follower与Leader初始连接时,最多能容忍的心跳数(也就是tickTime)

syncLimit集群中Follower与Leader之间,请求与应答能容忍最多的心跳数(也就是tickTime

dataDir数据目录

clientPort客户端连接ZooKeeper的端口

server.1=127.0.0.1:2888:3888:数字1表示服务器编号,127.0.0.1表示服务器的IP地址,第一个端口2888表示服务器之间通信的端口,第二个端口3888表示Leader选举的端口
然后把zoo1.cfg这个配置文件再复制两份,变成zoo2.cfg和zoo3.cfg,修改里面的两个配置项dataDir和clientPort即可,分别如下:
dataDir=/tmp/zookeeper-2
clientPort=2182
dataDir=/tmp/zookeeper-3
clientPort=2183
接下来需要创建服务器ID,先在tmp中创建三个存放数据的目录,然后在这三个目录中创建文件myid文件,文件内容分别为当前服务器的编号,也就是1,2,3:
mkdir /tmp/zookeeper-1
mkdir /tmp/zookeeper-2
mkdir /tmp/zookeeper-3
在第一个服务为例,先切换到目录/tmp/zookeeper-1,然后创建文件myid,并写入内容1,另外两个服务也是同样的操作,只不过是在各自的目录下创建myid,并写入内容2和3:
cd /tmp/zookeeper-1
touch myid
vim myid
1

再切换到ZooKeeper根目录,启动三个服务:

bin/zkServer.sh start conf/zoo1.cfg
bin/zkServer.sh start conf/zoo2.cfg
bin/zkServer.sh start conf/zoo3.cfg

再检查一下服务器的状态,可以看到,目前第二个服务为Leader角色:

ZooKeeper集群安装

这样,ZooKeeper集群服务就基本搭建起来了,当然,这里是入门级的介绍,ZK本身自带的参数也还有很多,在实际应用还需要根据业务场景的需要作进一步的修改和优化

都看到这里了,请帮忙一键三连啊,也就是点击文末的在看、点赞、分享,这样会让我的文章让更多人看到,也会大大地激励我进行更多的输出,谢谢!

鸣谢:

https://zookeeper.apache.org/doc/current/zookeeperOver.html

https://blog.51cto.com/muxiaonong/4198080


推荐阅读:

俯拾皆是的Java注解,你真的get了吗?

“八面玲珑”的ZooKeeper入门介绍

责无旁贷:超酷的责任链模式

聚沙成塔:聊聊建造者模式

公司裁员,码农竟然成了“帮凶”?(剧情杜撰)

原文始发于微信公众号(互联网全栈架构):ZooKeeper集群安装

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/173580.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!