Zookeeper 集群搭建步骤
ZooKeeper 能够以单机模式安装运行,但通常使用的是分布式 ZooKeeper 集群(一个Leader,多个Follower)。基于一定的策略来保证 ZooKeeper 集群的稳定性和可用性,从而实现分布式应用的可靠性。
我们将介绍以 3 台 zookeeper 服务端集群搭建步骤。
所需准备工作,创建三台虚拟机环境并安装好 java 开发工具包 JDK,可以使用 VM 或者 vagrant+virtualbox 搭建 centos/ubuntu 环境,本案例基于宿主机 windows10 系统同时使用 vagrant+virtualbox 搭建的 centos7 环境,如果直接使用云服务器或者物理机同理。
步骤一:准备三台 zookeeper 环境和并按照上一教程下载 zookeeper 压缩包,三台集群 centos 环境如下:
机器一:192.168.3.33
机器二:192.168.3.35
机器三:192.168.3.37
提示: 查看 ip 地址可以用 ifconfig 命令。
步骤二:别修改 zoo.cfg 配置信息
zookeeper 的三个端口作用
- 1、2181 : 对 client 端提供服务
- 2、2888 : 集群内机器通信使用
- 3、3888 : 选举 leader 使用
按 server.id = ip:port:port 修改集群配置文件:
三台虚拟机 zoo.cfg 文件末尾添加配置:
server.1=192.168.3.33:2888:3888 server.2=192.168.3.35:2888:3888 server.3=192.168.3.37:2888:3888
根据 id 和对应的地址分别配置 myid
vim /tmp/zookeeper/myid
本案例配置完成后查询显示如下:
IP 192.168.3.33 机器配置 myid,因为这台机器上个教程单机启动过,所以出现 version-2,没有也没关系。
IP 192.168.3.35 机器配置 myid
IP192.168.3.37 机器配置 myid步骤三:启动集群
启动前需要关闭防火墙(生产环境需要打开对应端口)
systemctl stop firewalld
启动 192.168.3.33 并查看日志,此时日志出现报错是正常现象,因为另外两台还没启动,暂时连接不上。
另两台分别启动后,查看三台机器状态:
IP 192.168.3.33
IP 192.168.3.35
IP 192.168.3.37
最后显示集群搭建成功!Mode:leader 代表主节点,follower 代表从节点,一主二从。
本教程使用的 IDE 为 IntelliJ IDEA,创建一个 maven 工程,命名为 zookeeper-demo,并且引入如下依赖,可以自行在 maven 中央仓库选择合适的版本,介绍原生 API 和 Curator 两种方式。一、客户端的 zookeeper 原生 API:使用 zookeeper 原生 API。