From a348a56a84ed5e7d47b05358ed04eef2de9b38ca Mon Sep 17 00:00:00 2001 From: heibaiying <31504331+heibaiying@users.noreply.github.com> Date: Mon, 3 Jun 2019 16:31:26 +0800 Subject: [PATCH] =?UTF-8?q?Update=20Zookeeper=E7=AE=80=E4=BB=8B=E5=8F=8A?= =?UTF-8?q?=E6=A0=B8=E5=BF=83=E6=A6=82=E5=BF=B5.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- notes/Zookeeper简介及核心概念.md | 1 - 1 file changed, 1 deletion(-) diff --git a/notes/Zookeeper简介及核心概念.md b/notes/Zookeeper简介及核心概念.md index b64bd9a..b8c69cd 100644 --- a/notes/Zookeeper简介及核心概念.md +++ b/notes/Zookeeper简介及核心概念.md @@ -174,7 +174,6 @@ Zookeeper通过Watcher机制可以实现数据的发布和订阅。分布式系 分布式系统的所有服务节点可以竞争性地去创建同一个临时ZNode,由于Zookeeper不能有路径相同的ZNode,必然只有一个服务节点能够创建成功,此时可以认为该节点获得了锁。其他没有获得锁的服务节点通过在该ZNode上注册监听,从而当锁释放时再去竞争获得锁。锁的释放情况有以下两种: + 当正常执行完业务逻辑后,客户端主动将临时ZNode删除,此时锁被释放; - + 当获得锁的客户端发生宕机时,临时ZNode会被自动删除,此时认为锁已经释放。 当锁被释放后,其他服务节点则再次去竞争性地进行创建,但每次都只有一个服务节点能够获取到锁,这就是排他锁。