[笔记] zookeeper 本地测试部署
zookeeper 单机部署
采用 docker 的部署方式
参考文章:
docker 应用 —— docker安装zookeeper单机版_中流石-CSDN博客
使用 Docker 一步搞定 ZooKeeper 集群的搭建_后台开发 - SegmentFault 思否
基本命令:
docker run -d -p 3181:2181 --name=zookeeper --privileged zookeeper
这里对外暴露的端口是 3181. why?
看这里 -> docker: Error response from daemon: Ports are not available - J.晒太阳的猫 - 博客园
进入容器进行测试
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
文档给的启动方式是这样:
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 下载下来:
解压之后,找到 bin 目录,在其中运行 zkCli.cmd / zkCli.sh 。这里需要显式指定服务器地址。
zkCli.cmd -server 127.0.0.1:3181
如此,也可以访问到 zookeeper 服务。
更多 zookeeper 文档,可以直接查看官方文档:
ZooKeeper: Started
ZooKeeper: ZooKeeper-cli