zookeeper集群,分布式锁怎么保证正确
1个回答
展开全部
1. 利用节点名称唯性实现共享锁
ZooKeeper抽象节点结构unix文件系统类似型树状目录结构ZooKeeper机制规定:同目录能唯文件名例:我Zookeeper目录/test目录创建两客户端创建名Lock节点能够功
算思路: 利用名称唯性加锁操作需要所客户端起创建/test/Lock节点创建功功者获锁解锁需删除/test/Lock节点其余客户端再进入竞争创建节点直所客户端都获锁
基于机制利用节点名称唯性机制共享锁算流程图所示:
该共享锁实现符合我通线程竞争锁概念利用节点名称唯性做简明、靠
由述算容易看由于客户端同收/test/Lock删除通知重新进入竞争创建节点故存"惊群现象"
使用该进行测试锁性能列表:
总结 种案确性靠性ZooKeeper机制保证实现简单缺点产惊群效应假许客户端等待锁锁释放候所客户端都唤醒仅仅客户端锁
2. 利用临顺序节点实现共享锁般做
首先介绍Zookeeper种节点叫做顺序节点故名思议假我/lock/目录创建节3点ZooKeeper集群按照提起创建顺序创建节点节点别/lock/0000000001、/lock/0000000002、/lock/0000000003
ZooKeeper种名临节点节点临节点由某客户端创建客户端与ZooKeeper集群断连接则节点自删除
利用面两特性我看获取实现布式锁基本逻辑:
客户端调用create()创建名locknode/guid-lock-节点需要注意节点
ZooKeeper抽象节点结构unix文件系统类似型树状目录结构ZooKeeper机制规定:同目录能唯文件名例:我Zookeeper目录/test目录创建两客户端创建名Lock节点能够功
算思路: 利用名称唯性加锁操作需要所客户端起创建/test/Lock节点创建功功者获锁解锁需删除/test/Lock节点其余客户端再进入竞争创建节点直所客户端都获锁
基于机制利用节点名称唯性机制共享锁算流程图所示:
该共享锁实现符合我通线程竞争锁概念利用节点名称唯性做简明、靠
由述算容易看由于客户端同收/test/Lock删除通知重新进入竞争创建节点故存"惊群现象"
使用该进行测试锁性能列表:
总结 种案确性靠性ZooKeeper机制保证实现简单缺点产惊群效应假许客户端等待锁锁释放候所客户端都唤醒仅仅客户端锁
2. 利用临顺序节点实现共享锁般做
首先介绍Zookeeper种节点叫做顺序节点故名思议假我/lock/目录创建节3点ZooKeeper集群按照提起创建顺序创建节点节点别/lock/0000000001、/lock/0000000002、/lock/0000000003
ZooKeeper种名临节点节点临节点由某客户端创建客户端与ZooKeeper集群断连接则节点自删除
利用面两特性我看获取实现布式锁基本逻辑:
客户端调用create()创建名locknode/guid-lock-节点需要注意节点
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询