拓展拾遗补漏再谈分布式锁:主从切换下锁安全性问题.pdfVIP

拓展拾遗补漏再谈分布式锁:主从切换下锁安全性问题.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

拓展3:拾遗漏补——再谈分布

式锁

在第三节,我们细致讲解了分布式锁的原理,它的使⽤⾮常简单,⼀

条指令就可以完成加锁操作。不过在集群环境下,这种方式是有

的,它不是绝对安全的。

⽐如在Sentinel集群中,主节点挂掉时,从节点会取而代之,客户

端上却并没有明显感知。原先第⼀个客户端在主节点中申请成功了⼀

把锁,但是这把锁还没有来得及同步到从节点,主节点突然挂掉了。

然后从节点变成了主节点,这个新的节点没有这个锁,所以当另

⼀个客户端过来请求加锁时,⽴即就批准了。这样就会导致系统中同

样⼀把锁被两个客户端同时持有,不安全性由此产⽣。

不过这种不安全也仅仅是在主从发⽣failover的情况下才会产⽣,

而且持续时间极短,业务系统多数情况下可以。

Redlock算法

拉机3:拾遗漏花——再谈方法式

第三节,我们美致讲解了可以式解的原理,它的用法非常简单,一条命令就

可以完成加锁操作。但是,在集群环境下,这种方法是有的,它并不是

绝对安全的。

例如,在Sentinel集群中,当主节点挂掉时,从节点接管,客户端没

有任何明显的感知。第一个客户端成功在主节点申请了锁,但是这

个锁还没有到达并与从节点同步,主节点突然挂掉了。

但这种不安全感也只发生在主机发生故障转移的情况下,且持续时

间极短,大多数情况下业务系统都可以保存。

Redlock算法

为了解决这个问题,Antirez发明了Redlock算法,它的流程⽐较

复杂,不过已经有了很多开源的library做了良好的封装,⽤户可以

拿来即⽤,⽐如redlock-py。

importredlock

addrs=[{

host:localhost,

port:6379,

db:0

},{

host:localhost,

port:6479,

db:0

},{

host:localhost,

port:6579,

db:0

}]

dlm=redlock.Redlock(addrs)

success=dlm.lock(user-lck-laoqian,5000)

ifsuccess:

printlocksuccess

dlm.unlock(user-lck-laoqian)

else:

printlockfailed

为了使⽤Redlock,需要多个Redis实例,这些实例之前相互

独⽴没有主从关系。同很多分布式算法⼀样,redlock也使⽤「大多

数机制」。

为了解决这个问题,Antirez发明了Redlock算法,它的流程比较复杂,

但是它已经有很多封装好的开源库,所以用户可以使用,比如

redlock‑py。

进口红锁

地址=[{

“主机”:“本机”,

“端口”:6379,

“数据库”:

0

},{

“主机”:“本机”,

“端口”:6479,

“数据库”:

0

},{

“主机”:“本机”,

“端口”:6579,

“数据库”:

0

]

dlm=redlock.Redlock(addrs)

成功

文档评论(0)

199****9598 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档