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

RabbitMQ的常用术语介绍

出版商

“出版商”一词在不同的上下文中有不同的含义。一般来说,在消息传递中 发布者(也称为“生成者”)是应用程序(或应用程序实例) 发布 (生成) 消息。同一应用程序也可以使用消息 因此同时也是消费者。

消息传递协议还具有消息传递的持久订阅的概念。 订阅是通常用于描述此类实体的一个术语。消费者是另一个问题。 RabbitMQ 支持的消息收发协议同时使用这两个术语,但 RabbitMQ 文档倾向于后者。

RabbitMQ 是一个消息传递代理。它接受来自发布者的消息,并路由它们 并且,如果有要路由到的队列,则存储它们以供使用或立即使用 向消费者交付(如果有)。

发布者发布到的目标因协议而异。在 AMQP 0-9-1 中, 发布商向 Exchange 发布内容。在 AMQP 1.0 中,发布发生在链接上。 在 MQTT 中,发布者发布到主题。最后,STOMP 支持 各种目标类型:主题、队列、AMQP 0-9-1 交换。这包括 有关更多详细信息,请参阅 协议特定的差异 部分。

发布消息必须路由到队列(主题等)。队列 (topic) 可能具有在线使用者。当消息成功路由到队列并且存在 如果在线消费者可以接受更多投放,则消息将为 发送给消费者。

尝试发布到不存在的队列(主题)将导致频道级 exception 替换为 和 render 尝试的通道 on 以关闭。

消费者 

“消费者”一词在不同的上下文中有不同的含义。通常,在消息传递的上下文中 而流式处理,Consumer 是使用和确认消息的应用程序(或应用程序实例)。同一应用程序还可以发布消息,从而同时成为发布者。

消息传递协议还具有消息传递的持久订阅的概念。 订阅是通常用于描述此类实体的一个术语。消费者是另一个问题。 RabbitMQ 支持的消息收发协议同时使用这两个术语,但 RabbitMQ 文档倾向于 更喜欢后者。

从这个意义上说,使用者是消息传递的订阅,它必须 在投放开始之前注册,应用程序可以取消。

RabbitMQ 是一个消息传递代理。它接受来自发布者的消息,并路由它们 并且,如果有要路由到的队列,则存储它们以供使用或立即使用 向消费者交付(如果有)。

使用者从队列中使用。为了使用消息,必须有一个队列。 添加新的使用者时,假设队列中已经有消息准备就绪, 交货将立即开始。

在使用者注册时,目标队列可以为空。在那种情况下 当新邮件排队时,将进行首次投放。

尝试从不存在的队列中使用将导致通道级别的 exception 替换为 和 render 尝试的通道 on 以关闭。

队列 

RabbitMQ 中的队列是消息的有序集合。消息以 (FIFO) (“先进先出”) 方式入队和出队 (交付给使用者)。

用通用术语定义队列,它是一个顺序数据结构,有两个主要操作:项目可以在尾部排队(添加)和从头部出队(消费)。

队列在消息传递技术领域发挥着重要作用。许多消息收发协议和工具都假定发布者和使用者使用类似队列的存储机制进行通信。

消息收发系统中的许多功能都与队列相关。某些 RabbitMQ 队列功能(例如使用者的优先级和重新排队)可能会影响使用者观察到的排序。

Streams 是 RabbitMQ 中提供的另一种消息收发数据结构。Streams 提供与队列不同的功能。

队列属性
队列具有定义其行为方式的属性。有一套 的强制属性和可选属性的映射:

  • 名字
  • 持久(队列将在代理重启后继续存在)
  • 独占(仅由一个连接使用,当该连接关闭时,队列将被删除)
  • 自动删除(当最后一个使用者取消订阅时,将删除至少有一个使用者的队列)
  • 参数(可选;由插件和代理特定的功能(如消息 TTL、队列长度限制等)使用)


请注意,并非所有属性组合在实践中都有意义。例如,自动删除 独占队列应以服务器命名。这样的队列应该是 用于特定于客户端或特定于连接(会话)的数据。

当自动删除或独占队列使用已知(静态)名称时,在客户端断开连接的情况下 并立即重新连接,则 RabbitMQ 节点之间将存在自然的争用条件 这将删除此类队列,并恢复尝试重新声明它们的客户端。 这可能会导致客户端连接恢复失败或异常,并造成不必要的混淆 或影响应用程序可用性。

相关文章:

RabbitMQ的常用术语介绍

出版商 “出版商”一词在不同的上下文中有不同的含义。一般来说,在消息传递中 发布者(也称为“生成者”)是应用程序(或应用程序实例) 发布 (生成) 消息。同一应用程序也可以使用消息 因此同时也…...

Docker魔法:用docker run -p轻松开通容器服务大门

前言 “容器”与“虚拟化”作为现代软件开发和运维中的关键概念,已经广泛应用于各个技术领域。然而,在使用 Docker 部署应用时,常常会遇到这样的问题:容器正常运行,却无法让外界访问其内部服务?即使容器内的应用顺利启动,外部无法通过浏览器或 API 进行连接。此时,doc…...

