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

RabbitMQ概念详解

什么是消息队列?

消息队列是一种在应用程序之间传递消息的技术。它提供了一种异步通信模式,允许应用程序在不同的时间处理消
息。消息队列通常用于解耦应用程序,以便它们可以独立地扩展和修改。在消息队列中,消息发送者将消息发送到
队列中,然后消息接收者从队列中接收消息。这种模式允许消息接收者按照自己的节奏处理消息,而不必等待消息
发送者处理完消息。常见的消息队列包括RabbitMQKafkaActiveMQ等。

接下来主要先描述RabbitMQ
在这里插入图片描述

主要模块有Connections, Channels ,Exchanges,Queues和Admin
其中Admin主要是用来管理RabbitMQ的服务资源,可以用来创建用户;

Exchange和Queue是一组传递消息的核心组件;
在这里插入图片描述
消息都是通过Queue队列传递;典型的FIFO的队列数据结构。
Exchange交换机则是用来辅助消息分发的。Exchange与Queue之间会建立一种绑定的关系,通过绑定关系,Exchange交换机里发送的消息就可以分发到不同的Queue上。
对于队列,有Classic ,Quorum,Stream三种类型。
Exchange只需要与生产者绑定,消费者方面不需要与Exchange打交道,只要从Queue中消费消息就可以。

Connection和channel
一个Connection可以理解为一个客户端应用,一个应用可以创建多个Channel。用来与RabbitMQ进行交互;
在这里插入图片描述
一旦客户端与RabbitMQ建立了连接,就会分配一个AMQP信道 Channel。每个信道都会被分配一个唯一的ID。也可以理解为是客户端与RabbitMQ实际进行数据交互的通道,我们后续的大多数的数据操作都是在信道 Channel 这个层面展开的。

RabbitMQ中进行数据路由的重要组件。消息发送到RabbitMQ中后,会首先进入一个交换机,然后由交换机负责将数据转发到不同的队列中。RabbitMQ中有多种不同类型的交换机来支持不同的路由策略。从Web管理界面就能看到,在每个虚拟主机中,RabbitMQ都会默认创建几个不同类型的交换机来。

在这里插入图片描述
Queue结构天生就具有FIFO的顺序,消息最终都会被分发到不同的Queue当中,然后才被消费者进行消费处理。这也是最近RabbitMQ功能变动最大的地方。最为常用的是经典队列Classic。
RabbitMQ 3.8.X版本添加了Quorum队列,3.9.X又添加了Stream队列。从官网的封面就能看到,现在RabbitMQ主推的是Quorum队列。

相关文章:

  • RagFlow 完全指南(一):从零搭建开源大模型应用平台(Ollama、VLLM本地模型接入实战)
  • 零基础玩转sqlmap - 从入门到摸清数据库
  • 力扣70题解
  • Vue3入门(1)简单的用户列表页
  • 效率办公新工具:PDF Reader Pro V5.0功能解析与使用体验
  • mysql主从复制是什么
  • 【质量管理】什么是过程?
  • 【数据库知识】Mysql进阶-高可用MHA(Master High Availability)方案
  • 如何使用 Netstat 查看监听端口
  • 大数据基础——Ubuntu 安装
  • 金融行业NLP优化:英特尔至强AI加速实战案例
  • 【python】基础知识点100问
  • opencv关键点检测
  • Ubuntu 24服务器部署abp vnext应用程序的完整教程
  • 谷歌与微软的AI战争:搜索、云服务与生态布局
  • 金仓kingbase数据库管理工具KStudio.exe无法启动且不报错的解决办法
  • [SAP] SAP ERP用户参数设置
  • LLM 论文精读(七)Rethinking Reflection in Pre-Training
  • 【入门】打印字母塔
  • uniapp-商城-52-后台 商家信息(商家信息数据,云对象使用)
  • 上海北外滩,未来五年将如何“长个子”“壮筋骨”?
  • 图讯丨习近平出席中国-拉美和加勒比国家共同体论坛第四届部长级会议开幕式
  • 云南威信麟凤镇通报“有人穿‘警察’字样雨衣参与丧事”:已立案查处
  • 生态环境保护督察工作条例对督察对象和内容作了哪些规定?有关负责人答问
  • 欧阳娜娜携家人回江西探亲,受聘为江西吉安文化旅游大使
  • 老镇老宅楼:破旧,没产证,要不要更新?