订单异步延迟问题
来源:12-14 【阶段总结】解决超卖&引入消息队列
树叶泡过的水
2019-10-17
1.异步入mysql订单数据 ,会造成 前端显示秒杀成功了,去查询订单信息会有延迟的情况 这种情况 是如何解决的呢?
2.有可能在消费的时候mysql执行失败,就说会有这种情况 因为是分开执行服务的,用户数量特别大的情况 会出现
3.一般现在线上常用的手段 前端接受秒杀成功之后 会再次查询订单接口 查询订单的状态的这样的吗?
写回答
1回答
-
Cap
2019-10-17
这种情况下,不会直接显示秒杀成功(可以是,等待付款,订单处理中)。当秒杀成功后要立即看订单状态的首先从业务上来说,订单在完成之前的状态(一般来说抢购成功,等待付款,付款失败,等待发货,已发货等)。因为这里抢购到一个商品后等待付款,需要看订单状态的数据,可以临时把订单状态记录到用户浏览器的cookie 中,另外正常的业务逻辑还是走队列(一般队列的设计和服务器资源的设计不会让等待时间太长)。
消费队列失败的话 课程中也有提到使用rabbitmq的ack确认机制保障消费消息能够成功被消费;
在一次秒杀活动中如果用户量很大会订单状态记录到用户浏览器中(数据会设置过期时间),优先从浏览器里读订单状态临时展示(体验较好,对后台压力小,如果服务器足够就可以直接买服务器资源查询订单实时状态),等秒杀活动结束后切回到订单实时查询状态;
00
相似问题