【RabbitMQ】-- 核心概念
2026/7/24 21:12:37 网站建设 项目流程

文章目录

  • 1. RabbitMQ核心概念
    • 1.1 生产者Producer和消费者Consumer
    • 1.2 Connection和Channel
    • 1.3 Vrtual host
    • 1.4 Queue
    • 1.5 Exchange
      • 1.5.1 Rabbit MQ交换机的四种类型
      • 1.5.2 Routing Key 和 Biding Key
    • 1.6 AMQP协议

更多RabbitMQ相关知识: RabbitMQ专栏

1. RabbitMQ核心概念

RabbitMQ 是一个消息中间件,也是一个生产者消费者模型,它负责接收、存储并转发消息。

1.1 生产者Producer和消费者Consumer

Producer:消息的生产者,是RabbitMQ Server的客户端,向RabbitMQ发送消息。

Consumer:消息的消费者,是RabbitMQ Server的客户端,从RabbitMQ中接收消息。

1.2 Connection和Channel

1)Connection:连接。是客户端和 RabbitMQ 服务器之间的一个TCP 连接,这个连接是消息传递的基础,它负责传输客户端和服务器之间的所有数据和控制信息。

2)Channel:信道、通道。Channel 是在 Connection 之上的抽象层。在RabbitMQ中,一个TCP连接中(即一个 Connection 中),可以有多个 Channel,每个 Channel 都是独立的虚拟连接,消息的发送和接收都是基于 Channel 的。

channel 的主要作用是将消息的读写操作复用到同一个 TCP 连接上,这样就可以减少建立连接、关闭连接的开销,从而提高系统的性能。

1.3 Vrtual host

Vrtual host 是虚拟主机,这是一个虚拟概念。它为消息队列提供了一种逻辑上的隔离机制。对于 RabbitMQ 而言,一个 Broker Server 上可以存在多个 Vrtual host。

当多个不同的⽤⼾使⽤同⼀个 RabbitMQ Server 提供的服务时,可以虚拟划分出多个 Vrtual host,每个⽤⼾在⾃⼰的 Vrtual host 创建 exchange/queue 等 。类似于MySQL中数据库的概念。

1.4 Queue

Queue是队列。是RabbitMQ的内部对象,用于存储消息。

一个队列可以被多个消费者订阅。一个消费者可以订阅多个队列。

1.5 Exchange

Exchange 是交换机。 交换机是消息到达 Broker 的第一站,它负责接收生产者发送到RabbitMQ的消息,并根据特定的规则把这些消息路由到一个或多个队列中。

交换机只负责转发消息,不具备存储消息的能力,因此如果没有任何队列与交换机进行绑定,或者没有符合路由规则的队列,消息会丢失。

1.5.1 Rabbit MQ交换机的四种类型

不同的交换机类型就对应着不同的工作模式:
1.Fanout:广播。将消息交给所有绑定到交换机的队列(发布/订阅模式)。
2.Dirext:顶向。将消息交给符合指定 routing key 的队列(routing模式)。
3.Topic:通配符。将消息交给符合 routing pattern 的队列(通配符模式)。
4.Headers:headers类型的交换机不依赖于路由的匹配规则来路由消息,而是根据发送消息内容中的headers属性来进行匹配。这种交换机的性能很差,也不实用。

1.5.2 Routing Key 和 Biding Key

1)Routing Key:路由键。生产者将消息发送给交换机时,指定的一个字符串,用来告诉交换机应该如何处理这个消息.

2)Biding Key:绑定键。RabbitMQ 中通过 Binding(绑定键) 将交换器与队列关联起来, 在绑定的时候⼀般会指定⼀个Binding Key, 这样 RabbitMQ 就知道如何正确地将消息路由到队列了.

生产者在发送消息的时候会携带一个Routing Key,交换机就会将消息发送给 Routing Key 和 Binding Key 能匹配上的队列。

一个队列和交换机之间可以有多个 Binding Key,如果匹配上一个,交换机就会消息发给该队列。

1.6 AMQP协议

AMQP(Advanced Message Queuing Protocol)是一种高级消息队列协议, AMQP定义了一套确定的消息交换功能, 包括交换器(Exchange), 队列(Queue) 等。

这些组件共同工作, 使得生产者能够将消息发送到交换器, 然后由队列接收并等待消费者消费. AMQP还定义了一个网络协议, 允许客户端应用通过该协议与消息代理和AMQP模型进行交互通信。

RabbitMQ是AMQP协议的实现。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询