标签: ZooKeeper
ZooKeeper 分布式协调实战
ZooKeeper 提供原语级的协调能力,几乎所有分布式协调需求都可基于「临时节点 + 顺序节点 + Watcher」组合实现。 选主(Master Election) 每个候选者在 /election 下创建临时顺序节点,序号最小的即成为 Master。非最小节点监听其前一个节点,前驱消失时重新判断自己是否最小,从而实现故障自动转移: /election ├── /n_0000000001 (master) ├── /n_0000000002 (watch 001) └── …
ZooKeeper 提供原语级的协调能力,几乎所有分布式协调需求都可基于「临时节点 + 顺序节点 + Watcher」组合实现。 选主(Master Election) 每个候选者在 /election 下创建临时顺序节点,序号最小的即成为 Master。非最小节点监听其前一个节点,前驱消失时重新判断自己是否最小,从而实现故障自动转移: /election ├── /n_0000000001 (master) ├── /n_0000000002 (watch 001) └── …
ZooKeeper 数据模型与 ZAB 协议
ZooKeeper 的可靠性来源于其简洁的数据模型与强一致的 ZAB 协议。理解二者是正确使用 ZK 的前提。 数据模型 znode ZK 维护一棵类似文件系统的层级树,每个节点称为 znode,可同时承载数据与子节点。其类型决定了生命周期与并发语义: 持久节点 / 临时节点:临时节点随 session 断开自动删除,是分布式锁、选主的基础。 普通节点 / 顺序节点:顺序节点创建时自动追加单调递增序号。 每个 znode 带有 version、cversion、aversion,修改时版本自增, …
ZooKeeper 的可靠性来源于其简洁的数据模型与强一致的 ZAB 协议。理解二者是正确使用 ZK 的前提。 数据模型 znode ZK 维护一棵类似文件系统的层级树,每个节点称为 znode,可同时承载数据与子节点。其类型决定了生命周期与并发语义: 持久节点 / 临时节点:临时节点随 session 断开自动删除,是分布式锁、选主的基础。 普通节点 / 顺序节点:顺序节点创建时自动追加单调递增序号。 每个 znode 带有 version、cversion、aversion,修改时版本自增, …