readme
消息队列
什么是 MQ
MQ 的作用
主要有三方面作用:异步、解耦、削峰
异步
错开发送方和消费处理业务的时间点
作用:异步能提高系统的响应速度、吞吐量

解耦
作用:
- 服务之间进行解耦,才可以减少服务之间的影响。提高系统之间整体的稳定性以及可扩展性。
- 解耦后才可以实现数据分发。生产者发送一个消息后,可以由一个或多个消费者进行消费,并且消费者增加或减少对生产者没有影响。

削峰
作用:以稳定的系统资源应对突发的流量

常见的 MQ 产品
| 产品 | 优点 | 缺点 | 适合场景 |
|---|---|---|---|
| Kafka | 吞吐量非常大,性能非常好,集群高可用 | 会有丢数据的可能,功能比较单一 | 日志分析、大数据采集 |
| Rabbit MQ | 消息可靠性高,功能全面 | erlang 语言不好定制、吞吐量比较低 | 企业内部小规模服务调用 |
| Apache Pulsar | 基于 Bookeeper 构件,消息可靠性非常高 | 周边生态还有差距,目前使用的公司比较少 | 企业内部大规模服务调用 |
| Apache RocketMQ | 高吞吐、高性能、高可用。功能全面。客户端协议丰富。使用 Java 语言开发,方便定制。 | 服务加载比较慢 | 几乎全场景,特别适合金融场景 |