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

RabbitMQ的核心概念

RabbitMQ是一个消息中间件,也是一个生产者消费者模型,负责接收,存储和转发消息。

核心概念

Producer

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

Consumer

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

Broker

代表RabbitMQ Server,负责接收和转发消息

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

Connection

连接,是客⼾端和RabbitMQ服务器之间的⼀个TCP连接.这个连接是建⽴消息传递的基 础,它负责传输客⼾端和服务器之间的所有数据和控制信息。

Channel

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

通道的主要作⽤是将消息的读写操作复⽤到同⼀个TCP连接上,这样可以减少建⽴和关闭连接的开销,提⾼性能.

Virtual host

虚拟(主)机.这是⼀个虚拟概念.它为消息队列提供了⼀种逻辑上的隔离机制.对于 RabbitMQ⽽⾔,⼀个Broker Server上可以存在多个Virtual Host.当多个不同的⽤⼾使⽤同⼀个 RabbitMQ Server提供的服务时,可以虚拟划分出多个vhost,每个⽤⼾在⾃⼰的vhost创建 exchange/queue等

类似于mysql上的database,是一个逻辑上的集合,一个mysql服务器可以有多个database.

Queue

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

队列和消费者的关系是多对多的,一个队列可以有多个消费者订阅,一个消费者也可以订阅多个队列.

Exchange

交换机,是消息到达broker的第一站,它负责接收生产者发送的消息,并且根据特定的规则来将消息路由到一个或多个队列当中.

工作流程

AMQP

AMQP(Advanced Message Queuing Protocol)是⼀种⾼级消息队列协议,AMQP定义了⼀套确定的 消息交换功能,包括交换器(Exchange),队列(Queue)等.这些组件共同⼯作,使得⽣产者能够将消息发 送到交换器.然后由队列接收并等待消费者接收.AMQP还定义了⼀个⽹络协议,允许客⼾端应⽤通过该协议与消息代理和AMQP模型进⾏交互通信

RabbitMQ是遵从AMQP协议的,换句话说,RabbitMQ就是AMQP协议的Erlang的实现(当然RabbitMQ还 ⽀持STOMP2,MQTT2等协议).AMQP的模型结构和RabbitMQ的模型结构是⼀样的.

http://www.lryc.cn/news/428491.html

相关文章:

  • 【vSphere 7/8】深入浅出 vSphere 证书 Ⅰ—— 初识和了解 vSphere证书
  • 【云备份】服务端模块-热点管理
  • call apply bind特性及手动实现
  • pygame开发课程系列(5): 游戏逻辑
  • 嵌入式系统实时任务调度算法优化与实现
  • Java:枚举转换
  • Vue、react父子组件生命周期
  • HTML 基础要素解析
  • 开源的向量数据库Milvus
  • 设计模式-工厂方法
  • Flask SQLALchemy 的使用
  • Metasploit漏洞利用系列(一):MSF完美升级及目录结构深度解读
  • C/C++|经典代码题(动态资源的双重释放与「按值传递、按引用传递、智能指针的使用」)
  • 西北乱跑娃 -- linux使用笔记
  • Kubectl基础命令使用
  • 推荐编译器插件:Fitten Code 更快更好的AI助手
  • ArcGIS Pro基础:状态栏显示栏的比例尺设置和经纬度位置
  • 微前端架构入门
  • [LitCTF 2023]导弹迷踪
  • win10安装wsl2(ubuntu20.04)并安装 TensorRT-8.6.1.6、cuda_11.6、cudnn
  • 信息搜集--敏感文件Banner
  • Qt 学习第六天:页面布局
  • 利用队列收集单双击和长按按键
  • AI工作流:低代码时代的革新者,重塑手机问答类应用生态
  • 配置MySQL主从,配置MySQL主主 +keeplive高可用
  • 第5节:Elasticsearch核心概念
  • 存储实验:华为异构存储在线接管与在线数据迁移(Smart Virtualization Smart Migration 特性)
  • 职业院校云计算实训室建设方案全景剖析
  • VS Code安装与vue项目新建
  • 如何在Java中将数据库查询结果转换为枚举类型