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

文章目录

  • ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)
    • 0. ZooKeeper简介
    • 1. 单机部署
      • 1.1. ZooKeeper下载安装
      • 1.2. 修改配置文件
      • 1.3. 启动服务端
      • 1.4. 启动客户端
    • 2. 集群部署
      • 2.1. 集群准备
        • zk1
        • zk2
        • zk3
      • 2.2. 启动集群服务器
      • 2.3. 查看服务器状态
    • 3. 总结

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下载安装

官方推荐的稳定版本

ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第1张图片

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

ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第2张图片

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

ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第3张图片

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

在这里插入图片描述

1.2. 修改配置文件

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

ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第4张图片

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

ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第5张图片

1.3. 启动服务端

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

ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第6张图片

1.4. 启动客户端

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

至此单机部署已完成。

2. 集群部署

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

2.1. 集群准备

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

ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第7张图片

(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文件

ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第8张图片

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。

ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第9张图片

myid文件内容。

ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第10张图片

zk2

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

ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第11张图片

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修改了,同一台服务器端口不要重复。

ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第12张图片

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

ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第13张图片

(2)启动zk2
ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第14张图片

(3)启动zk3

ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第15张图片

2.3. 查看服务器状态

(1)zk1 -> follower
ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第16张图片

(2)zk2 -> leader

ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第17张图片

(3)zk3 -> follower

ZooKeeper 实战(一) 超详细的单机与集群部署教程(MacOS)_第18张图片

至此集群部署完成。

3. 总结

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

你可能感兴趣的:(分布式实战,zookeeper,macos,分布式,经验分享,java-zookeeper,服务器)