Skip to content

zookeeper 本地测试部署

Published: at 16:21

zookeeper 单机部署

采用 docker 的部署方式

参考文章:
docker 应用 —— docker安装zookeeper单机版_中流石-CSDN博客
使用 Docker 一步搞定 ZooKeeper 集群的搭建_后台开发 - SegmentFault 思否

基本命令:

Terminal window
docker run -d -p 3181:2181 --name=zookeeper --privileged zookeeper

这里对外暴露的端口是 3181. why?

看这里 -> docker: Error response from daemon: Ports are not available

进入容器进行测试

docker exec -it zookeeper /bin/bash

zookeeper 的服务端已经自动运行。

通过 ./bin/zkCli.sh 启动zookeeper 客户端,输入 ls / 可以查看节点,如果有节点输出,说明服务运行成功。

在此界面输入 help 可以查看客户端命令

zookeeper 可视化界面

此项目提供了 zookeeper 可视化界面,
elkozmon/zoonavigator: Web-based ZooKeeper UI / editor / browser
Welcome — ZooNavigator Docs

这也是一个 docker 镜像:elkozmon/zoonavigator

文档给的启动方式是这样:

Terminal window
docker run \
-d --network host \
-e HTTP_PORT=9000 \
--name zoonavigator \
--restart unless-stopped \
elkozmon/zoonavigator:latest

但在我这里,使用 host 运行之后,http://localhost:9000 无法访问到。

于是使用了普通模式启动,然后对外暴露 9000 端口。

这样就可以访问 http://localhost:9000 了。

docker run -d -p 9000:9000 -e HTTP_PORT=9000 --name zoonavigator --restart unless-stopped elkozmon/zoonavigator:latest

但这里需要注意的是,采用这种方式,将不能使用 127.0.0.1:2181 这样的本地 IP 来访问 zookeeper 的地址了(因为网络没有共享),需要使用本机的局域网地址进行访问。

使用 zoonavigator 时,zookeeper 的链接字符串就是 172.20.127.109:3181 而不是 127.0.0.1:3181

在本机环境中通过命令行访问 zookeeper

如果还是想使用命令行访问 zookeeper,但不想每次都进入容器中,可以先把 zookeeper 下载下来:

Apache Download Mirrors

解压之后,找到 bin 目录,在其中运行 zkCli.cmd / zkCli.sh 。这里需要显式指定服务器地址。

Terminal window
zkCli.cmd -server 127.0.0.1:3181

如此,也可以访问到 zookeeper 服务。

更多 zookeeper 文档,可以直接查看官方文档:

ZooKeeper: Started

ZooKeeper: ZooKeeper-cli

运行 zkCli.sh 需要在 mingw 环境下,也就是如 git 控制台下运行


原文链接: https://blog.jgrass.cc/posts/zookeeper-local-deploy/

本作品采用 「署名 4.0 国际」 许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。