执行 zkCli.sh,再执行 create -e /lock 命令,会发现提示 Node already exists: /lock,提示 znode 已存在,znode 建立失败,因此加锁失败,这时候我们来监控这个 znode,使用 stat -w /lock 来等待锁被释放。
这个时候我们退出第一个客户端,在终端 1 上执行 quit 命令,会在客户端 2 上收到一条 WATCHER 信息,具体如下:
WATCHER::
WatchedEvent state:SyncConnected type:NodeDeleted path:/lock
再收到这个事件后再次在客户端 2 上执行加锁,执行 create -e /lock,会显示创建 znode 成功,即加锁成功。
这篇文章主要介绍了 ZooKeeper 的安装配置,ZooKeeper 的基本概念和 zkCli 的使用,并用 zkCli 来实现一个锁,为后面更加深入的学习打好基础。