什么是消息队列(Message Queue)
消息队列是一种进程间或者线程间的异步通信方式,使用消息队列,消息生产者在产生消息后,会把消息保存在消息队列中,直到消息消费者把它取走。使用消息队列消息发送者和接收者不需要同时和消息队列交互。而且使用消息队列,可以实现服务的解耦,提高系统的可靠性和扩展性。
为什么使用消息队列
- 解耦
- 异步
- 削峰
上面三个是十分核心的功能,除此之外还有一些别的场景。接下来详细介绍上面三个主要场景。
解耦
看这么个场景。A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?A 系统负责人几乎崩溃…
在这个场景中,A 系统跟其它各种乱七八糟的系统严重耦合,A 系统产生一条比较关键的数据,很多系统都需要 A 系统将这个数据发送过来。A 系统要时时刻刻考虑 BCDE 四个系统如果挂了该咋办?要不要重发,要不要把消息存起来?头发都白了啊!
如果使用 MQ,A 系统产生一条数据ÿ