是不是redis分布式锁还是会有一人两单问题啊。比如用户第一次抢购由于业务卡顿,导致锁过期失效了。这个用户又发了一次请求得到了锁,又执行了一次抢购。这不就两单了吗。后面讲的redisson,用了watchdog如果你阻塞太久也会释放锁,不还是会导致一人两单
全部评论
redisson作用是自动续期,可重入和可重试。一人一单和加不加锁没太大关系,把“判断库存->判断用户下单次数->扣减库存”打成一个原子操作是一人一单的关键。
2 回复 分享
发布于 03-27 16:16 广东
锁到期需要进行补偿操作吧
点赞 回复 分享
发布于 03-28 17:57 广东
不用锁也能一人一单
点赞 回复 分享
发布于 03-27 11:13 上海
redis分布式锁并不能完全保证这个 如果需要高可用 强一致性 需要上zookeeper或者etcd
点赞 回复 分享
发布于 03-25 11:53 广东
redis分布式锁是在redis+lua脚本原子性判断库存充足了之后异步线程创建订单时的第二个保障,虽然 Redis + Lua 保证了库存的原子性,但是如果订单创建失败(例如数据库异常),库存已经减少了,这可能会导致实际库存与数据库库存不一致。 优化: 双写一致性保障:使用 事务消息(RocketMQ/RabbitMQ 的事务特性),先预减库存,再落库成功后确认库存扣减,否则回滚。
点赞 回复 分享
发布于 03-19 17:58 河南
加上事务就行了吧
点赞 回复 分享
发布于 03-15 13:25 辽宁
这个问题有解决思路吗
点赞 回复 分享
发布于 03-07 16:59 辽宁
虎哥说了加不加锁没有影响
点赞 回复 分享
发布于 03-02 22:10 安徽
问题是黑马点评没用分布式锁啊
点赞 回复 分享
发布于 03-02 22:10 安徽
所以需要业务保障幂等性
点赞 回复 分享
发布于 03-02 17:05 安徽

相关推荐

04-28 22:30
门头沟学院 Java
开始就自我介绍。1. 然后开始让介绍自己的项目,我是只有点评+外卖,所以挑点评说了。(想想其实蛮离谱的,一上来让自己直接讲,我都有点懵不知道讲什么,也怪自己项目吃的不深)2. 然后面试官突然让介绍项目里用到的redisson的原理(没理解是要问源码吗?)然后就答了一些redisson的特性,然后说直接导入xml直接使用的(人已经晕掉了)。3. 问了redis八股,redis的常用数据类型,zset的跳表原理。4. 问了一点操作系统的东西,进程通信的方式,管道的分类。5. 计网问了TCP&UDP的区别,TCP流量控制(一开始听错了以为是拥塞控制)。6. MySQL的事务特性(ACID)。7. 在项目中遇到的最困难的问题,以及如何解决(答得一坨)。这个时候已经二十多分钟了,以为有手撕,然后没有,我就感觉已经g了。8. 反问,部门是干什么的。面试官说自己是干go的,我就蛮懵的,因为确实他一点java基础八股都没咋问。9. 问面试大概有几面。面试官说应该有几面,具体得问hr那边,哈哈,心直接凉了。整场面试就30min左右,感觉面试官不太想问问题,体验蛮差,也不知道是不是hc没了直接kpi面了,挺郁闷的。答主是双末2的小硕(从化工跨过来的),课题也是深度学习cv,被导师拉着搞了一年科研无果,遂自己摸索水出一篇小论文然后在1月底开始准备转后端(过年回去还玩了1个月),一开始还没有意识到事情的严重性,直到三月发现不对劲了,感觉学不完了,然后开始加速,但是问题就是很多基础都不牢固,项目也没有特别深入理解。唉,菜是原罪,开始努力备战秋招,最后找个像样的工作就算成功吧,加油!
腾讯云智研发一面200人在聊 查看10道真题和解析
点赞 评论 收藏
分享
评论
点赞
20
分享

创作者周榜

更多
牛客网
牛客企业服务