您的位置:首页 > 游戏 > 手游 > 垂直b2b电子商务平台有哪些_临淄58同城招聘信息网_个人网站推广怎么做_有什么公司要做推广的

垂直b2b电子商务平台有哪些_临淄58同城招聘信息网_个人网站推广怎么做_有什么公司要做推广的

2025/4/27 4:26:05 来源:https://blog.csdn.net/Yeeear/article/details/147218905  浏览:    关键词:垂直b2b电子商务平台有哪些_临淄58同城招聘信息网_个人网站推广怎么做_有什么公司要做推广的
垂直b2b电子商务平台有哪些_临淄58同城招聘信息网_个人网站推广怎么做_有什么公司要做推广的

文章目录

  • RabbitMQ 工作流程
    • 流程图
  • Producer 和 Consumer
  • Connecting 和 Channel
  • Virtual host
  • Queue
  • Exchange
  • RabbitMQ 工作流程

RabbitMQ 工作流程

流程图

image.png

RabbitMQ 就是一个生产者/消费者模型

  • Producer 就是生产者、Consumer 就是消费者
  • BrokerRabbitMQ 服务器
  • 生产者和消费者都是 RabbitMQ 服务器的客户端

生产者客户端需要通过 Connection(连接)来和 RabbitMQ 服务器进行通信;RabbitMQ 服务器要通过 Connection(连接)来和消费者客户端进行通信

  • 一个 Connection 有多个 channel
    • channel 就是消息传递的方式

BrockerRabbitMQ 服务器)

  • 一个 Brocker 可以有多个虚拟主机(虚拟机)
  • 多个虚拟机之间是逻辑上的隔离,并不是物理上的隔离
  • 每个虚拟机中,会有多个 Exchange(交换机)和 Queue(队列)
    • 消息是先发送到交换机,然后由交换机进行消息的分发,然后到达队列
      • RabbitMQ 服务器收到消息的时候,会带上一些标签(消息要发到哪里等等)
      • 随后交换机拿到这个消息之后,会根据标签或者一些设置的信息,把这个消息路由到一个或者两个队列
      • 如果没有匹配队列,交换机就会将此消息丢掉,或者返回给生产者

生产者和消费者使用的不是同一个 Connection

image.png

  • 这个图上的 Connection 显示的是客户端的连接
    • 包含生产者和消费者的连接

Producer 和 Consumer

  • Producer:生产者,是 RabbitMQ Server 的客户端,向 RabbitMQ 发送消息
  • Consumer:消费者,也是 RabbitMQ Server 的客户端,从 RabbitMQ 接收消息
  • Brocker:就是 RabbitMQ Server,主要是接收和收发消息

image.png

  • 生产者根据一定的逻辑创建消息,然后把消息发送到 Brocker 里面,发送的这个消息通常是带有一定的业务逻辑结构的

    • 比如生产者是一个订单服务,那发送的就是订单相关信息
      • 订单 id
      • 订单金额
      • 订单数量
      • 支付时间
    • 比如生产者是一个用户注册信息,那发送的就是用户相关信息
      • 用户 id
      • 用户年龄
      • 用户性别
  • 在生产者发送消息的时候,通常还会带上一些标签,

    • Brocker 在收到消息的时候,交换机会根据这些标签进行路由,最终把它放到队列里面
  • 消费的时候,标签就会被丢掉。消费者只会收到消息,并不知道其他信息

    • 消费者并不需要知道其他信息,只需要在收到消息之后,进行相应的逻辑处理即可

Connecting 和 Channel

image.png

  • Connection连接。是客户端和 RabbitMQ 服务器之间的一个 TCP 连接,这个连接是建立消息传递的基础,它负责传输客户端和服务器之间的所有数据和控制信息
  • Channel通道信道Channel 是在 Connection 之上的一个抽象层。在 RabbitMQ 中,一个 TCP 连接可以有多个 Channel,每个 Channel 都是独立的虚拟连接,消息的发送和接收都是基于 Channel

通道的主要作用是将消息的读写操作复用到一个 TCP 连接上,这样可以减少建立和关闭连接的开销,提高性能

Virtual host

  • Virtual host:虚拟主机。这是一个虚拟概念,它为消息队列提供了一种逻辑上的隔离机制,对于 RabbitMQ 而言,一个 BrokerServer 上可以存在多个 Virtual host。当多个不同的用户使用同一个 RabbitMQ Server 提供的服务时,可以虚拟划分出多个 vhost,每个用户在自己的 vhost 创建 exchange/queue

类似于 MySQLdatabase,是一个逻辑上的集合,一个 MySQL 服务器可以有多个 database

Queue

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

消息经过一系列的转发

  • 先通过 Channel 到达 Exchange
  • 然后通过 Exchange 到达 Queue
  • 最终存储的地方就是 Queue

image.png
队列和消费者的关系,是多对多的

  • 一个队列,可以由多个消费者来订阅
  • 一个消费者也可以订阅多个队列

Exchange

  • Exchange:交换机。message 到达 Brocker 的第一站,它负责接收生产者发送的消息,并根据特定的规则把这些消息路由到一个或多个 Queue

image.png

  • 消息可能会发给多个队列
  • 可能发给一个队列
  • 也可能没有队列

RabbitMQ 工作流程

image.png

  1. Producer 生产了一条消息
  2. Producer 连接到 RabbitMQ Brocker,建立一个连接(Connection),开启一个信道(Channel
  3. Producer 声明一个交换机(Exchange),路由消息
  4. Producer 声明一个队列(Queue),存放信息
  5. Producer 发送消息至 RabbitMQ Brocker
  6. RabbitMQ Brocker 接收消息,并存入相应的队列(Queue)里面,如果未找到相应的队列,则根据生产者的配置,选择丢弃或者退回给生产者

如果我们把 RabbitMQ 比作一个物流公司,那么它的一些核心概念可以这样理解:

  • Brocker 就类似整个物流公司的总部,它负责协调和管理所有的物流站点,确保包裹安全、高效地送达
  • Virtual Host 可以看做是物流公司为不同客户或业务部门划分的独立运营中心。每个运营中心都有自己的仓库(Queue),分拣规则(Exchange)和运输路线(ConnectionChannel),这样可以确保不同客户的包裹处理不会相互干扰,同时提供定制化的服务
  • Exchange 就像是站点里的分拣中心。当包裹到达时,分拣中心会根据包裹上的标签来决定这个包裹应该送往那个目的地(队列)。快递站点可能有不同类型的分拣中心,有的按照具体地址分拣,有的将包裹复制给多个收件人等
  • Queue 就是快递站点里的一个个仓库,用来临时存放等待派送的包裹。每个仓库都有一个或多个快递员(消费者)负责从仓库中取出包裹并派送给最终的收件人
  • Connection 就像是快递员与快递站点之间的通信线路,快递员需要通过这个线路来接收派送任务(消息)
  • Channel 就像是快递员在执行任务时使用的多个并行的通信线路。这样,快递员可以同时处理多个包裹,比如一遍派送包裹,一边接收新的包裹

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com