Zookeeper(一)搭建单体和集群服务以及Zookeeper客户端

目录

1.Zookeeper简介

2.Zookeeper下载

3.Zookeeper部署

[3.1 单体部署](#3.1 单体部署)

[3.2 集群部署](#3.2 集群部署)

4.zookeeper客户端

[4.1 ZooInspector客户端](#4.1 ZooInspector客户端)

[4.2 zkui客户端](#4.2 zkui客户端)


1.Zookeeper简介

Zookeeper是Apache Hadoop的子项目,是一个树形的目录服务,支持变更推送,适合作为Dubbo服务的注册中心。

2.Zookeeper下载

Apache Download MirrorsHome page of The Apache Software Foundationhttps://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.8.6/apache-zookeeper-3.8.6-bin.tar.gz

3.Zookeeper部署

3.1 单体部署

将下载的zookeeper包,上传到服务器,解压,直接启动会报错,因为缺少zookeeper配置文件

进入zookeeper的conf目录,将zoo_sample.cfg复制一个名字为zoo.cfg的配置文件

启动zookeeper,查看zookeeper状态,可以看到运行是stadalone

复制代码
./zkServer.sh start

停止zookeeper

复制代码
./zkServer.sh stop

3.2 集群部署

1.将下载的zookeeper上传到服务器

2.将zookeeper压缩包,解压,并且zookeeper报名重名为zookeeper01、zookeeper02、zookeeper03

3.为每一个zookeeper创建一个data目录

复制代码
mkdir zookeeper01/data
mkdir zookeeper02/data
mkdir zookeeper03/data

4.在data目录中给每个zookeeper创建一个myid文件,并且在myid文件中指定zookeeper的id

复制代码
echo 1 >> zookeeper01/data/myid
echo 2 >> zookeeper02/data/myid
echo 3 >> zookeeper03/data/myid

5.在每个zookeeper的conf中创建zookeeper配置文件zoo.cfg,通过zookeeper的示例配置文件zoo_sample.cfg复制出来一个名字为zoo.cfg文件即可,其他配置文件名字不起作用默认zoo.cfg配置文件名。

复制代码
cp zoo_sample.cfg zoo.cfg

6.编辑zoo.cfg配置文件

修改zookeeper客户端端口,zookeeper对外提供服务的端口。在一台服务器上面部署在3个zookeeper需要修改端口,如果在3台服务器上面部署3个zookeeper应用可以修改客户端端口因为ip不同。

复制代码
clientPort=2181
clientPort=2182
clientPort=2183

修改数据目录路径

复制代码
dataDir=/usr/local/zookeeper/cluster/zookeeper01/data
dataDir=/usr/local/zookeeper/cluster/zookeeper02/data
dataDir=/usr/local/zookeeper/cluster/zookeeper03/data

在每一个zookeeper配置文件中添加集群中每一个zookeeper节点信息

复制代码
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883

server.id=127.0.0.1:2881:3881

id:myid文件里面配置的zookeeper的id;

127.0.0.1:zookeeper服务所在服务器地址;

2881:客户端端口,服务器与集群的Leader服务器交换信息的端口;

3881:投票端口,选举时服务器相互通信的端口;

为什么会有投票端口呢?

1.因为三台Zookeeper要构成集群,决定谁是leader,Zookeeper中是通过投票机制决定谁是leader。

2.如果有节点产生宕机,也需要通过投票机制将宕机节点从集群中剔除。

7.启动zookeeper集群

复制代码
./zkServer.sh start 启动
./zkServer.sh stop	停止
./zkServer.sh restart 重启
./zkServer.sh status 查询状态

leader节点:

从节点:

4.zookeeper客户端

4.1 ZooInspector客户端

ZooInspector下载地址https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zipCSDN下载地址:

ZooInspector下载地址https://download.csdn.net/download/m0_48983233/93151031解压ZooInspector进入build目录启动zookeeper-dev-ZooInspector.jar

4.2 zkui客户端

CSDN下载地址:

zkui下载地址https://download.csdn.net/download/m0_48983233/93151030windows启动,修改zkui.bat启动文件

修改zkui的配置文件,如果是单节点直接配置zookeeper信息即可,集群需要把zookeeper节点信息逗号分开

复制代码
zkServer=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

默认用户信息设置admin和appconfig

复制代码
userSet = {"users": [{ "username":"admin" , "password":"admin","role": "ADMIN" },{ "username":"appconfig" , "password":"appconfig","role": "USER" }]}

启动zkui,直接执行zkui.bat文件即可。

访问zkuil页面:

问题1:查看monitor有下图提示信息

需要在zookeeper的配置文件zoo.cfg里面添加如下配置即可:

复制代码
4lw.commands.whitelist=*

问题2:点击zkui的History显示Erro,这个报错只需要创建以下节点/appconfig/hosts即可。

相关推荐
前端Baymax3 小时前
K8s PodCrashLoopBackOff假阳性排查
云原生·容器·kubernetes
guslegend4 小时前
领域驱动设计,微服务设计为什么要选择DDD?
微服务·云原生·架构
AOwhisky6 小时前
云原生 DevOps 工具链从入门到实战(第一期)——DevOps概述与GitLab部署——从理念到工具落地
运维·ci/cd·云原生·gitlab·开发·devops
BIGmustang6 小时前
ACK的集群日志接入及ARMS的应用性能监控及主机监控(云监控)
阿里云·云原生
VortMall7 小时前
全维度打磨细节体验,赋能商城稳定有序运营|VortMall 微服务商城 v1.3.11 版本发布
java·微服务·云原生·架构·商城系统·开源商城·vortmall
MicrosoftReactor7 小时前
技术速递|智能体测试智能体:基于 Foundry Hosted Agents 构建云原生 Skill-Eval Harness
ai·云原生·agent·ai-agent·skill
阿标在干嘛15 小时前
从物理机到K8s:政策快报平台的容器化部署实践
云原生·容器·kubernetes
张青贤17 小时前
Centos7离线部署K8s集群V1.28.8
云原生·容器·kubernetes·containerd·kubekey·离线部署
阿里云云原生19 小时前
2026 GOAI 世界人工智能开源大赛「Agent Infra 新智基座」赛道正式启动
云原生
探索云原生1 天前
Kubernetes 官方出品:一个 Controller 搞定 Job 排队和资源配额
ai·云原生·kubernetes·scheduler