Zookeeper 和redis做分布式锁区别
redis
1.保证最终一致性,副本间的数据复制是异步进行,(set写 get读,redis是读写分离架构,存在主从从不延迟的情况),而且,主从切换可能导致部分数据,没有复制过去,导致数据丢失,所以要求强一致性时,推荐zk.
2.Redis各集群的方法响应时间为最低,随着并发量和业务数量上升其响应时间会明显上升,但是极限qps,可以达到最大基本无异常。
ZK
1.也无法保证完全一致性,其他原理是使用临时顺序节点,节点生命周期在client与集群的Session结束时结束。因此某个client节点存在网络问题,与zk断开连接,Session超时同样会导致错误的释放锁(导致其他线程错误的持有锁)
2.有较好的稳定性,但并发量上升,会导致qps下降
总结:
1.zk每次进行锁操作前都需要创建若干节点,完成后释放节点比较耗时
2.redis么有上述问题
Zookeeper 和redis做分布式锁区别相关推荐
- 关于Zookeeper和Redis实现分布式锁的异同
本文来说下Zookeeper和Redis实现分布式锁的异同 文章目录 概述 Redis单机实现分布式锁 Redis加锁 Redis解锁 Redis加锁过期时间设置问题 Zookeeper单机实现分布式 ...
- redis做分布式锁可能不那么简单
在计算机世界里,对于锁大家并不陌生,在现代所有的语言中几乎都提供了语言级别锁的实现,为什么我们的程序有时候会这么依赖锁呢?这个问题还是要从计算机的发展说起,随着计算机硬件的不断升级,多核cpu,多线程 ...
- 程序员修神之路--redis做分布式锁可能不那么简单
点击上方"蓝字"带你去看小星星 菜菜哥,复联四上映了,要不要一起去看看? 又想骗我电影票,对不对? 呵呵,想去看了叫我呀 看来你工作不饱和呀 哪有,这两天我刚基于redis写了一个 ...
- Zookeeper和Redis实现分布式锁,附我的可靠性分析
作者:今天你敲代码了吗 链接:https://www.jianshu.com/p/b6953745e341 在分布式系统中,为保证同一时间只有一个客户端可以对共享资源进行操作,需要对共享资源加锁来实现 ...
- 实际开发中使用Redis做分布式锁,躲坑指南,收藏起来
今天我们来聊聊Redis分布式锁,曾经被Redis分布式锁的坑给坑惨了,接下来,我就进行一个完整的整理,希望大家都能避免踩坑. 在分布式系统中,由于redis分布式锁相对于更简单和高效,成为了分布式锁 ...
- redis实现轮询算法_基于zookeeper或redis实现分布式锁
前言 在分布式系统中,分布式锁是为了解决多实例之间的同步问题.例如master选举,能够获取分布式锁的就是master,获取失败的就是slave.又或者能够获取锁的实例能够完成特定的操作. 目前比较常 ...
- Java Redis 做分布式锁
最近在做集群的时候,多台服务器上都有Spring定时任务的代码. 如果不做处理的话,每台服务器上的定时任务都会执行,而实际只需要一台服务器上的定时任务执行就可以了. 我这里用的是Redis来保证这个一 ...
- 分布式锁和数据一致性的讨论——redis集群做分布式锁的风险
文章目录 写在前面 分布式锁的三个属性 分布式锁就⼀定要实现这三个属性吗? 实现容错性 方法一:基于多个 Redis 节点实现分布式锁 问题一:进程可能会被挂起,直到锁的 TTL 过期 问题二:墙上时 ...
- Redlock 算法:Redis 实现分布式锁(译)
先介绍两个概念 Safety Properties, 在程序运行中不会进入非预期的状态(如非法调用参数, 数组下标越界等运行错误) Liveness Properties, 在程序运行中预期状态一定会 ...
- 面试题详解:如何用Redis实现分布式锁?
说一道常见面试题: 使用Redis分布式锁的详细方案是什么? 一个很简单的答案就是去使用 Redission 客户端.Redission 中的锁方案就是 Redis 分布式锁的比较完美的详细方案. 那 ...
最新文章
- MariaDB Spider:实现MySQL横纵向扩展的小能手
- 使用阿里云容器服务Kubernetes实现蓝绿发布功能
- Python安装Jupyter Notebook配置使用教程
- 【转】Java:String、StringBuffer和StringBuilder的区别
- LeetCode 1246. 删除回文子数组(区间DP)
- 宠物合成网站源码_为什么加工宠物食品做不到真正的“清洁”?
- python程序在线更新_Python自动更新功能
- python安装opencv库、提示找不到pip_OpenCV Python importorror:DLL加载失败:找不到指定的模块...
- 【计算机网络】网络协议与计算机网络体系结构(OSI参考模型、TCP/IP体系、网络通信标准化组织)及 Java网络编程
- 接口设计考虑点及验证点
- 一张图超过了屏幕大小 如何自动将多出部分隐藏 只显示中间部分
- 基于 Spring Boot + Vue.js + MySQL 的 QQ 登陆实战
- 如何导入支付宝的SDK及其模拟使用
- 小米路由器 mini 重新刷回官方固件
- 40家全球知名MCU生产厂商及其详细介绍
- LTI连续系统零状态响应求解
- java版QQ 欢迎点评
- dmpython部署操作轨迹
- AI世界- 客流统计
- linux文件的删除