MQ-什么是MQ
**MQ是消息中间件 Message Queue。
MQ消息中间件理论实现产品包括:
Kafuka
RabbitMQ
RocketMQ
ActiveMQ
…
。
需要哪些特性:
1- api的发送和接收
2- MQ的高可用性
3- MQ的持久化
4- 延时发送、定时投递
5- 签收机制
6- spring整合
…
MQ使用场景
解决耦合调用。
防止大量线程同时请求一个服务。
需要异步操作。
消息可以延时处理。
抵御洪峰流量,保护主要业务,消峰。
消息放置消息池,防止数据洪流出现。
面向消息中间件(message-oriented middleware)mom来理解以上问题。
利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。
通过进行 消息传递 和 消息排队 模型在分布式环境下提供应用解耦,弹性伸缩,冗余存储,流量消峰,异步通信,数据同步等功能。
过程:发送者把消息发送给服务器,消息服务器将消息存放在若干队列/主题(topic)中,在合适的时候,消息服务器会将消息发送给接受者。这个过程中发生着和接受者是异步的,就是发送无需等待,且发发送者和接受者的生命周期也没有必然关系,尤其是发布pub订阅sub的模式下,也可以完成一对多的通信。
异步:消息发送者可以发送一个消息而无需等待响应。消息发送者将消息发送至一个虚拟的通道—topic/队列上。消息接受者则监听、订阅该通道。一条消息可能发送给一个或多个消息监听者,这些接受者都无需对消息发生着做出同步回应。整个过程都是异步的。
即是说,一个系统A想发送一个消息到到系统B,让系统B来处理,但是系统A不关注系统B是否已经处理,怎样处理,所有系统A将消息发送给MQ,B从MQ消费出来即可。