分布式锁-redis、zookeeper优缺点
redis分布式锁优缺点
缺点:
- 获取锁的方式简单粗暴,获取不到锁直接不断尝试获取锁,比较消耗性能;
- redis的设计定位决定了它的数据并不是强一致性的,在某些极端情况下,可能会出现问题。锁的模型不够健壮;
- 使用redlock算法来实现,在某些复杂场景下,也无法保证其实现100%没有问题,关于redlock的讨论可以看 How to do distributed locking;
- redis分布式锁,其实需要自己不断去尝试获取锁,比较消耗性能。
zookeeper分布式锁优缺点
优点
- zookeeper天生设计定位就是分布式协调,强一致性。锁的模型健壮、简单易用、适合做分布式锁;
- 如果获取不到锁,只需要添加一个监听器就可以了,不用一直轮询,性能消耗较小。
缺点
- 有较多的客户端频繁的申请加锁、释放锁,对于zookeeper集群的压力会比较大。
总结
通过上面两种分布式锁的优缺点比较,我们应该如何选型呢?
就个人而言的话,比较推崇zookeeper分布式锁,因为redis有可能存在隐患,可能会导致数据不对的情况。但是,怎么选用要看具体公司的场景了。
如果公司里面有zookeeper集群条件,优先选用zookeeper实现。如果公司只有redis集群,没有条件搭建zookeeper集群,那么使用redis来实现也可以。
分布式锁-redis、zookeeper优缺点相关推荐
- 关于分布式锁的面试题都在这里了|Reids分布式锁|ZooKeeper分布式锁
我今天班儿都没上,就为了赶紧把这篇文章分布式锁早点写完.我真的不能再贴心了. 边喝茶边构思,你们可不要白嫖了! 三连来一遍? 引言 为什么要学习分布式锁? 最简单的理由就是作为一个社招程序员,面试的时 ...
- 聊聊分布式锁——Redis和Redisson的方式
聊聊分布式锁--Redis和Redisson的方式 一.什么是分布式锁 分布式~~锁,要这么念,首先得是『分布式』,然后才是『锁』 分布式:这里的分布式指的是分布式系统,涉及到好多技术和理论,包括CA ...
- 分布式锁-Redis解决方案和Redisson解决方案
文章目录 1:分布式锁的概念 1:概念 2:锁/分布式锁/事务区别 2:本文使用的案例场景 1:需求 2:controller层代码 3:锁控制层代码(使用synchronized 不成功) 4:调用 ...
- 分布式锁-Redis红锁解决方案
文章目录 1:分布式锁的概念 1:概念 2:锁/分布式锁/事务区别 2:本文使用的案例场景 1:需求 2:controller层代码 3:锁控制层代码(使用synchronized 不成功) 4:调用 ...
- Zookeeper命令操作(初始Zookeeper、JavaAPI操作、分布式锁实现、模拟12306售票分布式锁、Zookeeper集群搭建、选举投票)
Zookeeper命令操作(初始Zookeeper.JavaAPI操作.分布式锁实现.模拟12306售票分布式锁.Zookeeper集群搭建.选举投票) 1.初始Zookeeper Zookeeper ...
- 分布式锁原理——redis分布式锁,zookeeper分布式锁
首先分布式锁和我们平常讲到的锁原理基本一样,目的就是确保,在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法.变量. 在一个进程中,也就是一个jvm 或者说应用中,我们很容易去处理控制,在j ...
- 关于分布式锁原理的一些学习与思考:redis分布式锁,zookeeper分布式锁
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:牛人 20000 字的 Spring Cloud 总结,太硬核了~ 作者:队长给我球. 出处:https://w ...
- zookeeper 分布式锁_关于redis分布式锁,zookeeper分布式锁原理的一些学习与思考
编辑:业余草来源:https://www.xttblog.com/?p=4946 首先分布式锁和我们平常讲到的锁原理基本一样,目的就是确保,在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法 ...
- redis cluster 分布式锁_关于分布式锁原理的一些学习与思考redis分布式锁,zookeeper分布式锁...
首先分布式锁和我们平常讲到的锁原理基本一样,目的就是确保,在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法.变量. 在一个进程中,也就是一个jvm 或者说应用中,我们很容易去处理控制,在j ...
最新文章
- Python开发(基础):字符串
- sola ris 简单命令
- U-Mail邮件系统的管理权限分配
- python3菜鸟教程中文-Python3 字符串
- js实现给a href= href赋值
- OJ题目细菌实验分组c语言,C语言
- matlab柱状图加阴影,matlab 绘制 阴影 柱状图 条形图
- 软件开发有哪些规范和标准_高品质、标准化——四维图新自动驾驶地图通过ASPICE CL2认证...
- 【clickhouse】clickhouse 表引擎 之 AggregatingMergeTree
- nodejs操作mysql查询返回的数据_nodejs连接mysql进行数据库查询返回前台数据的坑...
- 计算机网络物理层之数据通信的基础知识
- VeriSign SSL证书产品及服务_VeriSign证书|SSL证书|EVSSL证书|服务器证书|数字证书
- 【冈凡记录】阿冈与叶凡超女8进6决赛的全观察!
- 基于MNIST数据集实现手写数字识别
- 海南新能源内容市场遇冷,本土内容平台杉车网如何解围?
- 抖音表情包项目怎么变现?普通人如何利用表情包短视频月入过万?
- 02 SVN 与 Git 的优缺点
- 如何得到每个区域的每个土地利用类型的面积
- 如何使用python insert插入数据
- sed在某一行行首添加字符_sed在行首或者行尾添加内容
热门文章
- Python编程基础(1)
- 接口隔离原则(Interface Segregation Principle)
- GMSL虚拟通道ID简介
- android 4.4 batteryservice 电池电量显示分析
- 计算机大数据的前景方向_大数据十大发展方向!
- 记一次失败的《将视频中的音频转换成文字》的经历
- Ubuntu、stm32下的C程序各变量的分配地址分析
- 二叉树非递归后序遍历的三种办法
- Xilinx ZYNQ Ultrascale+ 性能测试之 PL/PS PCIe Root Port NVMe
- 7-7 到底是不是太胖了