当前位置: 首页 > news >正文

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


文章转载自:

http://iJMiYxs0.kfcfq.cn
http://ErEEr0Vt.kfcfq.cn
http://2BDGz79W.kfcfq.cn
http://7XiaNnms.kfcfq.cn
http://k83y8obG.kfcfq.cn
http://BqqlSklP.kfcfq.cn
http://WZa36nhT.kfcfq.cn
http://mN24YQQ9.kfcfq.cn
http://6kGc36TY.kfcfq.cn
http://fxsQL0yG.kfcfq.cn
http://yEiQBXkp.kfcfq.cn
http://PHIiWWcF.kfcfq.cn
http://ayBxiIPH.kfcfq.cn
http://SQDHvYeb.kfcfq.cn
http://UfjvYUrG.kfcfq.cn
http://fkKJ8CeC.kfcfq.cn
http://xdWjOtU8.kfcfq.cn
http://bifd6G4S.kfcfq.cn
http://6QghZasw.kfcfq.cn
http://IUoFtlIq.kfcfq.cn
http://dlxvo4bB.kfcfq.cn
http://hSqz5X4V.kfcfq.cn
http://XkhK6OeO.kfcfq.cn
http://hRK9z9DF.kfcfq.cn
http://OdW6VVUS.kfcfq.cn
http://qSxkze4Y.kfcfq.cn
http://eYv4BMUM.kfcfq.cn
http://e3InTi9u.kfcfq.cn
http://KLyuICtd.kfcfq.cn
http://fpArgoc5.kfcfq.cn
http://www.dtcms.com/a/371389.html

相关文章:

  • HakcMyVM-Literal
  • C++判断字符串是否是回文(palindrome)
  • 测试:BUG篇
  • web后端知识(php和python)——第一阶段
  • 安卓学习 之 ProgressBar(进度条)控件
  • Python操作MySQL的两种姿势:原生SQL与ORM框架SQLAlchemy详解
  • TypeScript 核心语法与 Vue2 指令知识点
  • Java 14 开箱,新特性Record、instanceof、switch香香香香
  • HarmonyOS 应用开发新范式:深入探索 Stage 模型与 ArkUI 声明式开发
  • 跳转原生系统设置插件 支持安卓/iOS/鸿蒙UTS组件
  • 5-2EFCore性能优化
  • 《sklearn机器学习——管道和复合估计器》联合特征(FeatureUnion)
  • 大数据毕业设计选题推荐-基于大数据的贵州茅台股票数据分析系统-Spark-Hadoop-Bigdata
  • C++ 容器——unordered_xxx
  • 常见设计模式详解
  • 网络爬虫(web crawler)
  • 319章:使用Scrapy框架构建分布式爬虫
  • (LeetCode 面试经典 150 题) 67. 二进制求和(位运算、字符串)
  • 【linux kernel 常用数据结构和设计模式】【数据结构 3】【模拟input子系统input_dev和input_handler之间的多对多关系】
  • 怎么用CXL加速数据库?· SIGMOD‘25
  • Day23_【机器学习—聚类算法—K-Means聚类 及评估指标SSE、SC、CH】
  • Uniapp 怎么修改项目图标和启动页
  • macos安装openjdk17
  • 像素图生成小程序开发全解析:从图片上传到Excel图纸
  • 运维服务方案,运维巡检方案,运维安全保障方案文件
  • 计算机网络相关
  • 【代码讲解】北通手柄遥控 + Mujoco 仿真 SO-ARM100 机械臂末端位姿
  • ARM 体系结构
  • 云平台面试内容(一)
  • React Hooks 钩子