美文网首页
消息队列处理秒杀/拼团活动的高并发问题

消息队列处理秒杀/拼团活动的高并发问题

作者: Jun_简书 | 来源:发表于2019-04-25 18:33 被阅读0次

1、消息队列(以下简称MQ)天生就是处理高并发的有力工具,因为他可以把一个完整的流程拆为多部分,并发进行,或者不是很重要的步骤模块延迟进行。大家所熟悉的是消息队列在大基数用户项目的注册模块和电商项目的订单模块运用的比较多,淘宝就是最好的案例。但是这里并不是想要介绍这个,而是想简谈一下消息队列处理拼团秒杀活动的高并发的运用:

【1】秒杀活动有个特点,就是在某个特定的时间点,并发请求量特别大,峰值远远高于平常,所以秒杀应用服务器就有可能承受不了这么大的并发而导致系统崩溃;

【2】这个时候就可以考虑使用MQ,MQ在这里可以起到削减高峰流量的作用,实现场景是搭一个MQ服务器,挡在秒杀应用服务器前面,承受这个大量的请求数,然后再把符合条件的前多少个请求发送到应用服务器,去正常消费库存,MQ在这个流程中做了三件事:收集请求-->筛选过滤请求-->发送符合条件请求/返回秒杀失败信息给不符合条件的请求者,其中"返回秒杀失败信息给不符合条件的请求者"这个可以最后来做,往大的方向来说就是转发请求;

【3】举个实际的例子,我配置了一个秒杀活动,活动配置是开始时间为第二天早上八点,名额数为100个人。到了第二天7点50多分,估计好人都在守着手机等着抢秒杀商品,所以到了准时8:00这个点,所有人一拥而入,1000个人同时进来抢秒杀的商品,如果直接访问秒杀应用服务器,可能会让系统受不了这么高的并发直接服务器崩溃,但是有了消息队列的话,可以将这1000个人先挡住,收集他们的信息,然后将符合条件的前100个人的请求发给秒杀服务器,从而达到削减并发高峰和筛选的作用,以下是实现方案图:


image.png

相关文章

  • 消息队列处理秒杀/拼团活动的高并发问题

    1、消息队列(以下简称MQ)天生就是处理高并发的有力工具,因为他可以把一个完整的流程拆为多部分,并发进行,或者不是...

  • 01-为什么需要消息队列

    哪些问题适合使用消息队列来解决 异步处理 如:秒杀系统 可以更快的返回结果 减少等待,自然实现了步骤之间的并发,提...

  • 数据库读写分离

    我们知道电商网站经常有秒杀活动,因此不可避免的就是处理高并发的问题。说到高并发,大家都知道对数据库造成的压力很大,...

  • Message Queue 消息队列

    消息队列概述 消息队列是系统中重要的中间件,主要解决应用耦合,异步消息,高并发等问题。实现高性能,高可用,可伸缩和...

  • Mysql Redis 消息队列

    一、Mysql消息队列1、适用场景:秒杀、抢购、群发消息、高并发情况来缓解服务器压力2、应用:(1)将信息先放入队...

  • 从构建分布式秒杀系统聊聊WebSocket推送通知

    前言 秒杀架构到后期,我们采用了消息队列的形式实现抢购逻辑,那么之前抛出过这样一个问题:消息队列异步处理完每个用户...

  • 从构建分布式秒杀系统聊聊WebSocket推送通知

    前言 秒杀架构到后期,我们采用了消息队列的形式实现抢购逻辑,那么之前抛出过这样一个问题:消息队列异步处理完每个用户...

  • 从构建分布式秒杀系统聊聊WebSocket推送通知

    前言 秒杀架构到后期,我们采用了消息队列的形式实现抢购逻辑,那么之前抛出过这样一个问题:消息队列异步处理完每个用户...

  • 2021年最新PHP 面试、笔试题汇总(一)

    一、秒杀(商品超卖,高并发,同一用户多次抢购) 后端:redis+队列 redis队列实现,三个队列(库存队列,排...

  • 应对大并发

    高并发是我们现在老生常谈的内容了,这里我们以秒杀为例,来聊聊怎么应对大并发。 一、秒杀带来的问题 在高并发秒杀的情...

网友评论

      本文标题:消息队列处理秒杀/拼团活动的高并发问题

      本文链接:https://www.haomeiwen.com/subject/vmftnqtx.html