消息队列在电商中的应用的几个问题,比如在下单,秒杀场景中使用的疑惑。
场景说明:用户下单后,订单系统需要通知库存系统。
引入应用消息队列后的方案,如下图:

订单系统:用户下单后,订单系统完成持久化处理,将消息写入消息队列,返回用户订单下单成功。
库存系统:订阅下单的消息,采用拉/推的方式,获取下单信息,库存系统根据下单信息,进行库存操作。
假如:在下单时库存系统不能正常使用。也不影响正常下单,因为下单后,订单系统写入消息队列就不再关心其他的后续操作了。实现订单系统与库存系统的应用解耦。
2.秒杀
流量削锋也是消息队列中的常用场景,一般在秒杀或团抢活动中使用广泛。
应用场景:秒杀活动,一般会因为流量过大,导致流量暴增,应用挂掉。为解决这个问题,一般需要在应用前端加入消息队列。
可以控制活动的人数;
可以缓解短时间内高流量压垮应用;

用户的请求,服务器接收后,首先写入消息队列。假如消息队列长度超过最大数量,则直接抛弃用户请求或跳转到错误页面;
秒杀业务根据消息队列中的请求信息,再做后续处理。
问题:
订单:如何保证消息一定被正确处理,下订单之后需要付款,那么在线付款的时候如何保护发送的消息已经被处理成功呢?是否是需要去查询订单处理状态?然后再判断是否可以付款?
秒杀:也基本上是同样的问题,如何保证消息队列里的消息都被处理成功?如果秒杀商品有100个,当请求达到100个的时候,不再允许请求了,那么如果这100个请求中有消息没有被处理成功,如何解决?后续付款问题同下单中的问题。
相关推荐
【分布式系统】基于RabbitMQ的电商秒杀设计:高并发场景下消息队列的应用与实现
内容概要:本文围绕基于RabbitMQ消息队列的电商秒杀系统毕业设计,系统讲解了如何利用RabbitMQ解决高并发场景下的性能瓶颈问题。通过将秒杀业务拆分为下单、库存、延迟处理等微服务模块,结合异步化、限流、TTL、死信队列、发布确认、消费者手动ACK等核心技术,实现了高可用、高可靠的消息传递机制。文中提供了完整的生产者与消费者代码实现,涵盖从接口限流、Redis预减库存、消息可靠发送到幂等处理、异常分流与WebSocket通知的全流程,并在普通笔记本上实测达到万级QPS,有效提升了系统的响应速度与稳定性。同时展示了实验数据与架构图,增强了毕业设计的技术深度与答辩说服力。; 适合人群:计算机相关专业本科或研究生,具备Java、SpringBoot、RabbitMQ基础,正在进行毕业设计或希望提升分布式系统实战能力的学生;; 使用场景及目标:①用于毕业设计中构建高并发电商秒杀系统,展示分布式架构设计能力;②学习RabbitMQ在实际项目中的应用,掌握消息可靠性、幂等性、限流削峰等核心问题的解决方案;③提升答辩技术亮点,通过可视化实验数据和系统架构增强论文说服力; 阅读建议:建议结合代码实践部署整个系统,重点关注生产者确认机制、消费者手动ACK与幂等设计,调试并复现实验结果,同时可拓展至Stream队列、Serverless等前沿方向以增加课题创新性。
springboot电商秒杀项目源码+springboot案例
springboot电商秒杀项目源码+springboot案例
电商秒杀系统
电商秒杀系统 结合文档 http://blog.csdn.net/yd201430320529/article/details/70544203
电商项目秒杀系统实战资料.zip
秒杀方案,应用微服务技术,将个服务拆分。运用Eureka注册中心,Redis缓存,Redis计数器计数,amqp消息队列技术。
电商秒杀项目实战.rar
电商秒杀项目,里面包含数据等文档,可以给大家学习交流使用,项目是用spring boot写的欢迎大家学习交流


高性能WEB开发
