zk有序节点分布式锁原理

所有客户端均创建有序节点/lock/lock-xxx,其中xxx为序号,xxx最小的客户端获得锁,其余客户端监视前一个节点,例如有/lock/lock-001,/lock/lock-002,/lock/lock-003三个节点时,001的客户端获得锁,002的客户端监视001的znode,003的客户端监视002的znode,当001的锁释放时,002即获得锁,以此类推,这种方式下每个znode上监视的客户端只有一个,尽管总watches数是一样的,却不会造成性能的波动。

你可能感兴趣的:(zk有序节点分布式锁原理)