订单异步延迟问题

来源:12-14 【阶段总结】解决超卖&引入消息队列

树叶泡过的水

2019-10-17

1.异步入mysql订单数据 ,会造成 前端显示秒杀成功了,去查询订单信息会有延迟的情况 这种情况 是如何解决的呢?
2.有可能在消费的时候mysql执行失败,就说会有这种情况 因为是分开执行服务的,用户数量特别大的情况 会出现
3.一般现在线上常用的手段 前端接受秒杀成功之后 会再次查询订单接口 查询订单的状态的这样的吗?

写回答

1回答

Cap

2019-10-17

  1. 这种情况下,不会直接显示秒杀成功(可以是,等待付款,订单处理中)。当秒杀成功后要立即看订单状态的首先从业务上来说,订单在完成之前的状态(一般来说抢购成功,等待付款,付款失败,等待发货,已发货等)。因为这里抢购到一个商品后等待付款,需要看订单状态的数据,可以临时把订单状态记录到用户浏览器的cookie 中,另外正常的业务逻辑还是走队列(一般队列的设计和服务器资源的设计不会让等待时间太长)。

  2. 消费队列失败的话 课程中也有提到使用rabbitmq的ack确认机制保障消费消息能够成功被消费;

  3. 在一次秒杀活动中如果用户量很大会订单状态记录到用户浏览器中(数据会设置过期时间),优先从浏览器里读订单状态临时展示(体验较好,对后台压力小,如果服务器足够就可以直接买服务器资源查询订单实时状态),等秒杀活动结束后切回到订单实时查询状态;

0
0

全流程开发 GO实战电商网站高并发秒杀系统

运用架构设计与系统化思维,从容应对不同流量等级的“秒杀”场景

1462 学习 · 443 问题

查看课程