1.应用场景
2.zookeeper集群总体架构
3.zookeeper实现分布式锁
- 利用zookeeper临时节点
- 每个客户端连接zookeeper时,都在指定的锁节点下创建一个临时顺序节点;客户端调用getChildren()方法查询锁节点/lock下的所有子节点列表,判断子节点列表中序号最小的子节点是否是自己创建的。如果是,则客户端获得锁,否则监听排在自己前一位的子节点的删除事件,若监听的子节点被删除,则重复执行此步骤,直至获得锁,去执行业务代码。结束后删除在锁节点下创建的子节点即释放锁
- 最终,zookeeper锁节点下的临时子节点根据创建顺序的先后,依次获得分布式锁去执行自己的业务