全部产品
云市场

什么是消息队列

更新时间:2019-10-10 14:04:30

消息队列(Message Queue)产品,作为一种典型的消息代理组件(Message Broker),是企业级应用系统中常用的消息中间件,主要应用于分布式系统或组件之间的消息通讯,提供具有可靠、异步和事务等特性的消息通信服务。应用消息代理组件可以降低系统间耦合度,提高系统的吞吐量、可扩展性和可用性。

消息队列产品主要涉及五个核心角色,消息发布者(Publisher)、消息代理组件(Message Broker)、消息订阅者(Subscriber)、消息类型(Message Type)和订阅关系(Binding),具体描述如下:

  • 消息发布者:指发送消息的应用系统。一个应用系统可以发送一种或者多种类型的消息,消息发布者将消息发送到消息代理组件。
  • 消息代理组件:负责接收发布者发送的消息,根据消息类型和消息订阅元数据将消息分发投递到一个或多个消息订阅者。整个过程涉及消息类型校验、消息持久化存储、消息订阅关系匹配、消息投递和消息恢复等核心功能。
  • 消息订阅者:指订阅消息的应用系统。一个应用系统可以订阅一种或者多种消息类型,消息订阅者收到的消息来自消息代理组件。
  • 消息类型:一种消息类型由消息主题 TOPIC 和消息分类码 EVENTCODE 唯一标识。
  • 消息订阅:用来描述一种消息类型被哪些订阅者订阅,订阅元数据也被称为 Binding。

优势

  • 可为不同应用系统间提供可靠的消息通信,降低系统间耦合度并提高整体架构的可扩展性和可用性。
  • 可为不同应用系统间提供异步消息通信,提高系统吞吐量和性能。
  • 发布者系统、消息代理组件以及订阅者系统均支持集群水平扩展,可依据业务消息量动态部署计算节点。
  • 支持事务型消息,保证消息与本地数据库事务的一致性。

实现原理

消息发布者消息订阅者 是一对多的关系,即一个消息类型由一个消息发布者发出,但可以被一个或者多个订阅者接收。

message queue

注意事项

  • 消息订阅者收到的消息不保证有序,即收到消息的顺序与发布者发送消息的顺序可能会不一致。
  • 消息投递策略为 至少一次(At-least-once),即对于同一条消息消息订阅者可能收到多次,要求订阅者保证消息处理幂等特性。