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

RabbitMQ 快速上手

RabbitMQ 核心概念

1.专业术语

1.Producer 和 Consumer

Producer 生产者,就是 RabbitMQ Server 的客户端,向 RabbitMQ 发送消息

Consumer 消费者,也是 RabbitMQ Server 的客户端,从 RabbitMQ 接收消息

Broker 就是 RabbitMQ Server,主要是接受和发送消息

~ 生产者创建消息,然后发布到 RabbitMQ 中.在实际应用中,消息一般是一个带有一定业务逻辑的数据,比如 JSON 字符串.消息可以带有一定的标签,RabbitMQ 会根据标签进行路由,把消息发送给对应的消费者

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

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

2.Connection 和 Channel

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

Channel 通道 / 信道. Channel 是在 Connection 之上的一个抽象层.在 RabbitMQ 中,一个 TCP 连接可以有多个 Channel,每个 Channel 都是独立的虚拟连接.消息的发送和接收都是基于 Channel 

Channel 的主要作用,是将消息的读写操作复用到同一个 TCP 连接上,这样可以减少建立和关闭连接的开销,提高性能

3.Virtual Host

Virtual Host 虚拟主机. 是一个虚拟概念,为消息队列提供了一种逻辑上的隔离机制

对于 RabbitMQ,一个 BrokerServer 上可以存在多个 VirtualHost.当多个不同用户使用同一个 RabbitMQ Server 提供服务时,可以虚拟划分出多个 VirtualHost,每个用户在自己的 VirtualHost 创建 exchange / queue 等

类似于 MySQL 的 database,是一个逻辑上的集合

一个 MySQL 服务器可以有多个 database

一个 BrokerServer 可以有多个 VirtualHost

4.Exchange

Exchange 交换机. message 到达 Broker 的第一站,负责接收生产者发送的消息,并根据特定的规则把这些消息路由到一个或多个 queue 中

exchange 起到了消息路由的作用,根据类型和规则确定如何转发接收到的消息

5.Queue

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

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

2.工作流程

1. Producer 生产一条消息

2. Producer 连接到 Broker,建立一个连接(connection),开启一个信道(channel)

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

4. Producer 声明一个队列(queue),存放消息

5. Producer 发送消息至 Broker

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

AMQP

AMQP 是一种高级消息队列协议,定义了一套确定的消息交换功能,包括交换机,队列等

这些组件共同工作,使生产者能将消息发送给交换机,然后由队列接收并等待消费者接收

AMQP 还定义了一个网络协议,允许客户端通过该协议与消息代理和 AMQP 模型进行交互通信

RabbitMQ 遵从 AMQP 协议  =>  RabbitMQ 是 AMQP 协议的 Erlang 的实现

RabbitMQ 还支持 STOMP2,MQTT2等协议

Web界面操作

用户相关操作

虚拟主机相关操作

http://www.xdnf.cn/news/8663.html

相关文章:

  • 【RichTextEditor】 【分析2】RichTextEditor设置文字内容背景色
  • 第八章:数据库查询优化
  • 上升沿计数 stm32 中断
  • 用service 和 SCAN实现sqlplus/jdbc连接Oracle 11g RAC时负载均衡
  • 在Mac中使用pyenv管理Python版本:从安装到虚拟环境的全流程指南
  • 物联网网关保障沼气发电站安全运行的关键技术解析
  • 文章记单词 | 第111篇(六级)
  • 江科大ADC模数转换hal库实现
  • C++构造函数和析构函数
  • 静态库的使用方法
  • BaseDao指南
  • 生成模型——变分自动编码器(Variational Autoencoders, VAEs)
  • 项目管理进阶:111页 详解华为业务变革框架及战略级项目管理【附全文阅读】
  • LaTeX学习路线
  • 63. 不同路径 II
  • 2.2.1 05年T1复习
  • 1.2 TypeScript 与 JavaScript 的区别
  • Java:堆排序
  • Git教程
  • 龙虎榜——20250523
  • 地形生成原理与实现
  • 【Java】Java元注解
  • 【操作系统】-4.1.8文件共享
  • Unitree 5. GO1 3D打印配件
  • 高通usecase理解
  • 【三维重建】【3DGS系列】【深度学习】3DGS的理论基础知识之如何形成高斯椭球
  • 【递归、搜索与回溯算法】专题三:穷举vs暴搜vs深搜vs回溯vs剪枝
  • 第十节第八部分:Lambda表达式、Lambda表达式的省略规则
  • YOLOV11网络图和数据增强
  • PotPlayer 4K 本地万能影音播放器