ReturnTmp's Blog ReturnTmp's Blog
首页
基础课程
编程语言
框架技术
运维笔记
人工智能
随笔摘录
  • 友链
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

ReturnTmp

分享有趣好玩的计算机知识
首页
基础课程
编程语言
框架技术
运维笔记
人工智能
随笔摘录
  • 友链
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Jenkins | VuePress博客自动化部署
  • 三步教你轻松安装配置 Linux Anaconda 环境
  • Windows SSH 远程连接 Linux
  • VuePress 数学公式支持
  • 一文教你如何防御数据库渗透入侵
  • WSL2 Ubuntu20.04 配置 CUDA
  • 前端开发部署运维笔记
  • 运维监控指南
  • 如何使用『Nginx』配置后端『HTTPS』协议访问
  • 华为云云耀云服务器L实例评测|搭建您的私人影院网站
  • 华为云云耀云服务器L实例评测|服务器反挖矿防护指南
  • 华为云云耀云服务器L实例评测|Git 私服搭建指南
  • VSCode『SSH』连接服务器『GUI界面』传输
  • 『硅云』海外云服务器购买指南
  • GitHub Unfork 指南
  • 摆脱推荐算法,实现万物皆可『RSS』
  • Drone 指南
  • 教你如何『SSH』远程连接『内网』服务器
  • 『GitHub Actions』静态博客部署指南
  • Nginx 配置路径解析
  • 『pnpm』多项目环境迁移指南
  • Nginx 403 forbidden 问题
  • 你知道『SSH』为什么安全吗
  • 手把手教你如何给『Linux』打补丁
  • KVM Anolis OS 环境搭建
  • Docker 快速搭建 MySQL 高可用集群
  • RabbitMQ 入门指南(安装,配置,应用)
  • linux JDK8 环境配置
  • 发布策略
  • Spring Cloud Gateway + Nacos 灰度发布
  • Nginx 负载均衡集群 节点健康检查
  • 前端监控搭建
  • 运维监控系统
  • MySQL 可视化监控
  • MySQL 死锁问题排查与解决
  • Zookeeper Windows 安装配置(单机 - 集群)
    • 官网下载
    • 更改配置
    • 启动服务端
    • 启动客户端
    • 注意问题
    • 集群配置
      • 配置 zoo.cfg
      • 创建 myid
      • 启动集群
    • 节点可视化
    • 参考链接
  • 阿里云服务器镜像迁移
  • git clone 失败问题
  • Couldn't find ffmpeg or avconv 问题
  • 运维笔记
ReturnTmp
2024-03-17
目录

Zookeeper Windows 安装配置(单机 - 集群)

# 官网下载

官网地址:Apache ZooKeeper (opens new window)

image.png

选择当前稳定版本下载,我们可以看到有如下两个选项

Apache ZooKeeper 3.8.4 (asc, sha 512):不带源码

Apache ZooKeeper 3.8.4 Source Release (asc, sha 512):带源码的安装包,对源码感兴趣的可以下载此版本

image.png

本次我们选择不含源码版本,之后解压压缩包即可

# 更改配置

进入到解压后的安装目录下,新增两个文件夹,一个命名为 data ,一个命名为 log

找到解压目录下的 conf 目录,将目录中的 zoo_sample.cfg 文件,复制一份,重命名为 zoo.cfg

修改 zoo.cfg 配置文件,将默认的 dataDir=/tmp/zookeeper 修改成 zookeeper 安装目录所在的 data 文件夹,修改如下

# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=E:\\Zookeeper\\apache-zookeeper-3.8.4-bin\\data
dataLogDir=E:\\Zookeeper\\apache-zookeeper-3.8.4-bin\\log
1
2
3
4
5

# 启动服务端

进入安装目录下的 bin 目录,双击 zkServer.cmd 启动

image.png

# 启动客户端

双击 zkCli.cmd 启动

image.png

启动之后可以看到 data 和 log 文件夹下均生成了 version-2 文件夹,即可启动成功

# 注意问题

zk 启动会占用 8080 端口,如果其他项目占用该端口则会启动失败,建议添加配置 admin.serverPort=端口号,以此修改端口

遇到闪退问题可能是 data 路径配置错误,或是没有配置好 JDK 环境和 java 环境变量

# 集群配置

上述为单机启动,也可以设置集群启动,这里条件有限使用的是伪集群

我们将上述安装目录复制三份,如下

image.png

# 配置 zoo.cfg

然后分别配置三个 zk 的 zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5

dataDir=E:\\Zookeeper\\apache-zookeeper-3.8.4-bin-1\\data
dataLogDir=E:\\Zookeeper\\apache-zookeeper-3.8.4-bin-1\\log

clientPort=2181

server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
1
2
3
4
5
6
7
8
9
10
11
12
tickTime=2000
initLimit=10
syncLimit=5

dataDir=E:\\Zookeeper\\apache-zookeeper-3.8.4-bin-2\\data
dataLogDir=E:\\Zookeeper\\apache-zookeeper-3.8.4-bin-2\\log

clientPort=2182

server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
1
2
3
4
5
6
7
8
9
10
11
12
tickTime=2000
initLimit=10
syncLimit=5

dataDir=E:\\Zookeeper\\apache-zookeeper-3.8.4-bin-3\\data
dataLogDir=E:\\Zookeeper\\apache-zookeeper-3.8.4-bin-3\\log

clientPort=2183

server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
1
2
3
4
5
6
7
8
9
10
11
12

关于 zoo.cfg 的配置进行说明:

