RocketMQ学习系列之——MQ入门概念
一、什么是MQ
MQ(Message Queue,消息队列)是一种能够实现跨进程消息传输,并且消息缓存符合队列特性的组件。
二、MQ的作用
异步:消息发送方无需等待消息接收方收到消息,发送方将消息成功发送到 MQ 之后即可无阻塞地执行后续业务。
解耦:消息发送方无需关心谁会收到消息,消息接收方也无需关心消息是谁发送的。
削峰:当消息出现瞬时突发流量时,MQ 会进行缓存,接收方可以在一段时间内以较为平稳的速度消费消息。
三、主流MQ产品对比
优点 | 缺点 | 适用场景 | |
Kafka | 吞吐量很大,性能好,服务高可用 | 可能会丢数据,功能相对单一 | 日志采集、大数据场景 |
RabbitMQ | 消息可靠性高,功能全面 | erlang语言小众,不方便定制。吞吐量较低 | 企业内部小规模服务调用 |
Pulsar | 消息可靠性高 | 周边生态较为薄弱,用的公司较少 | 企业内部大规模服务调用 |
RocketMQ | 吞吐量大,性能好,服务高可用。功能全面,客户端协议丰富。使用Java开发,方便定制 | 服务启动加载较慢 | 几乎所有应用系统,尤其是金融领域 |
RocketMQ 历经阿里多年双11考验,在保证消息可靠性和服务高可用的同时,具有很好的性能。此外,RocketMQ 的高级功能也在不断拓展和完善,比如广播消费、延迟队列、死信队列、事务消息等。