1. Apache Curator 在 ZooKeeper 客户端封装(LeaderLatch/LeaderSelector/SharedLock)
Apache Curator 在 ZooKeeper 客户端做了哪些封装(LeaderLatch/LeaderSelector/SharedLock)?
- Curator 的 API 封装
- LeaderLatch 与 LeaderSelector 的选主
- SharedLock 分布式锁
Apache Curator 是基于 ZooKeeper 的高层客户端库,封装了大量分布式协调原语。LeaderLatch:用于"选主",多个实例竞争成为 Leader,通过一个临时节点(指定路径)的占用实现,Leader 宕机时临时节点消失、其他实例自动接管,适合"只有一个 Leader 且不关心选举过程"的场景。LeaderSelector:也是选主,但更灵活,支持"获得领导权后执行任务、释放后可再次参与选举",并可通过回调(takeLeadership)定制领导权获得后的执行逻辑,适合"需要持续选主"的场景。SharedLock:分布式锁,基于临时顺序节点实现互斥锁,多个客户端在同一路径下创建有序临时节点,序号最小者获得锁,其他节点监听前驱节点释放后获取,公平且可重入。Curator 还提供 Cache(节点监听)、选举、分布式队列等。这些封装把 ZooKeeper 的底层 API(创建节点、监听、顺序节点)包装成易用的高级接口,是 ZK 分布式协调的主流工具。
Curator 的价值是"把 ZooKeeper 的复杂原语封装成现成的高级组件"。LeaderLatch/LeaderSelector 管选主,SharedLock 管互斥锁,基于临时/顺序节点实现,是 ZK 分布式协调的工程化基础。