【后端面试总结】Redis过期删除策略

Redis会将每个设置了过期时间的key放入一个独立的字典中,以后会定时遍历这个字典来删除到期的key。除了定时遍历之外,它还会使用惰性策略来删除过期的key。所谓惰性策略就是在客户端访问这个key的时候,Redis对key的过期时间进行检查&#xff…...

数字图像处理(15):图像平移

(1)图像平移的基本原理:计算每个像素点的移动向量,并将这些像素按照指定的方向和距离进行移动。 (2)平移向量包括水平和垂直分量,可以表示为(dx,dy)&#xff…...

高级java每日一道面试题-2024年12月08日-JVM篇-什么是类加载器?

如果有遗漏,评论区告诉我进行补充 面试官: 什么是类加载器? 我回答: 在Java高级面试中,类加载器(ClassLoader)是一个重要的概念,它涉及到Java类的加载和初始化机制。以下是对类加载器的详细解释: 定义与作用 类加…...

JAVA子类的无参构造器中第一行的super

在 Java 中,子类的构造器是否需要显式调用 super 取决于父类(超类)的构造器。 如果父类有一个无参构造器: 如果父类有一个无参构造器,那么子类的构造器可以不显式调用 super。在这种情况下,如果子类构造器的…...

mysql程序介绍,选项介绍(常用选项,指定选项的方式,特性),命令介绍(查看,部分命令),从sql文件执行sql语句的两种方法

目录 mysql程序 介绍 选项 介绍 常用选项 指定选项的方式 ​编辑配置文件 环境变量 选项特性 指定选项 选项名 选项值 命令 介绍 查看客户端命令 tee/notee prompt source system help contents 从.sql文件执行sql语句 介绍 方式 source 从外部直接导入…...

Unity教程(十九)战斗系统 受击反馈

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程(零)Unity和VS的使用相关内容 Unity教程(一)开始学习状态机 Unity教程(二)角色移动的实现 Unity教程(三)角色跳跃的实现 Unity教程&…...

lanqiaoOJ 3744:小蓝的智慧拼图购物 ← pair+优先队列

【题目来源】https://www.lanqiao.cn/problems/3744/learning/【题目描述】 在小蓝的生日那天,他得到了一个由神秘人赠送的拼图游戏,每个拼图都有其特定的价值和相应的优惠券。小蓝决定要买下所有的拼图,但他希望能尽可能地节省花费。小蓝手中…...

Spring Boot教程之二十一:文件处理

Spring Boot – 文件处理 Spring Boot 是一种流行的、基于 Spring 的开源框架,用于开发强大的 Web 应用程序和微服务。由于它建立在 Spring 框架之上,因此它不仅具有 Spring 的所有功能,而且还包括某些特殊功能,例如自动配置、健康…...

【Linux】Linux的基本常识+指令

目录 1. 整体学习思维导图 2. 常见快捷键操作 3. 基本指令 pwd指令 whoami指令 ls 指令 touch指令 cd 指令 Stat 指令 mkdir 指令 alias指令 nano 指令 rmdir 和 rm 指令 man 指令手册 cp 命令 cat/echo/tac 指令 mv 指令 less 指令 head/tail 指令 date…...

Rocky Linux 9.3系统搭建Slurm环境【笔记】

实践环境:Rocky Linux 9.3 [root@m1 ~]# cat /etc/redhat-release Rocky Linux release 9.3 (Blue Onyx) [root@m1 ~]# uname -r 5.14.0-362.8.1.el9_3.x86_64 [root@m1 ~]#主机名和IP ● 控制节点m1:10.1.1.10 ● 计算节点c1:10.1.1.11 ● 计算节点c2:10.1.1.12 一、…...

原生微信小程序使用原子化tailwindcss

这里使用了第三方库来实现:https://weapp-tw.icebreaker.top/ 官方配置步骤一: https://weapp-tw.icebreaker.top/docs/quick-start/native/install 官方配置步骤二:https://weapp-tw.icebreaker.top/docs/quick-start/native/install-plugin 我下面的操作步骤跟官方步骤…...

《掌握Nmap:全面解析网络扫描与安全检测的终极指南》

 nmap # 简介(帮助) 用法:nmap [扫描类型] [选项] {目标指定内容} 简介(帮助) 用法:nmap [扫描类型] [选项] {目标指定内容} 一、目标指定: 可以传入主机名、IP 地址、网络等。 例如&a…...

k8s-Informer概要解析(2)

Client-go 主要用在 k8s 控制器中 什么是 k8s Informer Informer 负责与 kubernetes APIServer 进行 Watch 操作,Watch 的资源,可以是 kubernetes 内置资源对象,也可以 CRD。 Informer 是一个带有本地缓存以及索引机制的核心工具包&#x…...

UE5基本数据类型

