第1章 什么是消息队列
1.什么是消息队列MQ
MQ(message queue)翻译过来就是消息队列,队列的特点是先入先出,如同我们前面学过的ELK中使用Redis作为缓存一样,有了消息队列之后应用之间就不用强依赖,大家就可以把需要处理的消息存到消息队列里,然后有需要服务就从消息队列里取出并处理即可,这样也叫解耦。好处是异步处理缩短时间,如果某一个服务故障了也不影响其他的服务。
2.为什么需要使用MQ
2.1 流量削峰/流量抗压
2.2 异步处理
2.3 应用解耦
3.常见消息队列软件分类
市面上常见的消息队列软件有很多种,几种常见的MQ对比如下:
RabbitMQ | RocketMQ | Kafka | |
---|---|---|---|
公司/社区 | Rabbit | 阿里 | Apache |
开发语言 | Erlang | Java | Scala&Java |
协议支持 | AMQP,XMPP,SMTP,STOMP | 自定义协议 | 自定义协议 |
可用性 | 高 | 高 | 高 |
单机吞吐量 | 一般 | 高 | 非常高 |
消息延迟 | 微秒级 | 毫秒级 | 毫秒以内 |
消息可靠性 | 高 | 高 | 一般 |
更新: 2024-10-04 18:45:08