0


zookeeper实现分布式锁

   1.独占排他:znode节点不可重复 自旋锁
     2.阻塞锁:临时序列化节点 
         1.所有请求要求获取锁时,给每一个请求创建临时序列化节点
         2.获取当前节点的前置节点,如果前置节点为空,则获取锁成功,否则监听前置节点
         3.获取锁成功之后执行业务操作,然后释放当前节点的锁
     3.可重入:同一线程已经获取过该锁的情况下,可重入
         1.在节点的内容中记录服务器、线程以及重入信息
         2.ThreadLocal:线程的局部变量,线程私有
     4.公平锁:有序列
     

特点:
1.独占排他互斥使用 节点不重复
2.防死锁:
客户端程序获取到锁之后服务器立马宕机。临时节点:一旦客户端服务器宕机,链接就会关闭,此时zk心跳检测不到客户端程序,删除对应的临时节点。
不可重入:可重入锁
3.防误删:给每一个请求线程创建一个唯一的序列化节点。
4.原子性:
创建节点 删除节点 查询及监听 具备原子性
5.可重入:ThreadLocal实现 节点数据 ConcurrentHashMap
6.自动续期:没有过期时间 也就不需要自动续期
7.单点故障:zk一般都是集群部署
8.zk集群:偏向于一致性集群


本文转载自: https://blog.csdn.net/weixin_43882788/article/details/127166587
版权归原作者 永远的HelloWorld 所有, 如有侵权,请联系我们删除。

“zookeeper实现分布式锁”的评论:

还没有评论