Zookeeper简介及核心概念

This commit is contained in:
罗祥 2019-06-03 16:30:14 +08:00
parent 7cb7bcae27
commit 98906ef332

View File

@ -173,22 +173,22 @@ Zookeeper通过Watcher机制可以实现数据的发布和订阅。分布式系
分布式系统的所有服务节点可以竞争性地去创建同一个临时ZNode由于Zookeeper不能有路径相同的ZNode必然只有一个服务节点能够创建成功此时可以认为该节点获得了锁。其他没有获得锁的服务节点通过在该ZNode上注册监听从而当锁释放时再去竞争获得锁。锁的释放情况有以下两种
+ 当正常执行完业务逻辑后,客户端主动将创建的临时节点删除,此时锁被释放;
+ 当正常执行完业务逻辑后,客户端主动将临时ZNode删除,此时锁被释放;
+ 当获得锁的客户端发生宕机时,临时节点会被自动删除,此时认为锁已经释放。
+ 当获得锁的客户端发生宕机时,临时ZNode会被自动删除,此时认为锁已经释放。
当锁被释放后,其他服务节点可以再次去竞争性地进行创建,但每次都有且只有一个服务节点能够获取到锁,这就是排他锁。
当锁被释放后,其他服务节点则再次去竞争性地进行创建,但每次都只有一个服务节点能够获取到锁,这就是排他锁。
### 5.5 集群管理
Zookeeper还能解决大多数分布式系统中的问题
+ 如可以通过创建临时节点来建立心跳检测机制,如果分布式系统的某个服务节点宕机了,则该临时节点会被删除,此时通过监听机制就能知道该服务已经宕机;
+ 分布式系统的每个服务节点还可以将自己的节点状态写入临时节点,从而完成状态报告或节点工作进度汇报
+ 通过数据的订阅和发布功能Zookeeper还能对分布式系统进行模块的解耦和任务的调度
+ 如可以通过创建临时节点来建立心跳检测机制。如果分布式系统的某个服务节点宕机了,则其持有的会话会超时,此时该临时节点会被删除,相应的监听事件就会被触发。
+ 分布式系统的每个服务节点还可以将自己的节点状态写入临时节点,从而完成状态报告或节点工作进度汇报
+ 通过数据的订阅和发布功能Zookeeper还能对分布式系统进行模块的解耦和任务的调度
+ 通过监听机制,还能对分布式系统的服务节点进行动态上下线,从而实现服务的动态扩容。
<br/>
## 参考资料