参考资料

  1. spiped(Secure Pipe Daemon)是一个用于创建加密管道的工具
  2. Jetty 是一个轻量级的开源 Java Web 服务器和 Servlet 容器,由 Eclipse 基金会维护
  3. Docker Desktop的安装步骤
  4. Elasticsearch 是一个开源的分布式搜索和分析引擎
  5. Caddy 是一个现代化的、开源的 Web 服务器和反向代理工具
  6. Haskell是一种纯函数式编程语言
  7. Jitsi Meet 是一个开源的视频会议解决方案
  8. Navidrome 是一个开源的轻量级音乐流媒体服务器

ZooKeeper 简介

ZooKeeper 是一个开源的分布式协调服务,由 Apache 软件基金会维护。它主要用于管理分布式应用中的配置信息、命名服务、分布式同步和组服务等。

特点

  1. 高可用性:基于集群部署,支持故障恢复。

  2. 顺序一致性:客户端请求按顺序执行。

  3. 原子性:更新操作要么全部成功,要么全部失败。

  4. 高性能:适用于读多写少的场景。

  5. Watcher 机制:支持事件监听,数据变更时通知客户端。

最新更新内容及时间

  • 最新稳定版本:3.8.3(2023年12月发布)

    • 修复了若干 Bug,提升稳定性。

    • 优化了 Watcher 机制的性能。

    • 改进了日志管理。

镜像下载地址

官网地址

阅读文档地址

Docker 安装示例

# 拉取官方镜像
docker pull zookeeper:3.8.3

# 运行单机模式
docker run -d --name zookeeper -p 2181:2181 zookeeper:3.8.3

# 集群模式(3节点)
docker run -d --name zoo1 -p 2181:2181 -e ZOO_MY_ID=1 -e ZOO_SERVERS="server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181" zookeeper:3.8.3

YAML 配置示例(zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data
clientPort=2181
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888

常见错误及解决方法

  1. Connection refused

    • 检查 ZooKeeper 是否启动,端口是否开放。

  2. Session expired

    • 客户端长时间未通信导致会话超时,需重新连接。

  3. NoNode 错误

    • 节点不存在,检查路径是否正确。

  4. KeeperErrorCode = NodeExists

    • 节点已存在,避免重复创建。

  5. 集群模式启动失败

    • 检查 myid 文件是否与 zoo.cfg 配置一致。

如需更详细配置,请参考官方文档。