一、官方描述:
MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。
应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。
消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。
排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。
二、通俗理解
MQ( Message Queue) ,即消息队列是在消息的传输过程中保存消息的容器。
通俗的说, 就是一个容器, 你把消息丢进去, 不需要立即处理。 然后有个程序去从你的容器里面把消息一条条读出来处理。
一般用于应用系统解耦、 消息异步分发, 能够提高系统吞吐量。
MQ的产品有很多, 有开源的, 也有闭源, 比如ZeroMQ、RabbitMQ、 ActiveMQ等。
三、应用场景
(PS:Broker-MQ服务端)
1、分布式事务
为面向服务架构提供分布式事务支持;
保证全局数据的一致性;
2、数据复制
利用MQ将数据从源头复制到多个目的地;
满足搜索、离线分析和分表规则变化等需求;
3、日志同步
应用通过可靠异步方式将日志同步到MQ;
可以对日志做实时或离线分析;
4、延迟队列
把MQ当做可靠的延迟队列;
分布式环境下的定时器;
5、广播通知
可靠的集群内广播通知;
用于通知Cache失效等事件;