ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)

本文详细介绍了ZooKeeper的单机和集群部署过程,包括下载安装、配置文件修改、启动服务端和客户端,以及集群环境的设置和服务器状态检查。重点讲解了分布式功能如分布式锁、配置管理和服务发现等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)

0. ZooKeeper简介

ZooKeeper是一个提供包括配置维护、域名服务、分布式同步、组服务等功能的集中式服务。主要功能如下:

  1. 分布式锁:Zookeeper可以帮助开发人员实现分布式锁,用于控制多个节点的并发访问。通过Zookeeper的原子广播和顺序一致性特性,可以实现高效且可靠的分布式锁。

  2. 配置管理:在分布式系统中,节点的配置信息可能需要动态地更改和共享。Zookeeper提供了一个简单而可靠的方式来实现配置的管理,开发人员可以将配置信息存储在Znode中,当配置发生变化时,Zookeeper会及时通知相关的节点。

  3. 命名服务:分布式系统中的节点通常需要有一个唯一的标识符来进行识别。Zookeeper可以提供一个简单的命名服务,根据节点的名称和路径来唯一标识每个节点。

  4. 分布式队列:Zookeeper可以帮助实现分布式系统中的队列功能,多个节点可以通过Zookeeper来访问和操作一个队列。Zookeeper提供了有序的Znode树特性,可以确保队列中的元素按照先进先出的顺序进行处理。

  5. 服务发现:在分布式系统中,节点需要能够发现和连接到其他相关的服务。Zookeeper提供了服务注册和发现的功能,可以帮助节点快速地发现和连接到其他需要的服务。

详细介绍可前往ZooKeeper官网地址

1. 单机部署

1.1. ZooKeeper下载安装

官方推荐的稳定版本

在这里插入图片描述

(1)前往ZooKeeper官方下载地址选择稳定版本(官方文档中带有Release的版本号),如下图所示,博主选择版本3.7.2。

在这里插入图片描述

(2)选择二进制版本,即以-bin结尾的文件下载。

在这里插入图片描述

(3)下载完成后解压,并重命名文件夹为zk1。

在这里插入图片描述

1.2. 修改配置文件

(1)打开终端,进入conf目录,将zoo_sample.cfg 复制一份并重命名为zoo.cfg。

在这里插入图片描述

(2)输入 vim zoo.cfg 编辑zoo.cfg配置文件,修改数据和日志存放目录。

在这里插入图片描述

1.3. 启动服务端

进入bin目录,输入./zkServer.sh start启动服务端。最后显示Starting zookeeper ... STARTED表示启动成功。

在这里插入图片描述

1.4. 启动客户端

还是在bin目录下,输入./zkCli.sh 启动客户端。最后显示[zk: localhost:2181(CONNECTED) 0] 表示启动成功

在这里插入图片描述

至此单机部署已完成。

2. 集群部署

本次案例在同一台机器上部署,没有使用虚拟机或多台服务器。

2.1. 集群准备

(1)首先将上一节单机部署的zk1文件夹复制两份,分别命名为zk2,zk3。

在这里插入图片描述

(2)修改每个文件夹(zk实例)

配置参数解读:

  • server.A=B:C:D

    • A: 是一个数字,表示这个是第几号服务器。集群模式下配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面有一个数据 就是 A 的值,Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是哪个 server。

    • B 是这个服务器的地址(ip或者主机名)。

    • C 是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口。

    • D 是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

zk1

(1)进入conf目录,编辑zoo.cfg文件

在这里插入图片描述

tickTime=2000
initLimit=10
syncLimit=5
# 数据文件存放路径
dataDir=../data
# 日志文件存放路径
dataLogDir=../logs
# 客户端连接端口
clientPort=2181
# zookeeper服务器端口号
admin.serverPort=2111
# 服务器列表,详细配置看《配置参数解读》
# 注意由于此处是在同一台机器上配置所有ip都一样,此时后面的端口不要重复了
server.01=127.0.0.1:2341:2351
server.02=127.0.0.1:2342:2352
server.03=127.0.0.1:2343:2353
# 如果部署在不同服务器,参照下方配置
# server.服务器myid=服务器的ip地址或者主机名:主从交流端口:选举端口

(2)进入dataDir所指定的目录,下创建文件myid,并输入01。

在这里插入图片描述

myid文件内容。

在这里插入图片描述

zk2

(1)进入conf目录,编辑zoo.cfg文件(与zk1类似)。注意clientPortadmin.serverPort修改了,同一台服务器端口不要重复。

在这里插入图片描述

tickTime=2000
initLimit=10
syncLimit=5

# 数据文件存放路径
dataDir=../data
# 日志文件存放路径
dataLogDir=../logs

# 客户端连接端口
clientPort=2182
# zookeeper服务器端口号
admin.serverPort=2112

# 服务器列表,详细配置看《配置参数解读》
# 注意由于此处是在同一台机器上配置所有ip都一样,此时后面的端口不要重复了
server.01=127.0.0.1:2341:2351
server.02=127.0.0.1:2342:2352
server.03=127.0.0.1:2343:2353
# 如果部署在不同服务器,参照下方配置
# server.服务器myid=服务器的ip地址或者主机名:主从交流端口:选举端口

(2)进入dataDir所指定的目录,下创建文件myid,并输入02。

在这里插入图片描述

zk3

(1)进入conf目录,编辑zoo.cfg文件(与zk1类似)。注意clientPortadmin.serverPort修改了,同一台服务器端口不要重复。

在这里插入图片描述

tickTime=2000
initLimit=10
syncLimit=5

# 数据文件存放路径
dataDir=../data
# 日志文件存放路径
dataLogDir=../logs

# 客户端连接端口
clientPort=2183
# zookeeper服务器端口号
admin.serverPort=2113

# 服务器列表,详细配置看《配置参数解读》
# 注意由于此处是在同一台机器上配置所有ip都一样,此时后面的端口不要重复了
server.01=127.0.0.1:2341:2351
server.02=127.0.0.1:2342:2352
server.03=127.0.0.1:2343:2353
# 如果部署在不同服务器,参照下方配置
# server.服务器myid=服务器的ip地址或者主机名:主从交流端口:选举端口                                                                   

(2)进入dataDir所指定的目录,下创建文件myid,并输入03。

在这里插入图片描述

2.2. 启动集群服务器

(1)启动zk1

在这里插入图片描述

(2)启动zk2
在这里插入图片描述

(3)启动zk3

在这里插入图片描述

2.3. 查看服务器状态

(1)zk1 -> follower
在这里插入图片描述

(2)zk2 -> leader

在这里插入图片描述

(3)zk3 -> follower

在这里插入图片描述

至此集群部署完成。

3. 总结

本篇文章旨在教会读者学会部署ZooKeeper,未涉及有关理论和使用的知识。后续将会基于本章部署好的ZooKeeper进行有关各项功能教学。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值