Google 的 Chubby 分布式锁管理器有一个称为“序列器”的功能,我想使用 ZooKeeper 来模拟它。有没有已知的好方法可以做到这一点?
定序器的工作原理如下:
- 客户端获取资源锁
- 客户端为它的锁请求一个排序器,这是一个带有一些元数据的字符串
- 客户端调用服务并将定序器作为参数传递
- 服务在处理请求之前使用定序器来验证客户端是否仍然持有锁
目标是防止客户端在调用必须由锁保护的远程服务后死亡的情况。
有关 Chubby 的主要论文可在http://research.google.com/archive/chubby.html获得。定序器在 2.4 节中讨论。
谢谢!