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