架构设计之MQ选型梳理

2022-03-24 10:53:19 浏览数 (1)

MQ的好处

在微服务架构中,消息队列带来哪些好处呢

代码语言:javascript复制
1. 改善写操作请求的响应时间:生产者写给队列即可返回,无需等待下游服务响应,缩短链路调用时间
2. 更容易进行伸缩:小功能解偶为独立服务,更容易伸缩,提升处理能力
3. 削峰填谷:控制消费速度,降低系统访问高峰压力
4. 隔离失败:消费者处理消息失败,不会传递给生产者
5. 降低耦合:上下游服务解藕
6. 保证最终一致性

常见MQ的模式

点对点模式

多个消息生产者向消息队列发送消息,多个消费者消费消息,每个消息只会被一个消费者消费

主题模式

多个消息消费者可以订阅同一个主题,每个消费者都可以收到这个主题的消息拷贝,然后按照自己的业务逻辑分别进行处理计算

常见开源的MQ

  • ActiveMQ:Apache ActiveMQ® is the most popular open source, multi-protocol, Java-based message broker.
  • RocketMQ:Apache RocketMQ™ is a unified messaging engine, lightweight data processing platform.
  • RabbitMQ: RabbitMQ is lightweight and easy to deploy on premises and in the cloud. It supports multiple messaging protocols. RabbitMQ can be deployed in distributed and federated configurations to meet high-scale, high-availability requirements.
  • Kafka:Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.

网上常见的对比:

Kafka VS RabbitMQ

从不同使用场景对比下Kafka、 RabbitMQ

如何保证消息顺序一致性

消息丢失

重复消费

参考

消息队列的介绍和常用开源消息队列的对比

RabbitMQ is the most widely deployed open source message broker.

More than 80% of all Fortune 100 companies trust, and use Kafka.

Flexible & Powerful Open Source Multi-Protocol Messaging

Apache RocketMQ™ is a unified messaging engine, lightweight data processing platform.

0 人点赞