
Zookeeper 教程
文章平均质量分 83
ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。
Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。
二当家的素材网
美好的人眼里映出的世界也是美好的~
展开
-
14.0 Zookeeper环球锁实现原理
如果事务T1对数据对象O1加上了共享锁,那么当前事务只能对O1读取进行操作,事务也只能对这个数据对象其他数据对象加共享锁,直到该数据对象上的所有共享锁都释放。3、判断是否获得锁,对于读请求如果所有比自己小子节点都是读请求或者没有比自己序号小子节点,表明已经成功获取共享锁,同时开始执行度逻辑。排他锁(Exclusive Locks),又被称为写锁或独占锁,如果事务T1对数据对象O1加上排他锁,那么整个加锁期间,只允许事务T1对O1进行和读取更新操作,其他事务都不能进行读或写。节点下创建临时子节点。原创 2024-02-06 11:01:47 · 1647 阅读 · 0 评论 -
13.0 Zookeeper Leader 选举原理
zookeeper 的 leader 选举存在两个阶段,一个是服务器启动时 leader 选举,另一个是运行过程中 leader 服务器宕机。在分析选举原理前,先介绍几个重要的参数。原创 2024-02-06 10:59:39 · 891 阅读 · 0 评论 -
12.0 Zookeeper 数据同步流程
在 Zookeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性。原创 2024-02-06 10:58:56 · 1380 阅读 · 0 评论 -
11.0 Zookeeper watcher 事件机制原理剖析
其中客户端注册 watcher 有三种方式,调用客户端 API 可以分别通过 getData、exists、getChildren 实现,利用前面章节创建的 maven 工程,新建 WatcherDemo 类,以 exists 方法举例说明其原理。原创 2024-02-06 10:57:09 · 1429 阅读 · 0 评论 -
10.0 Zookeeper 权限控制 ACL
zookeeper 的 ACL(Access Control List,访问控制表)权限在生产环境是特别重要的,所以本章节特别介绍一下。ACL 权限可以针对节点设置相关读写等权限,保障数据安全性。permissions 可以指定不同的权限范围及角色。原创 2024-02-06 10:52:28 · 1288 阅读 · 0 评论 -
9.0 Zookeeper 节点特性
本章节介绍一下 zookeeper 的节点特性和简单使用场景,正是由于这些节点特性的存在使 zookeeper 开发出不同的场景应用。原创 2024-02-06 10:49:57 · 1762 阅读 · 0 评论 -
8.0 Zookeeper 四字命令教程详解
zookeeper 支持某些特定的四字命令与其交互,用户获取 zookeeper 服务的当前状态及相关信息,用户在客户端可以通过 telenet 或者 nc(netcat) 向 zookeeper 提交相应的命令。原创 2024-02-06 10:46:03 · 1829 阅读 · 0 评论 -
7.0 Zookeeper 客户端基础命令使用
zookeeper 命令用于在 zookeeper 服务上执行操作。首先执行命令,打开新的 session 会话,进入终端。下面开始讲解基本常用命令使用,其中 acl 权限内容在后面章节详细阐述。原创 2024-02-05 14:57:38 · 1422 阅读 · 0 评论 -
1.0 Zookeeper 分布式配置服务教程
ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。ZooKeeper 的架构通过冗余服务实现高可用性。Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。原创 2024-02-05 10:34:37 · 1134 阅读 · 0 评论 -
5.0 ZooKeeper 数据模型 znode 结构详解
在 zookeeper 中,可以说 zookeeper 中的所有存储的数据是由 znode 组成的,节点也称为 znode,并以 key/value 形式存储数据。我们直观的看到此时存储的数据在根目录下存在 runoob 和 zookeeper 两个节点,zookeeper 节点下存在 quota 这个节点。runoob 节点是在我们之前章节创建,并且通过 java 客户端设置值 0,现在我们在命令行终端执行 get /runoob 显示此节点的属性。其中第一行显示的 0 是该节点的 value 值。原创 2024-02-05 14:38:43 · 1383 阅读 · 0 评论 -
4.0 Zookeeper Java 客户端搭建
本教程使用的 IDE 为 IntelliJ IDEA,创建一个 maven 工程,命名为 zookeeper-demo,并且引入如下依赖,可以自行在maven中央仓库选择合适的版本,介绍原生 API 和 Curator 两种方式。原创 2024-02-05 10:46:09 · 1906 阅读 · 0 评论 -
3.0 Zookeeper linux 服务端集群搭建步骤
所需准备工作,创建三台虚拟机环境并安装好 java 开发工具包 JDK,可以使用 VM 或者 vagrant+virtualbox 搭建 centos/ubuntu 环境,本案例基于宿主机 windows10 系统同时使用 vagrant+virtualbox 搭建的 centos7 环境,如果直接使用云服务器或者物理机同理。IP 192.168.3.33 机器配置 myid,因为这台机器上个教程单机启动过,所以出现 version-2,没有也没关系。根据 id 和对应的地址分别配置 myid。原创 2024-02-05 10:38:52 · 2084 阅读 · 0 评论 -
2.0 Zookeeper 安装配置
修改 zoo.cfg 配置文件,将 dataDir=/tmp/zookeeper 修改成 zookeeper 安装目录所在的 data 文件夹,再添加一条添加数据日志的配置(需要根据自己的安装路径修改)。选择一稳定版本,本教程使用的 release 版本为3.4.14,下载并安装。出现 Welcome to Zookeeper!,表示我们成功启动客户端。双击zkCli.cmd 启动客户端。,表示服务端启动成功!原创 2024-02-05 10:36:39 · 911 阅读 · 0 评论 -
6.0 Zookeeper session 基本原理详解教程
客户端与服务端之间的连接是基于 TCP 长连接,client 端连接 server 端默认的 2181 端口,也就是 session 会话。从第一次连接建立开始,客户端开始会话的生命周期,客户端向服务端的ping包请求,每个会话都可以设置一个超时时间。原创 2024-02-05 14:44:51 · 1315 阅读 · 0 评论