分布式锁
2020-05-26 本文已影响0人
程序员的自我修养
1.两种方案: 基于redis;基于zookeeper
一、基于redis的分布式锁核心指令为SETNX,即如果目标key存在,写入缓存失败返回0,反之如果目标key不存在,写入缓存成功返回1,通过区分二个不同的返回值,可以认为SETNX成功即为获得了锁;GETSET
二、利用ZK的“临时顺序”节点,需要获取锁时,在某个约定节点注册一下临时顺序节点,然后将所有临时节点按从小到大的顺序,如果自己注册的临时节点正好是最小的,表示获取了锁。