【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 为虚拟主机设置用户

相关推荐
m0_687399841 天前
telnet localhost 15672 RabbitMQ “Connection refused“ 错误表示目标主机拒绝了连接请求。
分布式·rabbitmq
陌上丨1 天前
生产环境分布式锁的常见问题和解决方案有哪些?
分布式
新新学长搞科研1 天前
【智慧城市专题IEEE会议】第六届物联网与智慧城市国际学术会议(IoTSC 2026)
人工智能·分布式·科技·物联网·云计算·智慧城市·学术会议
Ronin3051 天前
日志打印和实用 Helper 工具
数据库·sqlite·rabbitmq·文件操作·uuid生成
泡泡以安1 天前
Scrapy分布式爬虫调度器架构设计说明
分布式·爬虫·scrapy·调度器
没有bug.的程序员1 天前
RocketMQ 与 Kafka 深度对垒:分布式消息引擎内核、事务金融级实战与高可用演进指南
java·分布式·kafka·rocketmq·分布式消息·引擎内核·事务金融
上海锟联科技1 天前
250MSPS DAS 在地铁监测中够用吗?——来自上海锟联科技的工程实践
分布式·科技·分布式光纤传感·das解调卡·光频域反射·das
岁岁种桃花儿1 天前
深度解析DolphinScheduler核心架构:搭建高可用Zookeeper集群
linux·分布式·zookeeper
yxy___1 天前
达梦分布式集群DPC_影子和实体副本相互转换(DEM)_yxy
分布式·dem·影子副本
努力有什么不好1 天前
Hadoop3.2.2伪分布式搭建
大数据·hadoop·分布式