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

零基础学习RabbitMQ(3)--核心概念

我们在RabbitMQ的管理界面可以看到6个板块接下来我们逐步介绍每个板块

1. Overview 

Overview是一个整体的概要信息 ,显示的是MQ整体的信息这里包含了其它板块的一些信息 

下面有个Nodes代表的是节点信息

在 RabbitMQ 的管理控制台中,Nodes(节点) 代表 RabbitMQ 部署中的服务器实例 ,具体含义和作用如下:

RabbitMQ 支持单节点部署(仅 1 个 Node),也支持集群化部署(多个 Node 组成集群,共享队列、交换器等逻辑资源,提升可用性、吞吐量)。
“Nodes” 板块会展示 每个服务器节点的运行状态,帮助运维、开发人员监控节点健康度,排查性能或故障问题。

这里通过Name可以看到,是我们运行在云服务器上的实例

下方 Listening ports显示的是监听端口

 

  • 5672:客户端和服务器建立连接时的端口号,代码操作
  • 15672:管理界面端口号
  • 25672:集群使用的端口号

2. admin 

2.1 用户信息与操作

admin显示的是用户相关的信息,在这里可以看到用户的信息,可以看到当前有两个用户, 下面add auser可以添加用户

添加成功后会出现在表格上, 表格的四个列对应不同的含义:

  • name:用户名
  • tags:标签,即用户的身份权限
  • can access virtual hosts:可以访问的虚拟主机
  • has password:是否包含密码

点击对应的用户名可对该用户进行具体的设置:

2.2 虚拟机信息与操作 

 

在admin页面下右边还有几个标签,我们看virtual hosts (虚拟主机),点开可以看到虚拟主机的一些信息,也可也添加虚拟主机,,点击主机名可以进一步设置虚拟主机。

虚拟主机的基本定义:

在 RabbitMQ 中,虚拟主机(Virtual Host) 是一个逻辑上的隔离单位,它相当于一个独立的 “小型 RabbitMQ 服务器”。每个虚拟主机都有自己独立的队列、交换机、绑定关系、用户权限等资源,不同虚拟主机之间的资源完全隔离,互不影响。

虚拟主机的核心作用:

  • 资源隔离:不同业务线或项目可使用独立虚拟主机,避免因某个业务异常影响其他业务的消息服务。

  • 权限控制:可针对每个虚拟主机单独设置用户权限(如读写、配置权限),实现精细化的访问控制。

  • 环境隔离:方便区分开发、测试、生产等不同环境,例如通过不同虚拟主机隔离测试数据和线上数据。

3. Producer 和Consumer

Producer 和Consummer都是RabbitMQ Server的客户端,Producer为生产者,向RabbitMQ发送消息,Consumer 为消费者,从RabbitMQ接收消息

4. Connection 和Channel 

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

Channel的作用:

  • Channel可以让多个Producer共用一个Connection避免创建过多 TCP 连接,降低资源消耗。
  • 不同 Channel 之间相互隔离,一个 Channel 的异常不会影响其他 Channel,提高系统稳定性。 
  • 不同业务模块可使用独立 Channel,避免相互影响。

5. Queue 

Queue是RabbitMQ的内部对象,用于存储消息

6. Exchange 

 Exchange 是 RabbitMQ 中接收生产者发送消息的组件,负责根据路由规则将消息转发到一个或多个队列。它是实现生产者与消费者解耦的关键枢纽。

每个虚拟机有七个默认的内置交换机:

Exchange有几种核心的工作模式

  • Routing (路由):根据消息的routing_key与绑定键(binding key)的精确匹配进行路由。交换机类型为Direct。应用场景:按用户 ID、订单 ID 等分类的消息;不同重要性级别的日志(error、info、warning)。
  • Publish/subscribe(发布订阅):将接收到的消息广播到所有绑定的队列。交换机类型是fanout应用场景:系统通知、配置更新;监控数据分发到多个接收方。
  • Topic(通配符):通过routing_key与绑定键的模式匹配进行路由,支持通配符,交换机类型是topic。应用场景:复杂的消息分类(如电商系统中的order.create、user.profile.update);基于主题的事件总线。
  • Header(头部模式) :根据消息的headers 属性而非routing_key进行匹配,支持两种匹配规则:x-match=all:所有 headers 键值对必须匹配;x-match=any:任意一个 headers 键值对匹配即可。交换机类型是Headers。应用场景:基于元数据的消息过滤(如消息版本、设备类型)。替代复杂的 routing_key 匹配逻辑。

7. RabbitMQ工作流程 

 

  1. 建立连接:生产者(Producer)和消费者(Consumer)分别通过 Connection(连接)与 RabbitMQ 服务器(Broker)建立网络连接,一个 Connection 里可创建多个 channel(信道 ),后续操作通过 channel 开展,减少频繁建立连接的开销。
  2. 消息发送(生产者侧):生产者通过 channel 向 Broker 发送消息,消息先抵达 Exchange(交换机 )。生产者需指定消息发往哪个 Exchange,还可设置 routing_key(路由键 )等参数。
  3. 消息路由(Broker 侧):Exchange 依据自身类型(如 direct、fanout、topic 等 )和与 Queue(队列 )的绑定关系(Bindings),结合消息的 routing_key 等信息,将消息路由到一个或多个 Queue 中。不同 Virtual Host 是逻辑隔离的,Exchange、Queue 等资源分属不同 Virtual Host,路由在对应 Virtual Host 内的资源间进行。
  4. 消息存储与消费(消费者侧):消息进入 Queue 后存储,消费者通过 channel 从 Queue 中获取消息进行消费。多个消费者可订阅同一 Queue,按配置的分发策略(如轮询、公平分发等 )获取消息处理,消费完需进行确认(ACK),告知 Broker 消息已处理,避免重复消费 。 整个流程实现了生产者和消费者的解耦,借助 RabbitMQ 的各类组件灵活控制消息的路由、存储和消费,支撑异步通信、流量削峰等场景。 

 

相关文章:

  • 淘宝网的网站设计特色网络营销具有哪些特点
  • 做网站都需要什么qq引流推广软件哪个好
  • 暖色调网页设计网站网站建设需要多少钱?
  • 如何做一个简单的网站网络推广培训班哪家好
  • 做网站开发电脑配置营销策略有哪些4种
  • 石家庄网站建设专家市场营销产品推广策划方案
  • 打包上传到Linux部署并启动
  • C++ string类的操作
  • FFMPEG常用函数
  • 应用层协议 HTTP
  • 618风控战升级,瑞数信息“动态安全+AI”利剑出鞘
  • 无人机航电系统之语音通信技术篇
  • elk+filebeat收集springboot项目日志
  • 开疆智能CCLinkIE转ModbusTCP网关连接川崎机器人配置案例
  • 桥头守望者
  • WRF模式与Python融合技术在多领域中的应用及精美绘图;Python助力WRF自动化运行、WRF模式前后处理
  • Android Navigation 架构
  • 从虚拟机角度解释python3相对导入问题(下)
  • 创始人IP打造:知识付费领域破局的核心方法论
  • 服务器安装指南
  • PyEcharts教程(008):PyEchart仪表盘
  • PYTHON从入门到实践2-环境配置与字符串打印用法
  • ffmpeg环境配置
  • RDKit:药物化学和分子数据处理的强大工具库
  • 左神算法之单辅助栈排序算法
  • OGG双活集群,年故障时间=0分钟!