### Zookeeper 学习笔记 #### 一、Zookeeper 简介与安装配置 **Zookeeper** 是一个分布式协调服务框架,它提供了一种高效可靠的机制来维护集群中的配置信息、命名服务以及提供分布式锁等功能,使得开发人员能够轻松地在分布式应用程序中实现一致性。 1. **下载与安装** - 在 Linux 系统上,可以通过 wget 命令下载 zookeeper 的安装包: ```bash wget <zookeeper下载地址> ``` - 解压安装包到指定目录: ```bash tar -zxvf zookeeper.tar.gz ``` 2. **配置 zookeeper** - 配置 `zoo.cfg` 文件是 zookeeper 配置的核心部分。 - `server.[num]=host:port1:port2` - `num` 表示该服务器在集群中的编号。 - `host` 表示服务器的 IP 地址或主机名。 - `port1` 和 `port2` 分别用于服务器间通信(follower 向 leader 发送心跳等)和选举过程。 - `clientPort` 定义了客户端连接 zookeeper 时使用的端口。 - 修改配置后,可以通过以下命令启动、停止或重启 zookeeper 服务: ```bash bin/zkServer.sh start|stop|restart|status ``` 3. **客户端连接** - 使用 `zkCli.sh` 脚本连接到 zookeeper 服务器: ```bash bin/zkCli.sh [-timeout 0 -r] -server host:port ``` - 参数 `-timeout` 指定超时时间。 - 参数 `-r` 表示如果当前 leader 不可用,则自动重定向到其他可用的 server。 #### 二、Paxos 协议简介 Paxos 协议是解决分布式系统中一致性问题的一种算法,广泛应用于分布式系统的状态复制中。Zookeeper 在实现其核心功能时采用了类似于 Paxos 的算法。 #### 三、Zookeeper 基本操作 Zookeeper 提供了一系列命令行工具,用于进行节点管理。 1. **节点创建** - `create [-s] [-e] path acl` - `path` 表示节点路径。 - `acl` 定义节点的访问控制列表。 - 参数 `-s` 表示创建顺序节点。 - 参数 `-e` 表示创建临时节点,当客户端断开连接时,临时节点会被自动删除。 2. **获取节点信息** - `get path` - 获取指定节点的数据和元数据。 3. **列出子节点** - `ls path` 或 `ls2 path` - 列出指定节点的所有子节点,`ls2` 还会返回子节点的状态信息。 4. **修改节点数据** - `set path` - 修改指定节点的数据。 5. **删除节点** - `delete path` - 删除指定的节点。 6. **设置配额** - `setquota [-n] [-b val] path` - 参数 `-n` 用于设置节点数量限制。 - 参数 `-b val` 用于设置每个节点的数据大小限制。 #### 四、Zookeeper 数据模型 Zookeeper 的数据模型由节点构成,节点也被称为 znode。每个 znode 有以下属性: - `cZxid`: 创建节点时的事务 ID。 - `ctime`: 节点创建时间。 - `mZxid`: 最近一次修改节点时的事务 ID。 - `mtime`: 最近一次修改时间。 - `pZxid`: 最近一次子节点创建或删除时的事务 ID。 - `cversion`: 子节点计数。 - `dataVersion`: 节点数据版本号。 - `aclVersion`: 节点 ACL 版本号。 - `ephemeralOwner`: 如果节点为临时节点,则表示创建该节点的 session ID。 - `data`: 节点存储的数据。 通过这些知识点的学习,我们不仅了解了如何在 Linux 环境下安装配置 zookeeper,并且还掌握了基本的操作命令和数据模型的基础知识。这对于深入理解 zookeeper 的工作原理及应用场景非常有帮助。
(linux环境)
部署步骤
1、下载zookeeper.tar.gz
命令:wget url去远程下载
tar -zxvf filename
2、修改zoo.cfg
server.[num]=host:port1:port2
num是第几个服务器
port1是leader与follower之间的通信(数据同步)
port2是leader选举的端口号
clientPort是客户和zookeeper连接的端口
3、bin/zkServer.sh start|stop|restart|status
4、bin/zkCli.sh [-timeout 0 -r] -server host:port
leader选举算法
paxos
客户端操作命令
1、create [-s][-e] path acl
节点分为两大类,四小类。大类是永久节点和临时节点,小类是再分有序节点和普通节点。
临时节点下面没有子节点。
-s永久节点
-e临时节点
2、get path
3、ls path/ls2 path
- 粉丝: 0
- 资源: 9
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java开发的日程管理FlexTime应用设计源码
- SM2258XT-BGA144-4BGA180-6L-R1019 三星KLUCG4J1CB B0B1颗粒开盘工具 , EC, 3A, 94, 43, A4, CA 七彩虹SL300这个固件有用
- GJB 5236-2004 军用软件质量度量
- 30天开发操作系统 第 8 天 - 鼠标控制与切换32模式
- spice vd interface接口
- 安装Git时遇到找不到`/dev/null`的问题
- 标量(scalar)、向量(vector)、矩阵(matrix)、数组(array)等概念的深入理解与运用
- 数值计算复习内容,涵盖多种方法,内容为gpt生成
- 标量(scalar)、向量(vector)、矩阵(matrix)、数组(array)等概念的深入理解与运用
- 网络综合项目实验12.19