分布式锁redis和zookeeper实现区别

分布式锁redis和zookeeper实现区别

一.分布式锁解决方案

1.采用数据库 不建议 性能不好 jdbc

2.基于Redis实现分布式锁(setnx)setnx也可以存入key,如果存入key成功返回1,如果存入的key已经存在了,返回0.

3.基于Zookeeper实现分布式锁 Zookeeper是一个分布式协调工具,在分布式解决方案中。
多个客户端(jvm),同时在zk上创建相同的一个临时节点,因为临时节点路径是保证唯一,只要谁能够创建节点成功,谁就能够获取到锁,没有创建成功节点,就会进行等待,当释放锁的时候,采用事件通知给客户端重新获取锁的资源。

优缺点比较:

zookeeper

  • 优点:锁安全性高,zookeeper数据不易丢失。用户使用简单。
  • 缺点:性能消耗比较高。因为需要动态产生和删除临时节点,当集群负载比较高时临时节点消失会有时间差(一般在一分钟范围内)。

redis

  • 优点:性能高
  • 缺点:单实例会有单点问题,多实例主从切换会导致数据丢失,master-master集群模式实现复杂。
发布了54 篇原创文章 · 获赞 28 · 访问量 4217

猜你喜欢

转载自blog.csdn.net/qq_37174887/article/details/103100304