
RabbitMQ 就是一个生产者/消费者模型
Producer 就是生产者、Consumer 就是消费者Broker 是 RabbitMQ 服务器RabbitMQ 服务器的客户端生产者客户端需要通过 Connection(连接)来和 RabbitMQ 服务器进行通信;RabbitMQ 服务器要通过 Connection(连接)来和消费者客户端进行通信
Connection 有多个 channel channel 就是消息传递的方式Brocker(RabbitMQ 服务器)
Brocker 可以有多个虚拟主机(虚拟机)Exchange(交换机)和 Queue(队列) RabbitMQ 服务器收到消息的时候,会带上一些标签(消息要发到哪里等等)生产者和消费者使用的不是同一个 Connection

Connection 显示的是客户端的连接 Producer:生产者,是 RabbitMQ Server 的客户端,向 RabbitMQ 发送消息Consumer:消费者,也是 RabbitMQ Server 的客户端,从 RabbitMQ 接收消息Brocker:就是 RabbitMQ Server,主要是接收和收发消息
Brocker 里面,发送的这个消息通常是带有一定的业务逻辑结构的
ididBrocker 在收到消息的时候,交换机会根据这些标签进行路由,最终把它放到队列里面
Connection:连接。是客户端和 RabbitMQ 服务器之间的一个 TCP 连接,这个连接是建立消息传递的基础,它负责传输客户端和服务器之间的所有数据和控制信息Channel:通道,信道。Channel 是在 Connection 之上的一个抽象层。在 RabbitMQ 中,一个 TCP 连接可以有多个 Channel,每个 Channel 都是独立的虚拟连接,消息的发送和接收都是基于 Channel 的通道的主要作用是将消息的读写操作复用到一个 TCP 连接上,这样可以减少建立和关闭连接的开销,提高性能
Virtual host:虚拟主机。这是一个虚拟概念,它为消息队列提供了一种逻辑上的隔离机制,对于 RabbitMQ 而言,一个 BrokerServer 上可以存在多个 Virtual host。当多个不同的用户使用同一个 RabbitMQ Server 提供的服务时,可以虚拟划分出多个 vhost,每个用户在自己的 vhost 创建 exchange/queue 等类似于
MySQL的database,是一个逻辑上的集合,一个MySQL服务器可以有多个database
Queue:队列。RabbitMQ 的内部对象,用于存储消息消息经过一系列的转发
Channel 到达 ExchangeExchange 到达 QueueQueue
队列和消费者的关系,是多对多的
Exchange:交换机。message 到达 Brocker 的第一站,它负责接收生产者发送的消息,并根据特定的规则把这些消息路由到一个或多个 Queue 中

Producer 生产了一条消息Producer 连接到 RabbitMQ Brocker,建立一个连接(Connection),开启一个信道(Channel)Producer 声明一个交换机(Exchange),路由消息Producer 声明一个队列(Queue),存放信息Producer 发送消息至 RabbitMQ BrockerRabbitMQ Brocker 接收消息,并存入相应的队列(Queue)里面,如果未找到相应的队列,则根据生产者的配置,选择丢弃或者退回给生产者如果我们把
RabbitMQ比作一个物流公司,那么它的一些核心概念可以这样理解:
Brocker 就类似整个物流公司的总部,它负责协调和管理所有的物流站点,确保包裹安全、高效地送达Virtual Host 可以看做是物流公司为不同客户或业务部门划分的独立运营中心。每个运营中心都有自己的仓库(Queue),分拣规则(Exchange)和运输路线(Connection 和 Channel),这样可以确保不同客户的包裹处理不会相互干扰,同时提供定制化的服务Exchange 就像是站点里的分拣中心。当包裹到达时,分拣中心会根据包裹上的标签来决定这个包裹应该送往那个目的地(队列)。快递站点可能有不同类型的分拣中心,有的按照具体地址分拣,有的将包裹复制给多个收件人等Queue 就是快递站点里的一个个仓库,用来临时存放等待派送的包裹。每个仓库都有一个或多个快递员(消费者)负责从仓库中取出包裹并派送给最终的收件人Connection 就像是快递员与快递站点之间的通信线路,快递员需要通过这个线路来接收派送任务(消息)Channel 就像是快递员在执行任务时使用的多个并行的通信线路。这样,快递员可以同时处理多个包裹,比如一遍派送包裹,一边接收新的包裹