什么是消息队列
消息队列(Message Queue,简称 MQ)
MQ是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。
为什么需要消息队列
如图·1 当一个用户在微信的京东买了一件商品,下单后,发起了一个支付请求,微信端支付成功;会向京东的订单系统发送一个支付完成的消息,订单系统接收到这个消息时,处理完积分等事宜(假设处理这些事情需要1秒),一秒后提示用户购买成功。这是一个用户的情况。当有几万,几十万的用户进行这个操作时,订单系统会收到几十万的支付消息,这时候怎么响应呢?

这个时候微信支付把消息发送到服务端时(图·2),服务端把消息放到一个队列里面(放到消息队列花费的时间要少的多),对于用户来说,仍然是提示购买成功,而且页面的反应速度并没有降低,在大并发的情况下页面的响应时间也不会降低。

还有一种是发布订阅的模式 图·3
用户订阅了一个主播,当这个主播开始直播时,就会群发给这些用户,某某主播开播了;这里也是一种消息队列。
