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即可。

相关推荐
CodeGL11 小时前
开源的分布式任务调度平台:XXL-Job
分布式·开源
时间售卖铺18 小时前
Docker实战:一键部署轻量级容器
运维·docker·云原生
艾伦_耶格宇20 小时前
【kubernetes - 1.28版本】-10 K8S命名空间
云原生·容器·kubernetes
一条泥憨鱼20 小时前
【Kafka】零基础学习教程
java·分布式·学习·kafka
贾伟康1 天前
【共创稿事节】HarmonyOS 7.0 HiTraceChain分布式调用链:从接入到生产验证
分布式·harmonyos·可观测性·调用链·hitracechain
草莓熊Lotso1 天前
【C++ 基于微服务的即时通讯系统】网关基建:cpp-httplib 与 WebSocketpp 从入门到实战
linux·开发语言·数据库·c++·redis·微服务·云原生
时间售卖铺1 天前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
云-缩影2 天前
拆解函数计算 Serverless GPU 部署 AI 模型:Flux 生图和语音复刻怎么跑的
人工智能·云原生·serverless
螺蛳粉 螺蛳粉2 天前
第 02 篇:镜像分层与 containerd 2.x 实战:SystemdCgroup 与 pause 镜像配置踩坑(底座认知 02)
docker·云原生·容器·kubernetes·etcd·containerd·kube-apiserver
技术党2 天前
大模型训练平台推荐问答:九章云极的DCU计费、全栈Serverless和Token交付分别适合谁
云原生·serverless