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

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

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进行有关各项功能教学。

  • 25
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
下面是在Docker Swarm集群部署Zookeeper集群详细步骤: 1. 准备Docker环境:需要在每个节点上安装Docker,并且启动Docker服务。 2. 初始化Swarm:选择一个节点作为管理节点,并在该节点上执行`docker swarm init`命令来初始化Swarm集群。 3. 加入节点:在其他节点上执行`docker swarm join`命令,将其加入Swarm集群。 4. 创建Zookeeper镜像:可以使用官方提供的Zookeeper镜像,使用Dockerfile自己构建也可以。 5. 创建Zookeeper配置文件:在Swarm集群管理节点上创建一个zookeeper配置文件,例如`zoo.cfg`,并设置Zookeeper集群的相关配置。 6. 创建Zookeeper服务:使用`docker service create`命令创建Zookeeper服务,并指定需要运行的镜像、端口等参数,同时将上一步创建的配置文件挂载到容器中。 ``` docker service create \ --name zookeeper \ --replicas 3 \ --mount type=bind,source=/path/to/zoo.cfg,target=/conf/zoo.cfg \ --publish 2181:2181 \ --network my-network \ zookeeper:latest ``` 其中,`--replicas`参数指定了需要运行的Zookeeper实例数,`--mount`参数指定了将配置文件挂载到容器中,`--publish`参数指定了需要暴露的端口,`--network`参数指定了使用的网络。 7. 验证Zookeeper集群:使用Zookeeper客户端工具连接到Zookeeper服务,验证集群是否正常工作。 ``` docker run --rm -it --network my-network zookeeper:latest zkCli.sh -server zookeeper:2181 ``` 以上就是在Docker Swarm集群部署Zookeeper集群详细步骤。通过Docker Swarm进行集群部署,可以方便地扩展和管理Zookeeper服务,以及提高服务的可靠性和稳定性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值