美文网首页
基于zookeeper和redis分布式锁理解

基于zookeeper和redis分布式锁理解

作者: snail_knight | 来源:发表于2017-08-04 16:26 被阅读0次

    最近看了基于zookeeper和redis两种分布式锁的原理以及实现方式:
    下文中的锁:你可以理解为一个标识符,表达两种状态,对应值存在已经被锁,如果对应值不存在,可以竞争写入,写入成功获得锁。
    相同点:
    1、作为锁的标识的第三方组件都是集群:在该功能上,主要为了解决单点问题,实现高可用
    2、在原理上根本上来说差异不大:通过网络争用锁,zookeeper通过唯一路径定位该锁,redis通过唯一key来定位锁。为避免死锁都采用锁过期机制

    不同点:
    1、redis实现会用时间戳作为value来判断锁版本,阻塞其他请求;也是通过这个时间戳来完成锁过期机制的。zookeeper通过uuid+epoch+zxid,zookeeper集群自身维护的一个序列号来标识连接客户端。每一个客户端线程可以拥有锁。过期好像是通过客户端操作,corator是的实现方式如此,zookeeper原生的代码中没有这样的方法。
    2、redis就是一个基于网络高可用高并发的缓存,因此相对于zookeeper直接对比没有意义,而且zookeeper的诞生是伴随着paxos算法。因此在分布式一致性采用zookeeper的理由更加充分。

    相关文章

      网友评论

          本文标题:基于zookeeper和redis分布式锁理解

          本文链接:https://www.haomeiwen.com/subject/zotblxtx.html