关于zookeeper:zookeeper伪集群搭建

6次阅读

共计 2365 个字符,预计需要花费 6 分钟才能阅读完成。

伪集群

伪集群就是在一台机器上启动多个雷同利用,模仿实在集群环境。zookeeper 的伪集群步骤和实在集群根本一样,只是配置的 IP 端口有点区别。

为什么须要集群?

在生产环境中,不论什么单体利用都不能保障始终可用,比方服务宕机,云厂商呈现的 bug 或者物理机器遇到的天下大乱这些,尽管概率小,然而也不能完全避免。为了实现高可用,就须要集群,同一利用多地部署,就算其中一个挂了,其余的也能持续提供服务。

zookeeper 对集群的要求

zookeeper 集群节点数必须是奇数,因为在 zookeeper 集群中,须要一个 leader 节点,此节点是通过选举机制产生的,这个选举机制须要满足:可用节点数 > 总节点数 /2,也就是存活的节点数必须超过总节点数的一半,如果总节点是 3 个,那能够容忍挂一个,如果总节点是 4 个,同样只能容忍挂一个,3 个和 4 个都只能容忍挂一个,那为啥要部署 4 个呢?

因自己资金无限,只有一台 Linux 服务器,所以采纳伪集群形式搭建 zookeeper 服务。上面咱们在一台机器上部署 3 个 zookeeper 节点,实现集群成果。

装置

从官网下载 zookeeper 并上传到服务器,我这里下载的是 3.4.14 版本

解压:tar -zxvf zookeeper-3.4.14.tar.gz

因为须要部署三个 zookeeper,咱们拷贝三分 zookeeper

cp -R zookeeper-3.4.14 zookeeper_01

cp -R zookeeper-3.4.14 zookeeper_02

cp -R zookeeper-3.4.14 zookeeper_03

配置

创立日志目录和数据目录

进入 zookeeper_01,创立 data 和 logs 目录

mkdir data

mkdir logs

在 data 目录下,创立 myid 文件,此文件记录节点 id,每个 zookeeper 节点都须要一个 myid 文件来记录节点在集群中的 id,此文件中只能有一个数字,默认放在数据目录上面。myid 中数字只能在 1~255 之间,也就是说 zookeeper 集群最多有 255 个节点。

配置 zoo.cfg

进入 conf 目录,复制 zoo_sample.cfg 文件并重命名为 zoo.cfg

cp zoo_sample.cfg zoo.cfg

批改 zoo.cfg

# 单位工夫,其余工夫都是以这个倍数来示意
tickTime=2000
# 节点初始化工夫,10 倍单位工夫
initLimit=10
# 心跳最大提早周期
syncLimit=5
# 数据目录
dataDir=/root/zookeeper/zookeeper_01/data
# 日志目录
dataLogDir=/root/zookeeper/zookeeper_01/logs
# 端口
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

每个节点都须要配置集群中所有节点信息,应用 server.id=ip:port:port 配置

其中 id,是下面 myid 文件中配置的 id;ip 是节点的 ip,第一个 port 是节点之间通信的端口,第二个 port 用于选举 leader 节点。

如果是实在集群环境,下面两个端口,每个节点都能够配置成 2888 和 3888。因为我这里在同一台机器上,端口不能抵触,只能应用不同的。

另外两个节点也同样操作,创立 data 目录和 logs 目录、创立 myid 文件,外面配置节点 id、批改 zoo.cfg。

这里贴一下我三个节点的配置

/root/zookeeper/zookeeper_01/conf/zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/root/zookeeper/zookeeper_01/data
dataLogDir=/root/zookeeper/zookeeper_01/logs
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

/root/zookeeper/zookeeper_02/conf/zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/root/zookeeper/zookeeper_02/data
dataLogDir=/root/zookeeper/zookeeper_02/logs
clientPort=2182

server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

/root/zookeeper/zookeeper_03/conf/zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/root/zookeeper/zookeeper_03/data
dataLogDir=/root/zookeeper/zookeeper_03/logs
clientPort=2183

server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

启动

进入 zookeeper 的 bin 目录,启动

./zkServer.sh start

三个节点顺次启动。

能够通过 ./zkServer.sh status 查看节点启动状态,是 leader 还是 follower。


<center> 扫一扫,关注我 </center>

正文完
 0