伪集群

伪集群就是在一台机器上启动多个雷同利用,模仿实在集群环境。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:3888server.2=127.0.0.1:2889:3889server.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=2000initLimit=10syncLimit=5dataDir=/root/zookeeper/zookeeper_01/datadataLogDir=/root/zookeeper/zookeeper_01/logsclientPort=2181server.1=127.0.0.1:2888:3888server.2=127.0.0.1:2889:3889server.3=127.0.0.1:2890:3890

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

tickTime=2000initLimit=10syncLimit=5dataDir=/root/zookeeper/zookeeper_02/datadataLogDir=/root/zookeeper/zookeeper_02/logsclientPort=2182server.1=127.0.0.1:2888:3888server.2=127.0.0.1:2889:3889server.3=127.0.0.1:2890:3890

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

tickTime=2000initLimit=10syncLimit=5dataDir=/root/zookeeper/zookeeper_03/datadataLogDir=/root/zookeeper/zookeeper_03/logsclientPort=2183server.1=127.0.0.1:2888:3888server.2=127.0.0.1:2889:3889server.3=127.0.0.1:2890:3890

启动

进入zookeeper的bin目录,启动

./zkServer.sh start

三个节点顺次启动。

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


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