当前位置: 首页 > news >正文

@ZooKeeper 详细介绍部署与使用详细指南

文章目录

  • **ZooKeeper 详细介绍、部署与使用**
    • 1. 概述 & 核心介绍
      • 1.1 什么是 ZooKeeper?
      • 1.2 核心特性
      • 1.3 核心概念
      • 1.4 典型应用场景
    • 2. 部署 (以 3 节点集群为例)
      • 2.1 环境准备
      • 2.2 安装步骤 (在所有节点执行)
      • 2.3 启动与停止集群
      • 2.4 防火墙配置 (如果开启)
    • 3. 基本使用与客户端操作
      • 3.1 使用 CLI 客户端连接
      • 3.2 常用命令
    • 4. 常见问题与故障排查 (FAQ)
    • 5. 官方参考文献

ZooKeeper 详细介绍、部署与使用


1. 概述 & 核心介绍

1.1 什么是 ZooKeeper?

Apache ZooKeeper 是一个开源的分布式协调服务,由 Apache 软件基金会托管。它旨在为分布式应用提供一个高性能、高可用且具有严格顺序访问控制能力的分布式配置管理、同步和命名注册服务。

1.2 核心特性

  • 顺序一致性 (Sequential Consistency): 来自客户端的更新将按照其发送的顺序被应用。
  • 原子性 (Atomicity): 更新要么成功,要么失败,没有中间状态。
  • 单一系统映像 (Single System Image): 无论客户端连接到哪个服务器,它都将看到相同的服务视图。
  • 可靠性 (Reliability): 一旦一个更新被应用,它将从那时起一直保持,直到被下一个更新覆盖。
  • 及时性 (Timeliness): 确保客户端的视图在特定时间范围内是最新的。

1.3 核心概念

  • 集群模式 (Cluster Mode): ZooKeeper 通常以复制模式 (Replicated Mode) 部署,即一个由多个节点(奇数个,如 3, 5, 7…)组成的集群,称为一个 Ensemble。这是生产环境的标准部署方式,提供高可用性。
  • 领导者选举 (Leader Election): 集群启动时,所有节点会通过投票选举出一个 Leader,其余节点成为 Follower。所有写请求都必须由 Leader 处理,读请求可以由任何节点处理。
  • ZNode: ZooKeeper 数据模型中的数据节点,类似于文件系统中的文件和目录。它构成了一个层次化的命名空间(树状结构)。
    • 持久节点 (PERSISTENT): 创建后即使客户端断开连接也会一直存在。
    • 临时节点 (EPHEMERAL): 客户端会话有效时存在,会话结束则节点自动删除。常用于实现服务发现领导者选举
    • 顺序节点 (SEQUENTIAL): 节点名后会附加一个单调递增的计数器。可用于实现分布式锁队列
    • (节点类型可组合,如 PERSISTENT_SEQUENTIAL
  • 会话 (Session): 客户端与服务器端建立一个 TCP 长连接,并通过此连接进行心跳检测。会话有超时时间 (sessionTimeout)。
  • Watcher (监听器): 客户端可以在 ZNode 上设置监听。当该 ZNode 发生变化(数据变更、子节点增减等)时,ZooKeeper 会向客户端发送一个一次性通知。这是 ZooKeeper 实现分布式协调的核心机制。

1.4 典型应用场景

  • 配置管理: 将公共配置(如数据库URL、特性开关)存储在 ZNode 中,所有应用监听其变化,实现配置的集中管理和动态更新。
  • 分布式锁: 利用临时顺序节点和 Watcher 机制实现排他锁和共享锁。
  • 服务发现: 服务提供者启动时在特定路径下创建临时节点,服务消费者监听该路径,从而动态感知服务的上线和下线。
  • 领导者选举: 多个候选者尝试创建同一个临时节点,成功者即为 Leader,其他候选者监听该节点,一旦 Leader 宕机(会话失效),节点删除,其他候选者重新竞争。
  • 命名服务 (Naming Service): 通过树形结构全局唯一地命名资源。
  • 集群管理: 监控节点的存活状态。

2. 部署 (以 3 节点集群为例)

2.1 环境准备

  • 服务器: 3台 Linux 主机 (CentOS 7/8, Ubuntu 18.04+)
    • zk-node1 (IP: 192.168.1.101)
    • zk-node2 (IP: 192.168.1.102)
    • zk-node3 (IP: 192.168.1.103)
  • 软件依赖: Java 8 或 Java 11 (推荐 LTS 版本)
  • 用户: 建议创建一个专用用户,如 zookeeper

2.2 安装步骤 (在所有节点执行)

1. 创建用户和组

sudo groupadd zookeeper
sudo useradd -g zookeeper zookeeper
sudo passwd zookeeper # 设置密码,用于运维登录(可选,也可用密钥)

2. 安装 Java

# CentOS
sudo yum install -y java-11-openjdk-devel# Ubuntu
sudo apt update && sudo apt install -y openjdk-11-jdk# 验证安装
java -version
http://www.dtcms.com/a/363568.html

相关文章:

  • 网站搭建应该选择什么服务器?
  • 人体姿态估计与动作分类研究报告
  • 四.shell脚本编程
  • 在时间序列中增加一个阶跃对长期趋势变化的影响
  • 大批量文件管理操作的linux与windows系统命令行终端命令
  • Linux内核进程管理子系统有什么第四十回 —— 进程主结构详解(36)
  • 【网络安全入门基础教程】网络安全行业,未来两年就业和再就业都会很难
  • git: 取消文件跟踪
  • Linux Shells
  • ubuntu24.04网络无法访问(网络问题)NAT网关写错了
  • MSVC, GCC, Clang
  • playwright+python 实现图片对比
  • Linux 进程信号补充知识点总结(按重要程度排序)
  • 立足稳联技术的Ethernet IP转ModbusTCP网关与触摸屏连接案例的专业研判
  • Web3 出海香港 101 |BuildSpace AMA 第一期活动高亮观点回顾
  • C++全局变量未初始的和已初始化的位置放在哪里?
  • Web3兴起:重新定义互联网格局
  • 强化学习PPO/DDPG算法学习记录
  • 图像编码之摄像机的H264 分块编码的含义是什么,以分块编码(tile)192X192为例子说明,好处与缺点分别是什么
  • Day19(前端:JavaScript基础阶段)
  • Linux笔记14——shell编程基础-8
  • 解决戴尔笔记本电脑键盘按键部分失灵
  • 未来工厂雏形:基于Three.js的自主演进式数字孪生系统设计
  • Qwen3-Reranker-0.6B 模型结构
  • Coze平台指南(2):开发环境的搭建与配置
  • Cisco FMC利用sftp Server拷贝文件方法
  • Ubuntu中配置JMmeter工具
  • 从零开始:用代码解析区块链的核心工作原理
  • Ubuntu 24.04 服务器配置MySQL 8.0.42 三节点集群(一主两从架构)安装部署配置教程
  • 软件设计师——软件工程学习笔记