Msgbroker 概述
Msgbroker,也称为Message Broker(消息代理组件),是企业级应用系统中常用的消息中间件,主要应用于系统或组件之间消息的可靠、异步通讯。
应用消息中间件可以降低系统间耦合度,提高系统的吞吐量、可扩展性和高可用性。
Msgbroker主要包含五个核心组件,消息发布者(Publisher)、消息代理组件(Msgbroker)、消息订阅者(Subscriber)、消息类型(Message Type)、订阅关系(Binding)。
- 消息发布者,指发送消息的应用系统,一个应用系统可以发送一种或者多种消息,发布者发送消息到消息代理组件(Msgbroker)。
- 消息代理组件,即Msgbroker,负责接收发布者发送的消息,根据消息类型和订阅关系将消息分发投递到一个或多个消息订阅者。整个过程涉及消息过滤、订阅关系匹配、消息存储与恢复等核心功能。
- 消息订阅者,指订阅消息的应用系统,一个应用系统可以订阅一种或者多种消息,消息订阅者收到的消息来自消息代理组件(Msgbroker)。
- 消息类型,一种消息类型由TOPIC/eventcode唯一标识。
- 订阅关系,用来描述一种消息类型被消息订阅者订阅,订阅关系也被称为Binding。
通信原理
消息发布者(Publisher)与消息订阅者(Subscriber)一般是一对多的关系,即一个消息类型只由一个消息发布者发出,但可以被一个或者多个订阅者接收。
特点优势
- 为不同应用系统间提供可靠消息通信,降低系统间耦合度并提高整体架构的可扩展性和高可用性。
- 为不同应用系统间提供异步消息通信,提高系统吞吐量和性能。
- 发布者系统、消息代理组件、订阅者系统都支持集群水平扩展,可依据业务消息量动态部署计算节点。
- 支持事务型消息。
注意事项
- 消息订阅者收到的消息不保证有序,即收到消息的顺序与发布者发送消息的顺序可能会不一致。
- 消息投递策略为至少一次,即对于同一条消息消息订阅者可能收到多次,要求订阅者保证幂等特性。