ZooKeeper集群安装配置

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: ZooKeeper是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper通过其简单的架构和API解决了这个问题。 ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。

ZooKeeper是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper通过其简单的架构和API解决了这个问题。 ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。

ZooKeeper本身可以以单节点状态安装运行(ZooKeeper单机版安装配置可参考http://blog.whsir.com/post-3547.html),更多的情况下我们是通过分布式ZooKeeper集群,保证ZooKeeper的稳定性和可用性,从而实现分布式应用的可靠性。

ZooKeeper集群中主要有leader和follower两个角色。leader负责投票的发起和决议,更新系统状态;leader用于接受客户端请求并向客户端返回结果,在选主过程中参与投票。

一个ZooKeeper集群最好部署奇数个节点,即3、5、7,因为ZooKeeper集群是以宕机个数过半才会让整个集群宕机,所以部署ZooKeeper集群的时候最好是奇数。

 

zookeeper集群的部署实例:

当前使用三台机器进行演示,三台机器我都默认关闭了防火墙和selinux(如有需要自行设置端口,这里为了方便演示)

当前三台主机系统均为centos7.6,我这里三台机器提供的ip为

192.168.1.135
192.168.1.142
192.168.1.155

通过官网下载jdk8

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

将下载好的jdk8分别上传到三台主机上

因为我这里是测试环境,dataDir默认路径是/tmp/zookeeper,生产环境的话根据情况进行修改对应目录

myid根据server.1、server.2、server.3里设置的服务器IP对应,即server.2=192.168.1.142:2101的myid就是2

一、192.168.1.135配置

1、安装jdk8和zookeeper包

yum install jdk-8u192-linux-x64.rpm
wget -P /usr/local/src/ http://apache.fayea.com/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
tar xf /usr/local/src/zookeeper-3.4.13.tar.gz -C /usr/local/
ln -sv /usr/local/zookeeper-3.4.13/ /usr/local/zookeeper
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg

2、编辑zoo.cfg配置文件
vi zoo.cfg

配置文件内容如下
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/logs
clientPort=2181
server.1=192.168.1.135:2101:2102
server.2=192.168.1.142:2101:2102
server.3=192.168.1.155:2101:2102

3、创建所需目录及设置myid
mkdir -p /tmp/zookeeper/{data,logs}
echo 1 > /tmp/zookeeper/data/myid

二、192.168.1.142配置

1、安装jdk8和zookeeper包

yum install jdk-8u192-linux-x64.rpm
wget -P /usr/local/src/ http://apache.fayea.com/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
tar xf /usr/local/src/zookeeper-3.4.13.tar.gz -C /usr/local/
ln -sv /usr/local/zookeeper-3.4.13/ /usr/local/zookeeper
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg

2、编辑zoo.cfg配置文件
vi zoo.cfg

配置文件内容如下
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/logs
clientPort=2181
server.1=192.168.1.135:2101:2102
server.2=192.168.1.142:2101:2102
server.3=192.168.1.155:2101:2102

3、创建所需目录及设置myid
mkdir -p /tmp/zookeeper/{data,logs}
echo 2 > /tmp/zookeeper/data/myid

三、192.168.1.155配置

1、安装jdk8和zookeeper包

yum install jdk-8u192-linux-x64.rpm
wget -P /usr/local/src/ http://apache.fayea.com/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
tar xf /usr/local/src/zookeeper-3.4.13.tar.gz -C /usr/local/
ln -sv /usr/local/zookeeper-3.4.13/ /usr/local/zookeeper
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg

2、编辑zoo.cfg配置文件
vi zoo.cfg

配置文件内容如下
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/logs
clientPort=2181
server.1=192.168.1.135:2101:2102
server.2=192.168.1.142:2101:2102
server.3=192.168.1.155:2101:2102

3、创建所需目录及设置myid
mkdir -p /tmp/zookeeper/{data,logs}
echo 3 > /tmp/zookeeper/data/myid

四、启动查看

最后三台机器分别启动服务

/usr/local/zookeeper/bin/zkServer.sh start

分别查看三台机器状态
/usr/local/zookeeper/bin/zkServer.sh status

可以看到三台机器会有两个follower和一个leader

 

附:

zookeeper启动服务脚本可以参考单机版配置http://blog.whsir.com/post-3547.html

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
4天前
|
存储 Java 网络安全
ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
【4月更文挑战第10天】ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
12 1
|
25天前
|
算法 Java Linux
zookeeper单机伪集群集群部署
zookeeper单机伪集群集群部署
85 0
|
1月前
|
消息中间件 存储 Kafka
Kafka【环境搭建 02】kafka_2.11-2.4.1 基于 zookeeper 搭建高可用伪集群(一台服务器实现三个节点的 Kafka 集群)
【2月更文挑战第19天】Kafka【环境搭建 02】kafka_2.11-2.4.1 基于 zookeeper 搭建高可用伪集群(一台服务器实现三个节点的 Kafka 集群)
140 1
|
2月前
|
网络协议 中间件 数据库
Zookeeper学习系列【三】Zookeeper 集群架构、读写机制以及一致性原理(ZAB协议)
Zookeeper学习系列【三】Zookeeper 集群架构、读写机制以及一致性原理(ZAB协议)
94 0
|
2月前
|
网络协议
Zookeeper学习系列【二】Zookeeper 集群章节之集群搭建
Zookeeper学习系列【二】Zookeeper 集群章节之集群搭建
34 0
|
3月前
|
Java
搭建Zookeeper集群的搭建
搭建Zookeeper集群的搭建
34 1
|
3月前
|
安全 Java API
Zookeeper(持续更新) VIP-02 Zookeeper客户端使用与集群特性
2,/usr/local/data/zookeeper-3,/usr/local/data/zookeeper-4,在每个目录中创建文件。创建四个文件夹/usr/local/data/zookeeper-1,/usr/local/data/zookeeper-Follower:只能处理读请求,同时作为 Leader的候选节点,即如果Leader宕机,Follower节点。己对外提供服务的起始状态。E: 角色, 默认是 participant,即参与过半机制的角色,选举,事务请求过半提交,还有一个是。
|
3月前
|
缓存 Java API
Zookeeper(持续更新) VIP-02 Zookeeper客户端使用与集群特性
Curator 是一套由netflix 公司开源的,Java 语言编程的 ZooKeeper 客户端框架,Curator项目是现在ZooKeeper 客户端中使用最多,对ZooKeeper 版本支持最好的第三方客户端,并推荐使用,Curator 把我们平时常用的很多 ZooKeeper 服务开发功能做了封装,例如 Leader 选举、分布式计数器、分布式锁。这就减少了技术人员在使用 ZooKeeper 时的大部分底层细节开发工作。
|
4月前
|
存储 Java 网络安全
ZooKeeper【部署 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
ZooKeeper【部署 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
50 0
|
4月前
|
存储 Java 网络安全
ZooKeeper【部署 02】apache-zookeeper-3.6.0 集群版(准备+安装配置+启动验证)
ZooKeeper【部署 02】apache-zookeeper-3.6.0 集群版(准备+安装配置+启动验证)
44 0