消息队列
2018-12-03 21:46
232 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ilveyou0116/article/details/84779657
什么是消息队列
消息队列(Message Queue,简称 MQ)
MQ是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。
为什么需要消息队列
如图·1 当一个用户在微信的京东买了一件商品,下单后,发起了一个支付请求,微信端支付成功;会向京东的订单系统发送一个支付完成的消息,订单系统接收到这个消息时,处理完积分等事宜(假设处理这些事情需要1秒),一秒后提示用户购买成功。这是一个用户的情况。当有几万,几十万的用户进行这个操作时,订单系统会收到几十万的支付消息,这时候怎么响应呢?
图·1这个时候微信支付把消息发送到服务端时(图·2),服务端把消息放到一个队列里面(放到消息队列花费的时间要少的多),对于用户来说,仍然是提示购买成功,而且页面的反应速度并没有降低,在大并发的情况下页面的响应时间也不会降低。
图·2还有一种是发布订阅的模式 图·3
用户订阅了一个主播,当这个主播开始直播时,就会群发给这些用户,某某主播开播了;这里也是一种消息队列。
图·3相关文章推荐
- 使用MongoDB实现消息队列的异步消息功能
- 消息队列之RabbitMQ原理
- 消息队列系列(一):.Net平台下的消息队列介绍
- 【消息队列MQ】各类MQ比较
- 用SendNotifyMessage代替PostMessage避免消息丢失(WIN7下消息队列的默认长度是10000,队列满后消息将被丢弃)
- python中Queue消息队列put()后直接判断是否为空的问题
- 消息队列RabbitMQ和ActiveMQ的生产者流量控制
- rabbitMQ 消息队列
- 【消息队列MQ】各类MQ比较
- Redis消息队列示例
- Java Jedis操作Redis示例(二)——list 生产者/消费者模式实现消息队列
- 转载 进程间通信之消息队列
- 分布式消息队列kafka
- Handler详解系列(三)——在子线程中给主线程的消息队列发送消息
- 消息队列原理
- 【原创】老生常谈——利用消息队列处理分布式事务
- apache activemq (消息队列)入门部署demo
- linux系统增加消息队列长度MSGMNI
- windows消息和消息队列详解
- 消息队列设计的精髓基本都藏在本文里了