bool: 表示布尔值,只有两个取值:true 或 false,用于表示逻辑条件。int8: 表示 8 位的有符号整数,范围是 −128−128 到 127127。uint8: 表示 8 位的无符号整数,范围是 00 到 255255。int16: 表示 16 位的有符号整数&am…...

Next.js 系统性教学:中间件与国际化功能深入剖析

更多有关Next.js教程,请查阅: 【目录】Next.js 独立开发系列教程-CSDN博客 目录 一、Next.js 中间件 (Middleware) 功能解析 1.1 什么是中间件? 1.2 Next.js 中间件的工作机制 1.3 中间件的功能应用 身份验证与授权 请求重定向 修改请…...

鸿蒙HarmonyOS元服务应用开发实战完全指导

内容提要 元服务概述 元服务开发流程 第一个元服务开发 元服务部署与运行 一、服务概述 1、什么是元服务 在万物互联时代,人均持有设备量不断攀升,设备种类和使用场景更加多样,使得应用开发、应用入口变得更加复杂。在此背景下&#x…...

CT中的2D、MPR、VR渲染、高级临床功能

CT中的2D、MPR、VR渲染 在CT(计算机断层扫描)中,2D、MPR(多平面重建)、VR(体积渲染)是不同的图像显示和处理技术,它们各自有独特的用途和优势。下面分别介绍这三种技术:…...

利用docker-compose来搭建flink集群

1.前期准备 (1)把docker,docker-compose,kafka集群安装配置好 参考文章: 利用docker搭建kafka集群并且进行相应的实践-CSDN博客 这篇文章里面有另外两篇文章的链接,点进去就能够看到 (2&…...

Android Studio中文界面解决方案:从语言障碍到开发效率提升

Android Studio中文界面解决方案:从语言障碍到开发效率提升 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 当你在And…...

AutoHotkey V2扩展库:从脚本小子到全能开发者的进化之路

AutoHotkey V2扩展库:从脚本小子到全能开发者的进化之路 【免费下载链接】ahk2_lib 项目地址: https://gitcode.com/gh_mirrors/ah/ahk2_lib 你是否曾因AutoHotkey的功能局限而感到束手束脚?🤔 当简单的热键脚本无法满足复杂的业务需…...

UltimateStack:彻底解决Minecraft物品堆叠限制的终极指南

UltimateStack:彻底解决Minecraft物品堆叠限制的终极指南 【免费下载链接】UltimateStack A Minecraft mod,can modify ur item MaxStackSize (more then 64) 项目地址: https://gitcode.com/gh_mirrors/ul/UltimateStack 你是否曾经在Minecraft中为物品堆叠…...

从LED驱动到继电器控制:深入解析NPN与PNP三极管在电路设计中的选型避坑指南

从LED驱动到继电器控制:深入解析NPN与PNP三极管在电路设计中的选型避坑指南 在电子电路设计中,三极管作为基础却关键的元件,其选型直接影响着电路的可靠性和性能。特别是当我们需要驱动LED、继电器或电机等负载时,NPN与PNP三极管的…...

macOS微信防撤回终极指南:3分钟轻松安装WeChatIntercept插件

macOS微信防撤回终极指南:3分钟轻松安装WeChatIntercept插件 【免费下载链接】WeChatIntercept 微信防撤回插件,一键安装,仅MAC可用,支持v3.7.0微信 项目地址: https://gitcode.com/gh_mirrors/we/WeChatIntercept 还在为微…...

3步搞定!MoviePilot智能批量重命名让你的媒体库整齐划一

3步搞定!MoviePilot智能批量重命名让你的媒体库整齐划一 【免费下载链接】MoviePilot NAS媒体库自动化管理工具 项目地址: https://gitcode.com/gh_mirrors/mo/MoviePilot 还在为杂乱的媒体文件名头疼吗?"The.Matrix.1999.1080p.BluRay.x264…...

security.txt项目贡献指南:如何参与开源安全标准制定

security.txt项目贡献指南:如何参与开源安全标准制定 【免费下载链接】security-txt A proposed standard that allows websites to define security policies. 项目地址: https://gitcode.com/gh_mirrors/se/security-txt security.txt是一项重要的开源安全…...

魔兽争霸3兼容性修复终极指南:5步解决现代系统闪退问题

魔兽争霸3兼容性修复终极指南:5步解决现代系统闪退问题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 你是否还在为魔兽争霸3在现代Windo…...

第5章 集群初始化

本章说明: 集群初始化是 Kubernetes 部署过程中最核心的一步。本章使用 kubeadm 在 master01 节点上初始化高可用集群控制平面。初始化时需要指定 VIP(192.168.3.59:6443)作为控制平面统一入口,这样后续加入的其他 Master 节点和 Worker 节点都通过 VIP 访问 API Server,…...

雷达系统原理与脉冲测量技术详解

1. 雷达系统基础原理与核心方程雷达(RADAR)是Radio Detection And Ranging的缩写,其基本原理是通过发射电磁波并接收目标反射信号来实现探测和测距。雷达方程是理解雷达系统性能的基础数学表达式:Pr (Pt * G * λ * σ) / ((4π)…...