ZooKeeper集群安装

欢迎关注微信公众号:互联网全栈架构

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

我们先来看看ZooKeeper集群的基本概念,在ZK集群中,服务器一共有三种角色:

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

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

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

2946930e0cf9a8b5a2b54811ebaf715f.png

下面,我们来安装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角色:

944aba8209e51ec07d0e5908f30a5ee0.png

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

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

鸣谢:

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

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

推荐阅读:

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值