关注
(秒杀问题中的一个方向,不一定是面试官真问的)
订单系统 和 商品库存系统 可能不在一个数据库或一个服务器上,不能用数据库事务完成,你必须自己保证两个系统的一致性,也就是要么订单创建成功、库存扣减也成功,要么两者都失败。如果库存扣完了,但订单创建失败,那你要保证库存加回来、且订单一定不会创建成功(至少之后要删掉它)(因为要及时响应用户,一直等订单服务响应是不可能的)。这个是典型的分布式事务问题。
难点在于,如果请求订单服务超时(不是直接返回插入失败),服务器短时间没法知道请求是失败了(订单不会创建成功),还是请求没有失败、只是被延迟了(订单之后又成功更新了)。
最简单的方法应该是,服务器重试几次、允许等一小段时间,如果还是超时或请求失败,就直接返回下单失败,撤销库存更新;然后开一个定时任务定期给订单服务发补偿信息(删除订单或标记订单无效,如果是库存服务超时就是加库存)直到这个消息被成功处理。
服务器的插入请求和补偿请求必须满足幂等性:重发插入请求不会导致一个订单被插入多次;重复发补偿不会导致订单被删多次(对库存服务就是库存被加多次)。并且要注意在订单真的创建后,才执行这个补偿。
查看原帖
5 4
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
04-26 19:09
桂林电子科技大学 前端开发其它 点赞 评论 收藏
分享
牛客热帖
更多
- 1... 春招极限三选一!4.2W
- 2... 非科班+本科目前正在做AI工程师,说说我这3年。。。1.3W
- 3... 我的求职总结 | 致那个一边崩溃一边投简历的自己,赢现金奖励!1.2W
- 4... 我进字节她考编,明知要分手但确没人敢开口1.1W
- 5... 26届,五月,0 offer,0保底,0面试,收拾收拾准备送外卖5896
- 6... 海力士总市值突破9000亿美元,国内能赌哪些公司?5703
- 7... 被妈妈说的感觉自己好没用啊😭5562
- 8... 27腾讯云智暑期面经4886
- 9... 实习一周天天给+1买咖啡买饭,不给钱!!3879
- 10... 偷了同事简历,有字节暑实面试了3363
正在热议
更多
# AI让海力士市值突破9000亿美元 #
7802次浏览 75人参与
# 跟HR说什么能被秒回? #
45902次浏览 323人参与
# 在爱玛,骑向未来 #
47915次浏览 458人参与
# 我的求职总结 #
470769次浏览 6674人参与
# 你有哪些缓解焦虑的方法? #
62563次浏览 917人参与
# 你后悔自己读研吗? #
65244次浏览 331人参与
# 上班到公司第一件事做什么? #
166844次浏览 1091人参与
# 研究所笔面经互助 #
127805次浏览 585人参与
# 重来一次,我还会选择这个专业吗 #
469473次浏览 4000人参与
# 总结:offer选择,我是怎么选的 #
295909次浏览 1577人参与
# 通信硬件公司爆料 #
219125次浏览 559人参与
# 应届生进小公司有什么影响吗 #
142703次浏览 1193人参与
# 什么专业适合考公 #
71102次浏览 399人参与
# 拼多多工作体验 #
60350次浏览 422人参与
# 得物app工作体验 #
66435次浏览 113人参与
# 百度工作体验 #
337905次浏览 2297人参与
# 职场新人体验 #
194483次浏览 1271人参与
# 这些公司卡简历很严格 #
106362次浏览 457人参与
# 25年找工作是什么难度? #
70713次浏览 349人参与
# 牛油的搬砖plog #
204025次浏览 1316人参与
# 小厂实习有必要去吗 #
93143次浏览 435人参与

查看7道真题和解析