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

相关推荐
文慧的科技江湖1 天前
开源 | 充电桩 运维 管理平台(IoT+运维工单平台)功能清单 - 慧知开源充电桩平台
运维·分布式·物联网·机器人·开源·充电桩平台
xrkhy1 天前
分布式之RabbitMQ的使用(2)
分布式·rabbitmq
观望过往1 天前
Spring Cloud构建分布式微服务架构的完整指南
分布式·spring cloud·架构
Z_z在努力1 天前
【rabbitmq 高级特性】全面详解RabbitMQ TTL (Time To Live)
分布式·rabbitmq
月夕·花晨1 天前
Gateway-断言
java·开发语言·分布式·spring cloud·微服务·nacos·sentinel
伊织code2 天前
Elasticsearch - 分布式搜索与分析引擎
大数据·分布式·elasticsearch
七夜zippoe2 天前
分布式 ID 生成方案实战指南:从选型到落地的全场景避坑手册(三)
分布式
董可伦2 天前
Hadoop HA 集群安装配置
大数据·hadoop·分布式
学习中的阿陈2 天前
Hadoop完全分布式配置
大数据·hadoop·分布式
weixin_436525072 天前
芋道源码 - 连接消息队列 rabbitmq
分布式·rabbitmq