跳到主要内容

第1章 什么是消息队列

1.什么是消息队列MQ

MQ(message queue)翻译过来就是消息队列,队列的特点是先入先出,如同我们前面学过的ELK中使用Redis作为缓存一样,有了消息队列之后应用之间就不用强依赖,大家就可以把需要处理的消息存到消息队列里,然后有需要服务就从消息队列里取出并处理即可,这样也叫解耦。好处是异步处理缩短时间,如果某一个服务故障了也不影响其他的服务。

2.为什么需要使用MQ

2.1 流量削峰/流量抗压

image-20240219082024354.png

2.2 异步处理

image-20240219083117650.png

2.3 应用解耦

image-20240219084353993.png

3.常见消息队列软件分类

市面上常见的消息队列软件有很多种,几种常见的MQ对比如下:

RabbitMQRocketMQKafka
公司/社区Rabbit阿里Apache
开发语言ErlangJavaScala&Java
协议支持AMQP,XMPP,SMTP,STOMP自定义协议自定义协议
可用性
单机吞吐量一般非常高
消息延迟微秒级毫秒级毫秒以内
消息可靠性一般

更新: 2024-10-04 18:45:08