“broker” 这个词在金融/日常语境中是“经纪人”,而在消息队列(MQ)中却成了“消息代理服务器”。它们看似无关,其实内核逻辑高度一致——都是 “中介”或“撮合者”。
在消息队列(如 RabbitMQ, Kafka, ActiveMQ)中,Broker 指的是 消息中间件的核心服务进程,它的行为完美复刻了“经纪人”的角色:
| 经纪人(现实) | MQ Broker(技术) | 对应关系 |
|---|---|---|
| 买家想买房子 | 生产者(Producer)想发消息 | 需求方 |
| 卖家有房子要卖 | 消费者(Consumer)想收消息 | 供给方 |
| 经纪人掌握房源库、客户意向 | Broker 维护 Topic/Queue、订阅关系 | 信息中枢 |
| 经纪人撮合交易 | Broker 将消息从 Producer 路由给 Consumer | 撮合传递 |
| 交易失败可重试、留记录 | 消息持久化、ACK、重试机制 | 可靠性保障 |
MQ Broker 不生产消息,也不消费消息,它只是确保消息从发送方安全、准确地送达接收方——这和房产经纪人“不拥有房子,但促成买卖”完全同构!
有趣的是:Kafka 虽然也做消息传递,但它更强调“日志流”,所以官方较少称其节点为 “broker”,但社区仍习惯这么叫(Kafka 确实有 kafka-broker 进程)。
所以,“Broker” 是最精准的术语——因为它强调了 “中介撮合 + 可靠交付” 的双重角色。