来源:性能与架构前言
分布式系统中,如何在各个应用之间高效的进行通信,是系统设计中的一个关键。
使用 消息代理(message broker) 是一个优雅的解决方案。
RabbitMQ 就是一个被广泛应用的消息代理,遵循 AMQP协议。
接下来我们就了解一下:
Message Broker 概念
AMQP 协议的核心构成
消息转发的 4 种模式1. Message Broker
broker 是经纪人的意思,促成卖方、买方的交易,例如房产经纪人。
消息模型中,有消息的生产者、消费者,就相当于卖方、买方。
所以,也需要一个消息经纪人,这就引出了 message broker 的概念。
message broker 从生产者接收消息,再发送给消费者,这样,生产者、消费者可以完全隔离。
RabbitMQ 就是一个 message broker。2. AMQP
具体如何传递消息?要看使用的消息协议。
RabbitMQ 支持多种协议,其中最重要的是 AMQP(Advanced Message Queuing Protocol)。
AMQP 的概念模型很简单,包含3个部分:
Queue
Binding
Exchange
当一个消息发布到 RabbitMQ 后,首先到达 Exchange,然后 Exchange 把消息分配给 Queue,消费者从 Queue 中得到消息。
AMQP 是一个可编程的协议,我们可以自由配置 exchange, binding, queue。2.1 Queue 队列