Zookeeper安装与集群搭建指南

通俗介绍Zookeeper

Zookeeper 可以理解为一个分布式系统的“协调员”,专门解决分布式系统中多个节点协同工作的问题。比如:

  • 配置管理:像公告板一样,让所有节点都能实时读取最新配置。
  • 分布式锁:防止多个节点同时操作同一资源,避免混乱。
  • 服务注册与发现:帮助节点找到彼此,比如微服务中自动发现可用的服务地址。
  • 选主(Leader选举):在集群中自动选一个“老大”,避免群龙无首。

它通过简单的目录树结构(类似文件系统)存储数据,并确保所有节点的数据一致,即使部分节点故障也能继续工作。


三台虚拟机安装Zookeeper集群(步骤详解)

环境准备

  • 三台虚拟机:IP 假设为 192.168.1.101192.168.1.102192.168.1.103
  • 确保互通:关闭防火墙或开放端口 2181(客户端通信)、2888(数据同步)、3888(选举通信)。
  • 安装Java:所有机器安装JDK 8+(Zookeeper依赖Java)。

安装步骤(每台机器执行)

1. 下载并解压Zookeeper
1
2
3
4
5
6
7
8
9
# 进入安装目录(例如/opt)
cd /opt

# 下载(以3.7.1版本为例)
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz

# 解压
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz
mv apache-zookeeper-3.7.1-bin zookeeper
2. 创建数据目录
1
mkdir -p /opt/zookeeper/data
3. 配置文件 zoo.cfg
1
2
3
cd /opt/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

修改以下内容

1
2
3
4
5
6
7
dataDir=/opt/zookeeper/data  # 数据目录
clientPort=2181 # 客户端连接端口

# 集群配置(三台机器配置相同)
server.1=192.168.1.101:2888:3888
server.2=192.168.1.102:2888:3888
server.3=192.168.1.103:2888:3888
4. 创建 myid 文件(每台机器不同)
  • 192.168.1.101
    1
    echo "1" > /opt/zookeeper/data/myid
  • 192.168.1.102
    1
    echo "2" > /opt/zookeeper/data/myid
  • 192.168.1.103
    1
    echo "3" > /opt/zookeeper/data/myid
5. 启动Zookeeper服务
1
2
3
4
5
6
7
8
# 进入Zookeeper的bin目录
cd /opt/zookeeper/bin

# 启动服务
./zkServer.sh start

# 查看状态(正常会显示Mode: leader或follower)
./zkServer.sh status

验证集群

  • 在三台机器上分别执行 ./zkServer.sh status,正常情况下:
    • 一台显示 Mode: leader(主节点)。
    • 另外两台显示 Mode: follower(从节点)。
  • 若状态异常,检查日志 /opt/zookeeper/logs/zookeeper.out

常见问题

  1. 节点无法启动
    • 版本过高,与jiava版本不兼容。
    • 检查 myid 是否与 zoo.cfg 中的 server.x 匹配。
    • 确认端口 2181,2888,3888 是否开放。
  2. 集群不选举
    • 确保机器时间同步(使用 ntpdate 同步时间)。
    • 检查防火墙或网络是否阻断通信。

通过以上步骤,一个Zookeeper集群就搭建完成了!它将成为你分布式系统的可靠“协调员”。

[up主专用,视频内嵌代码贴在这]