基于分布式一致性系统实现的分布式锁的生命期问题探究

                                                    基于分布式一致性系统实现的分布式锁的生命期问题探究

分布式锁的生命期,即占有分布式锁所有权的Client与Quorum Server之间建立连接上耦合的Session的生命期,依赖着Client与Quorum Server之间定期心跳来更新。Client与Quorum Server,如果在本端的Session超时时间内没有收到心跳,则判定本端Session超时。这里必须遵循“Quorum Server比Client后判定Session过期”这一原则,否则会出现Client依旧认为自己占据Session对应分布锁所有权,Quorum Server却判定Session超时,释放分布式锁所有权,导致其余Client同时抢锁成功,从而出现多个Client均认为自己占有同一分布式锁的数据不一致后果。因此,Client与Quorum Server需要合理协商两端的Session过期时间。

下图展示的是在最坏情况:Quorum Server立即收到来自Client心跳,开启新一轮Quorum Server端Session生命期。Client刚好在本端Session超时前收到来自Quorum Server的心跳回复。Client也开始下一轮Session生命期,然后继续发送心跳,如果该心跳包异常丢失,那么Client会在第二个Session生命期结束时判定本端Session过期,而此时一直在等待心跳的Quorum Server也必须判断Session在本端过期。因此,Quorum Server端Session生命期至少为2倍Client端Session生命期,这样可确保Client、Quorum Server双方对同一分布式锁的Session有效期判断可以维持分布式一致性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值