【RabbitMQ】---RabbitMQ 工作流程和 web 界面介绍

界⾯上的导航栏共分 6 部分,这 6 部分分别是什么意思呢,我们先看看 RabbitMQ 的⼯作流程

当你要发送⼀个邮件时,你把你的邮件放到邮局,邮局接收邮件,并通过邮递员送到收件⼈的⼿上.

按照这个逻辑, Producer 就类似邮件发件⼈. Consumer 就是收件⼈, RabbitMQ 就类似于邮局

专业术语

Producer 和 Consumer

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

• ⽣产者(Producer)创建消息,然后发布到 RabbitMQ 中.在实际应⽤中,消息通常是⼀个带有⼀定业务逻辑结构的数据,⽐如 JSON 字符串.消息可以带有⼀定的标签 ,RabbitMQ 会根据标签进⾏路由,把消息发送给感兴趣的消费者(Consumer).

• 消费者连接到 RabbitMQ 服务器,就可以消费消息了,消费的过程中,标签会被丢掉.消费者只会收到 消息,并不知道消息的⽣产者是谁,当然消费者也不需要知道.

• 对于 RabbitMQ 来说,⼀个 RabbitMQ Broker 可以简单地看作⼀个 RabbitMQ 服务节点,或者 RabbitMQ 服务实例.⼤多数情况下也可以将⼀个 RabbitMQ Broker 看作⼀台 RabbitMQ 服务器

Connection 和 Channel

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

**Channel:**通道,信道.Channel 是在 Connection 之上的⼀个抽象层.在 RabbitMQ 中,⼀个 TCP 连接可以有多个 Channel ,每个 Channe l都是独⽴的虚拟连接.消息的发送和接收都是基于 Channel 的.通道的主要作⽤是将消息的读写操作复⽤到同⼀个 TCP 连接上,这样可以减少建⽴和关闭连接的开销,提⾼性能.

Virtual host

**Virtual host:**虚拟主机.这是⼀个虚拟概念.它为消息队列提供了⼀种逻辑上的隔离机制.对于 RabbitMQ ⽽⾔,⼀个 BrokerServer 上可以存在多个 Virtual Host.当多个不同的⽤户使⽤同⼀个 RabbitMQ Server 提供的服务时,可以虚拟划分出多个 vhost,每个⽤户在⾃⼰的 vhost 创建 exchange/queue 等 类似MySQL的 "database" ,是⼀个逻辑上的集合.⼀个MySQL服务器可以有多个database.

Queue

Queue:队列,是 RabbitMQ 的内部对象,⽤于存储消息.

多个消费者,可以订阅同⼀个队列

Exchange

Exchange:交换机. message 到达 broker 的第⼀站,它负责接收⽣产者发送的消息,并根据特定的规则 把这些消息路由到⼀个或多个 Queue 列中.Exchange 起到了消息路由的作⽤,它根据类型和规则来确定如何转发接收到的消息. 类似于发快递之后,物流公司怎么处理呢,根据咱们的地址来分派这个快递到不同的站点,然后再送到收件⼈⼿⾥.这个分配的⼯作,就是交换机来做的

⼯作流程

理解了上⾯的概念之后,再来回顾⼀下这个图,来看 RabbitMQ 的⼯作流程

  1. Producer ⽣产了⼀条消息

  2. Producer 连接到 RabbitMQBroker,建⽴⼀个连接(Connection),开启⼀个信道(Channel)

  3. Producer 声明⼀个交换机(Exchange), 路由消息

  4. Producer 声明⼀个队列(Queue), 存放信息

  5. Producer 发送消息⾄ RabbitMQ Broker

  6. RabbitMQ Broker 接收消息,并存⼊相应的队列(Queue)中,如果未找到相应的队列,则根据⽣产者 的配置,选择丢弃或者退回给⽣产者.

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

  1. Broker 就类似整个物流公司的总部,它负责协调和管理所有的物流站点,确保包裹安全、⾼效地送 达.

  2. Virtual Host可以看作是物流公司为不同的客户或业务部⻔划分的独⽴运营中⼼.每个运营中⼼都有⾃⼰的仓库(Queue),分拣规则(Exchange)和运输路线(Connection和Channel),这样可以确保 不同客户的包裹处理不会相互⼲扰,同时提供定制化的服务

  3. Exchange就像是站点⾥的分拣中⼼.当包裹到达时,分拣中⼼会根据包裹上的标签来决定这个包裹 应该送往哪个⽬的地(队列).快递站点可能有不同类型的分拣中⼼,有的按照具体地址分拣,有的将 包裹复制给多个收件⼈等.

  4. Queue 就是快递站点⾥的⼀个个仓库,⽤来临时存放等待派送的包裹.每个仓库都有⼀个或多个快 递员(消费者)负责从仓库中取出包裹并派送给最终的收件⼈.

  5. Connection 就像是快递员与快递站点之间的通信线路.快递员需要通过这个线路来接收派送任务 (消息).

  6. Channel就像是快递员在执⾏任务时使⽤的多个并⾏的通信线路.这样,快递员可以同时处理多个 包裹,⽐如⼀边派送包裹,⼀边接收新的包裹

web 界⾯操作

用户相关操作

添加⽤户

点击 Admin ->Add user

设置账号密码及权限

更新/删除用户

点击要操作的⽤户,查看⽤户详情

找到并点击 Update/Delete 即可进行更新或删除

设置对虚拟机的操作权限
退出当前⽤户

虚拟主机相关操作

创建虚拟主机

在 Admin 标签⻚下,点击右侧 Virtual Hosts -> Add a new virtual host 设置虚拟主机名称

观察设置结果

为虚拟主机设置用户

点击虚拟主机进入详情页面,选择用户后点击 Set permission 为虚拟主机设置用户

相关推荐
安卓开发者7 小时前
鸿蒙NEXT应用数据持久化全面解析:从用户首选项到分布式数据库
数据库·分布式·harmonyos
kong@react10 小时前
springboot项目详细配置rabbitmq及使用rabbitmq完成评论功能
spring boot·rabbitmq·java-rabbitmq
JAVA学习通10 小时前
【RabbitMQ】如何在 Ubuntu 安装 RabbitMQ
分布式·rabbitmq
Lansonli10 小时前
大数据Spark(六十三):RDD-Resilient Distributed Dataset
大数据·分布式·spark
BYSJMG11 小时前
计算机毕业设计选题:基于Spark+Hadoop的健康饮食营养数据分析系统【源码+文档+调试】
大数据·vue.js·hadoop·分布式·spark·django·课程设计
JAVA学习通11 小时前
【RabbitMQ】----RabbitMQ 的7种工作模式
分布式·rabbitmq
励志成为糕手12 小时前
Hadoop进程:深入理解分布式计算引擎的核心机制
大数据·hadoop·分布式·mapreduce·yarn
掘金-我是哪吒12 小时前
分布式微服务系统架构第170集:Kafka消费者并发-多节点消费-可扩展性
分布式·微服务·架构·kafka·系统架构
何双新12 小时前
第 3 讲:KAFKA生产者(Producer)详解
分布式·kafka·linq