分布式锁
2021-01-16 20:43:42 1 举报
从普通分布式锁到redisson的过程以及分布式锁的问题
作者其他创作
大纲/内容
redis本身依旧可以删除延时方法的锁
异常死锁问题
忘记了为什么要绑定线程?
延迟方法能够成功
违背了微服务高并发的初衷
缓存的各种问题
thread-2
缓存与数据库双写不一致
线程1删除成功
类似于zookeeper
分布式锁
每一段库存放在不同的redis实例上面
使得请求串行化
红锁
lua指令解决原子性问题
弊端
简单实现
慢
没有超时时间
锁定线程的原子性问题----->>极限双删除
redisson实现
延迟方法失败问题
基于setnx的setIfAbsent
适合读多写少的场景
业务删除自己不存在的锁失败
读写锁
实现方式
但是会带来订单数量大于某一实例的库存却小于总库存的情况
thread1
redis集群宕机超卖问题
zookeeper实现
优化
thread-3
业务只能删除自己的锁
读多写多的场景是用不了
redis集群的不稳定性
延时而锁被双删除问题
0 条评论
回复 删除
下一页