谷歌的Chubby分布式锁管理器有一个名为“序列发生器”的功能,我想用ZooKeeper模拟它。有没有一种已知的好方法呢?
音序器的工作原理如下:
目标是防止客户端在调用必须受锁保护的远程服务后死亡。
关于胖乎乎的主要论文可在http://research.google.com/archive/chubby.html获得。排序器将在2.4节中讨论。
谢谢!
答案 0 :(得分:6)
zookeeper lock recipes全部涉及锁定过程创建sequential ephemeral znode。顺序短暂znode的名称将是唯一的,并且如果由于锁定器未在超时内发送有效心跳而导致锁定器会话到期,则znode将不再存在。
因此锁定过程只需要在锁定到远程服务时传递它创建的顺序短暂znode的名称,远程服务可以在处理之前检查znode的存在。
您甚至可以让远程服务向znode添加监视,并在删除znode时收到通知。