什么是MQ?
有什么作用?
MQ(Message Queue) 是一种跨进程的通信机制,用于消息传递。

最常见的常见是用户注册后,需要发送邮件通知,告知用户注册成功。传统的说法是,等待邮件发送成功后,再告知返回并告知用户。而实际上用户并不需要等到邮件发送这个过程,只要前面的处理完成后即可,邮件发送的过程可以异步实现,不需要即时获取。

所以实际上数据写入到注册系统后,注册系统就可以把其它操作交给消息队列MQ中然后立即返回给用户结果,由消息队列MQ异步地进行操作。

异步解耦是消息队列MQ的主要特点,主要的目的是减少请求响应时间和解耦。主要的使用场景就是将比较耗时而且不需要即时返回结果的操作作为消息放入消息队列。同时,由于使用了消息队列MQ,只需要保证消息格式不变,消息的发送方和接收方并不需要彼此联系,也不需要受对方的影响,即解耦合。
流量消峰也是消息队列MQ的常用场景,一般在秒杀或团队抢够活动中使用广泛。
在秒杀或团队抢购活动中,由于用于请求量很大,导致流量暴增,秒杀的应用在处理如此大的访问流量后,下游的通知系统无法承载海量的调用量,甚至导致系统崩溃等问题而发生漏通知的情况。为解决这些问题,可在应用和下游通知之间加入消息队列MQ。

秒杀处理流程
1.用户发起秒杀请求到业务系统
2.秒杀系统按照秒杀逻辑将满足条件的请求发送到消息队列MQ
3.下游的通知系统订阅消息队列MQ中的秒杀消息,再将秒杀成功的消息发送到响应的用户。
4.用户收到秒杀成功的通知。