基于consul的分布式锁
2017-04-12 21:15:17 0 举报
基于consul的分布式锁和信号量
作者其他创作
大纲/内容
PUT /v1/session/destroy/
PUT /v1/kv//?release=
返回false
PUT /v1/kv//?acquire=
PUT /v1/kv//.lock?cas=
创建session
Start
更新操作是否成功
返回 sessionId
Key/Value存储
返回true
是否获得锁
返回更新是否成功
将当前session加入到持有者中
session销毁
初始化信号量竞争者
获取资源执行业务逻辑
业务逻辑
end
客户端
true or false
PUT /v1/session/create
PUT /v1/kv/?release=
返回信号量相关信息:上限值、持有者
release操作
Consul
GET /v1/kv//.lock
PUT /v1/kv/?acquire=
将自己的session中持有者中删除
acquire操作
基于Consul的分布式信号量
基于Consul的分布式锁
持有者数量小于上限值
获取信号量
释放信号量竞争者的资源
false
0 条评论
下一页