RabbitMQ的架构设计是怎样的?

2026-05-20 23:311阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计707个文字,预计阅读时间需要3分钟。

RabbitMQ的架构设计是怎样的?

%E2%80%9CBroker%E2%80%9D:%20RabbitMQ%E7%9A%84%E6%9C%8D%E5%8A%A1%E8%8A%82%E7%82%B9%E2%80%9BQueue%E2%80%9D:%20%E9%98%9F%E5%88%97%E3%80%81RabbitMQ%E5%86%85%E9%83%A8%E5%AF%B9%E8%B1%A1%E7%94%A8%E4%BA%8E%E5%AD%98%E5%82%A8%E6%B6%88%E6%81%AF%E6%B6%88%E6%81%AF%E5%AD%98%E5%82%A8%E5%9C%A8%E9%98%9F%E5%88%97%E7%94%9F%E4%BA%A7%E8%80%85%E6%8A%95%E9%80%92%E6%B6%88%E6%81%AF%E6%B6%88%E8%B4%B9%E8%80%85%E8%8E%B7%E5%8F%96%E6%B6%88%E6%81%AF

Broker:rabbitmq的服务节点

Queue:队列,是RabbitMQ的内部对象,用于存储消息。RabbitMQ中消息只能存储在队列中。生产者投递消息到队列,消费者从队列中获取消息并消费。多个消费者可以订阅同一个队列,这时队列中的消息会被平均分摊(轮询)给多个消费者进行消费,而不是每个消费者都收到所有的消息进行消费。(注意:RabbitMQ不支持队列层面的广播消费,如果需要广播消费,可以采用一个交换器通过路由Key绑定多个队列,由多个消费者来订阅这些队列的方式。

Exchange:交换器。生产者将消息发送到Exchange,由交换器将消息路由到一个或多个队列中。如果路由不到,或返回给生产者,或直接丢弃,或做其它处理。

RoutingKey:路由Key。生产者将消息发送给交换器的时候,一般会指定一个RoutingKey,用来指定这个消息的路由规则。这个路由Key需要与交换器类型和绑定键(BindingKey)联合使用才能最终生效。在交换器类型和绑定键固定的情况下,生产者可以在发送消息给交换器时通过指定RoutingKey来决定消息流向哪里。

Binding:通过绑定将交换器和队列关联起来,在绑定的时候一般会指定一个绑定键,这样RabbitMQ就可以指定如何正确的路由到队列了。

交换器和队列实际上是多对多关系。就像关系数据库中的两张表。他们通过BindingKey做关联(多对多关系表)。在投递消息时,可以通过Exchange和RoutingKey(对应BindingKey)就可以找到相对应的队列。

信道:信道是建立在Connection 之上的虚拟连接。当应用程序与Rabbit Broker建立TCP连接的时候,客户端紧接着可以创建一个AMQP 信道(Channel) ,每个信道都会被指派一个唯一的D。RabbitMQ 处理的每条AMQP 指令都是通过信道完成的。信道就像电缆里的光纤束。一条电缆内含有许多光纤束,允许所有的连接通过多条光线束进行传输和接收。

RabbitMQ的架构设计是怎样的?

本文共计707个文字,预计阅读时间需要3分钟。

RabbitMQ的架构设计是怎样的?

%E2%80%9CBroker%E2%80%9D:%20RabbitMQ%E7%9A%84%E6%9C%8D%E5%8A%A1%E8%8A%82%E7%82%B9%E2%80%9BQueue%E2%80%9D:%20%E9%98%9F%E5%88%97%E3%80%81RabbitMQ%E5%86%85%E9%83%A8%E5%AF%B9%E8%B1%A1%E7%94%A8%E4%BA%8E%E5%AD%98%E5%82%A8%E6%B6%88%E6%81%AF%E6%B6%88%E6%81%AF%E5%AD%98%E5%82%A8%E5%9C%A8%E9%98%9F%E5%88%97%E7%94%9F%E4%BA%A7%E8%80%85%E6%8A%95%E9%80%92%E6%B6%88%E6%81%AF%E6%B6%88%E8%B4%B9%E8%80%85%E8%8E%B7%E5%8F%96%E6%B6%88%E6%81%AF

Broker:rabbitmq的服务节点

Queue:队列,是RabbitMQ的内部对象,用于存储消息。RabbitMQ中消息只能存储在队列中。生产者投递消息到队列,消费者从队列中获取消息并消费。多个消费者可以订阅同一个队列,这时队列中的消息会被平均分摊(轮询)给多个消费者进行消费,而不是每个消费者都收到所有的消息进行消费。(注意:RabbitMQ不支持队列层面的广播消费,如果需要广播消费,可以采用一个交换器通过路由Key绑定多个队列,由多个消费者来订阅这些队列的方式。

Exchange:交换器。生产者将消息发送到Exchange,由交换器将消息路由到一个或多个队列中。如果路由不到,或返回给生产者,或直接丢弃,或做其它处理。

RoutingKey:路由Key。生产者将消息发送给交换器的时候,一般会指定一个RoutingKey,用来指定这个消息的路由规则。这个路由Key需要与交换器类型和绑定键(BindingKey)联合使用才能最终生效。在交换器类型和绑定键固定的情况下,生产者可以在发送消息给交换器时通过指定RoutingKey来决定消息流向哪里。

Binding:通过绑定将交换器和队列关联起来,在绑定的时候一般会指定一个绑定键,这样RabbitMQ就可以指定如何正确的路由到队列了。

交换器和队列实际上是多对多关系。就像关系数据库中的两张表。他们通过BindingKey做关联(多对多关系表)。在投递消息时,可以通过Exchange和RoutingKey(对应BindingKey)就可以找到相对应的队列。

信道:信道是建立在Connection 之上的虚拟连接。当应用程序与Rabbit Broker建立TCP连接的时候,客户端紧接着可以创建一个AMQP 信道(Channel) ,每个信道都会被指派一个唯一的D。RabbitMQ 处理的每条AMQP 指令都是通过信道完成的。信道就像电缆里的光纤束。一条电缆内含有许多光纤束,允许所有的连接通过多条光线束进行传输和接收。

RabbitMQ的架构设计是怎样的?