①  在集群模式下,集群中每台机器都需要感知到整个集群是由哪几台机器组成的,在配置文件中,可以按照这样的格式进行配置,每一行都代表一个机器配置:server.id=host:port:port。其中,id 被称为  Server ID,用来标识该机器在集群中的机器序列号。同时,在每台 Zookeeper 机器上,我们都需要在数据目录(即 dataDir 参数指定的那个目录)下创建一个 myid 文件,该文件只有一行内容,并且是一个数字,即对应于每台机器的 Server ID 数字。

第一个 port 用于指定 follower 与 leader 进行通信和数据同步所使用的 tcp 端口;第二个 port 指定 leader 选举中投票通信的 tcp 端口。

② 在 Zk 的设计中,集群中所有机器上的 zoo.cfg 文件的内容都应该是一致的。因此最好使用 svn 或是 git 把此文件管理起来,确保每个机器都能共享到一份相同的配置。

③ myid 文件中只有一个数字,即一个 Server ID。例如,server.1 的 myid 文件内容就是"1"。注意,清确保每个服务器的 myid 文件中的数字不同,并且和自己所在机器的 zoo.cfg 中 server.id=houst:port:port 的 id 一致。另外,id 的范围是 1~255。

④ 参数的作用说明:

  1. tickTime:默认值为 3000,单位是毫秒(ms),可以不配置。参数 tickTime 用于配置 Zookeeper 中最小时间单元的长度,很多运行时的时间间隔都是使用 tickTime 的倍数来表示的。例如,Zk 中会话的最小超时时间默认是 2*tickTime。

  2. dataDir:该参数无默认值,必须配置。参数 dataDir 用于配置 Zookeeper 服务器存储快照文件的目录。

  3. clientPort:参数 clientPort 用于配置当前服务器对外的服务端口,客户端会通过该端口和 Zk 服务器创建连接,一般设置为 2181。

  4. initLimit:该参数默认值:10,表示是参数 tickTime 值的 10 倍,必须配置,且为正整数。该参数用于配置 Leader 服务器等待 Follower 启动,并完成数据同步的时间。Follower 服务器在启动过程中,会与 Leader 建立连接并完成对数据的同步,从而确定自己对外提高服务的起始状态。leader 服务器允许 Follower 在 initLimit 时间内完成这个工作。

  5. syncLimit:该参数默认值:5,表示是参数 tickTime 值的 5 倍,必须配置,且为正整数。该参数用于配置 Leader 服务器和 Follower 之间进行心跳检测的最大延时时间。在 Zk 集群运行的过程中,Leader 服务器会与所有的 Follower 进行心跳检测来确定该服务器是否存活。如果 Leader 服务器在 syncLimit 时间内无法获取到 Follower 的心跳检测响应,那么 Leader 就会认为该 Follower 已经脱离了和自己的同步。

  6. server.id:该参数无默认值,在单机模式下可以不配置。该参数用于配置组成 Zk 集群的机器列表,其中 id 即为 Server ID,与每台服务器 myid 文件中的数字相对应。同时,在该参数中,会配置两个端口:第一个端口用于指定 Follower 服务器与 Leader 进行运行时通信和数据同步时所使用的端口,第二个端口测专门用于进行 Leader 选举过程中的投票通信。

# 创建 myid

分别在三个 zk 安装目录下的 data 目录下创建 myid 文件,然后在该文件第一行填上对应的数字

E:\\Zookeeper\\apache-zookeeper-3.8.4-bin-1\\data 创建值为"1"的myid文件
E:\\Zookeeper\\apache-zookeeper-3.8.4-bin-2\\data 创建值为"2"的myid文件
E:\\Zookeeper\\apache-zookeeper-3.8.4-bin-3\\data 创建值为"3"的myid文件
1
2
3

# 启动集群

分别启动三个 zk 的 zkServer.cmd(未全部启动会出现报错,原因是心跳检测失败,全部启动即可)

方便起见也可以使用如下 bat 脚本启动全部节点

start call E:\\Zookeeper\\apache-zookeeper-3.8.4-bin-1\\bin\\zkServer.cmd
start call E:\\Zookeeper\\apache-zookeeper-3.8.4-bin-2\\bin\\zkServer.cmd
start call E:\\Zookeeper\\apache-zookeeper-3.8.4-bin-3\\bin\\zkServer.cmd
1
2
3

客户端连接测试

zkCli.cmd -server 127.0.0.1:2181
# 当然连接 2182,2183 也可以
1
2

# 节点可视化

查看 zookeeper 上的节点信息时,输命令很麻烦,可以使用常用的可视化的客户端 zooinspector

zooinspector 仓库:zzhang5/zooinspector: An improved zookeeper inspector (github.com) (opens new window)

# 参考链接

  • Windows 下 Zookeeper 安装使用 - 简书 (jianshu.com) (opens new window)
  • Windows 安装 Zookeeper 详细步骤_windows 安装 zookeeper (opens new window)
  • Windows 下安装 ZooKeeper-阿里云开发者社区 (aliyun.com) (opens new window)
  • Windows 安装 Zookeeper - codedot - 博客园 (cnblogs.com) (opens new window)
编辑 (opens new window)
上次更新: 2024/03/24, 08:31:38
MySQL 死锁问题排查与解决
阿里云服务器镜像迁移

← MySQL 死锁问题排查与解决 阿里云服务器镜像迁移→

最近更新
01
百度网盘加速
03-24
02
新版 PyCharm 设置 Conda 虚拟环境
03-24
03
腾讯云域名转到阿里云
03-24
更多文章>
Theme by Vdoing | Copyright © 2023-2024 ReturnTmp | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式