应用场景
五、Zookeeper 的典型应用场景
5.1 数据的发布/ 订阅
数据的发布
5.2 命名服务
在分布式系统中,通常需要一个全局唯一的名字,如生成全局唯一的订单号等,
5.3 Master 选举
分布式系统一个重要的模式就是主从模式
5.4 分布式锁
可以通过
分布式系统的所有服务节点可以竞争性地去创建同一个临时
- 当正常执行完业务逻辑后,客户端主动将临时
ZNode 删除,此时锁被释放; - 当获得锁的客户端发生宕机时,临时
ZNode 会被自动删除,此时认为锁已经释放。
当锁被释放后,其他服务节点则再次去竞争性地进行创建,但每次都只有一个服务节点能够获取到锁,这就是排他锁。
5.5 集群管理
- 如可以通过创建临时节点来建立心跳检测机制。如果分布式系统的某个服务节点宕机了,则其持有的会话会超时,此时该临时节点会被删除,相应的监听事件就会被触发。
- 分布式系统的每个服务节点还可以将自己的节点状态写入临时节点,从而完成状态报告或节点工作进度汇报。
- 通过数据的订阅和发布功能,
Zookeeper 还能对分布式系统进行模块的解耦和任务的调度。 - 通过监听机制,还能对分布式系统的服务节点进行动态上下线,从而实现服务的动态扩容。