作者:禅与计算机程序设计艺术
1.简介
Broker 是一种消息中间件软件,它负责接收、处理、分发应用程序之间的消息。消息代理是支持多种协议(例如 AMQP、MQTT、STOMP)的通用消息传递组件。根据 Wikipedia 的定义,“消息代理是一个独立于发送方和接收方的网络服务,用于中转或路由消息。它通常被设计成运行在远程服务器上,并充当消息队列或中间人角色”。与其他消息队列系统不同的是,消息代理在消息的发送方和接收方之间提供了一个中介层。其作用主要包括:
- 负载均衡:消息代理可对入站连接进行负载均衡,即将多个客户端连接分配给不同的工作进程,以便它们可以共享相同的消息队列。这样做能够提高吞吐量和可用性。
- 消息过滤:消息代理可利用过滤规则对传入消息进行分类,并将特定类型的数据送往特定的目的地。例如,可设置过滤规则,只接受来自特定源的特定类型的消息。
- 身份验证与授权:消息代理可以在消息流经时提供身份验证和授权机制,确保数据安全。例如,可要求客户端提供用户名密码进行身份验证,再将特定用户拥有的资源授予权限。
- 数据转换:消息代理可对传入消息执行转换操作,如将 XML 文档转换为 JSON 格式,或者压缩文本或图像文件,从而节省网络带宽并提高效率。
- 消息存储:消息代理可将收到的消