如何保证秒杀业务的事务性?

秒杀任务中,在redis中判断秒杀资格,生成订单;订单异步写入数据库。
怎么保证整个流程的事务性呢? 比如订单写入数据库失败,怎么通知redis恢复缓存中扣除的库存。
当通知redis恢复库存的消息,由于网络等原因,redis收不到怎么办?
全部评论
个人看法。 秒杀是很快的动作,基本要求快速返回,所以当写入数据库失败时,其实这时生产者端早已处理完缓存发送消息返回了,缓存回流也没效果,除非你做那种后续发送信息通知用户秒杀失败,不过这种体验很差。 考虑保证订单写入数据库这个操作的完成比较好,而不是在缓存恢复上做文章。要保证订单写入数据库这个操作的话其实就是如何做到消息不丢失,这个网上很多方案。
3 回复 分享
发布于 2024-05-03 22:42 广东
首先保证不超卖,然后就是既然他都抢到了,就不应该恢复库存吧,订单写入数据库失败是消息队列的可靠性问题
1 回复 分享
发布于 2024-05-31 22:48 陕西
m
1 回复 分享
发布于 2024-05-08 21:02 湖北
保证不超卖就行,这些不管了
1 回复 分享
发布于 2024-05-02 17:21 湖南
m
点赞 回复 分享
发布于 2024-05-19 11:58 陕西
用canal配合消息队列?消息队列本来就有失败重试,多试几次总能最终一致性
点赞 回复 分享
发布于 2024-05-01 15:30 天津
佬,这是黑马点评吗?
点赞 回复 分享
发布于 2024-05-01 11:57 湖北
m
点赞 回复 分享
发布于 2024-05-01 11:51 辽宁
m
点赞 回复 分享
发布于 2024-04-29 14:19 广东
N
点赞 回复 分享
发布于 2024-04-29 13:28 山东
m
点赞 回复 分享
发布于 2024-04-29 13:26 辽宁
m
点赞 回复 分享
发布于 2024-04-29 13:05 江苏

相关推荐

大方的大熊猫准备进厂:1.教育背景:你希望从事什么专业的工作你的主修课就是什么;成绩优秀是你应该做的,没什么可描述的,成绩不优秀也许人家在大学忙着创业呢?(成绩优秀不一定是好事,只能说明多元化的大学你上成了高中,没有真正上明白大学,反而体现了你死板,不爱社交,没有别的突出能力) 2.实践经历:你想表达的意思没有说清楚。你是说你会个性化服务,还是你有实习经历。如果没有带来,经济收益,表彰,更好的发展前景,那你还不如说说提升了自己哪些技能。你说有人给你送锦旗我都能明白你优秀,但是你说你会xxxx,你说这话谁信,证据呢。 3.入伍经历:你描述的就是你的工作职责或者你应该做的,并没有体现出来你把这个事情做好了,而且入伍经历并不能证明你能干好你要应聘的工作,不如只写经历其余所有内容都不写。 4.荣誉技能:重点突出一下,但不要过多描述,这些荣誉的含金量懂得都懂。 重点:你要应聘什么工作(具体岗位,实习生不具体),你的期望薪资
点赞 评论 收藏
分享
04-29 18:07
常州大学 Java
寂静羽翼:兄弟我已经亲身经历了,双非没实习很多大厂还是会给笔试的,可是有的公司笔试做的好也不给面一直卡着,ssob基本看我没实习都拒绝我了,但是每天投满偶尔也能有一两场初创公司的面试,但是薪资基本在五六千
点赞 评论 收藏
分享
评论
8
86
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务