2023年rabbitMq面试题汇总2(5道)
一、如何确保消息接收⽅消费了消息?
接收⽅消息确认机制:消费者接收每⼀条消息后都必须进⾏确认(消息接收和消息确认是两个不同操作)。只有消费者确认了消息,RabbitMQ才能安全地把消息从队列中删除。
这⾥并没有⽤到超时机制,RabbitMQ仅通过Consumer的连接中断来确认是否需要重新发送消息。也就是说,只要连接不中断,RabbitMQ给了Consumer⾜够⻓的时间来处理消息。
特殊情况:
1、如果消费者接收到消息,在确认之前断开了连接或取消订阅,RabbitMQ会认为消息没有被分发,然后重新分发给下⼀个订阅的消费者。(可能存在消息重复消费的隐患,需要根据bizId去重)
2、如果消费者接收到消息却没有确认消息,连接也未断开,则RabbitMQ认为该消费者繁忙,将不会给该消费者分发更多的消息。
二、如何避免消息重复投递或重复消费?
在消息⽣产时,MQ内部针对每条⽣产者发送的消息⽣成⼀个inner-msg-id,作为去重和幂等的依据(消息投递失败并重传),避免重复的消息进⼊队列;在消息消费时,要求消息体中必须要有⼀个bizId(对于同⼀业务全局唯⼀,如⽀付ID、订单ID、帖⼦ID等)作为去重和幂等的依据,避免同⼀条消息被重复消费。
三、消息基于什么传输?
由于TCP连接的创建和销毁开销较⼤,且并发数受系统资源限制,会造成性能瓶颈。RabbitMQ使⽤信道的⽅式来传输数据。信道是建⽴在真实的TCP连接内的虚拟连接,且每条TCP连接上的信道数量没有限制。
1、RabbitMQ采⽤类似NIO(Non-blocking I/O)做法,选择TCP连接复⽤,不仅可以减少性能开销,同时也便于管理。
2、每个线程把持⼀个信道,所以信道服⽤了Connection的TCP连接。同时RabbitMQ可以确保每个线程的私密性,就像拥有独⽴的连接⼀样。
四、消息如何分发?
若该队列⾄少有⼀个消费者订阅,消息将以循环(round-robin)的⽅式发送给消费者。每条消息只会分发给⼀个订阅的消费者(前提是消费者能够正常处理消息并进⾏确认)。
五、消息怎么路由?
从概念上来说,消息路由必须有三部分:交换器、路由、绑定。⽣产者把消息发布到交换器上;绑定决定了消息如何从交换器路由到特定的队列;消息最终到达队列,并被消费者接收。
1、消息发布到交换器时,消息将拥有⼀个路由键(routing key),在消息创建时设定。
2、通过队列路由键,可以把队列绑定到交换器上。
3、消息到达交换器后,RabbitMQ会将消息的路由键与队列的路由键进⾏匹配(针对不同的交换器有不同的路由规则)。
4、如果能够匹配到队列,则消息会投递到相应队列中;如果不能匹配到任何队列,消息将进⼊ “⿊洞”。
相关文章:
2023年rabbitMq面试题汇总2(5道)
一、如何确保消息接收⽅消费了消息?接收⽅消息确认机制:消费者接收每⼀条消息后都必须进⾏确认(消息接收和消息确认是两个不同操作)。只有消费者确认了消息,RabbitMQ才能安全地把消息从队列中删除。这⾥并没有⽤到超时…...
电视剧《狂飙》数据分析,正片有效播放市场占有率达65.7%
哈喽大家好,春节已经过去了,朋友们也都陆陆续续开工了,小编在这里祝大家开工大吉!春节期间,一大批电视剧和网剧上映播出,其中电视剧《狂飙》以不可阻挡之势成功成为“开年剧王”。这里小编整理了一些《狂飙…...
cas单点登录后重定向次数过多问题以及调试cas-dot-net-client
问题描述: web项目应用cas作为单点登录站点,登录后无法打开WEB项目的页面,报错,说重定向次数过多。 老实说,这种问题,以前遇到过不少,是我这种半桶水程序员的噩梦。解决这种问题,不…...
【监控】Prometheus(普罗米修斯)监控概述
文章目录一、监控系统概论二、基础资源监控2.1、网络监控2.2、存储监控2.3、服务器监控2.4、中间件监控2.5、应用程序监控(APM)三、Prometheus 简介3.1、什么是 Prometheus3.2、优点3.3、组件3.4、架构3.5、适用于什么场景3.6、不适合什么场景四、数据模…...
opencv+python物体检测【03-模仿学习】
仿照练习:原文链接 步骤一:准备图片 正样本集:正样本集为包含“识别物体”的灰度图,一般大于等于2000张,尺寸不能太大,尺寸太大会导致训练时间过长。 负样本集:负样本集为不含“识别物体”的…...
计算机科学基础知识第二节讲义
课程链接 运行环境:WSL Ubuntu OMZ终端 PS:看到老师终端具有高亮和自动补全功能,我连夜肝出oh-my-zsh安装教程,实现了此功能。 这节课主要讲变量的语法、控制流程、shell功能等内容。 修改终端用户名,输入密码后重启…...
openssl genrsa 命令详解
文章目录一、openssl genrsa 命令介绍二、openssl genrsa 命令的语法及选项三、实例1、生成512位的 RSA 秘钥,输出到屏幕。2、生成512位 RSA 私钥,输出到指定的文件 genrsa.txt3、生成 1024 位 RSA 秘钥,采用 des 算法加密,加密密…...
C语言标准 —— C89(C90)、C99、C11、C17、C2X
C语言主要的三个标准:C89(C90)、C99、C11、K&R C 指的是 C 语言的原始版本。1978年,C 语言的发明者丹尼斯里奇(Dennis Ritchie)和布莱恩柯林(Brian Kernighan)合写了一本…...
基于Java+Dubbo设计的智能公交查询系统
一、项目背景 随着经济的飞速发展,人们的生活质量有了较大的提高,城市居民的出行变得越来越频繁,城市交通也面临越来越多的挑战。城市公共交通具有客流量大、成本低、效率高、节约资源等优势,因此,如何大力发展公交产业,鼓励人们乘坐公交出行,进而改善交通状况,是一个值得思考…...
go语言的并发编程
并发编程是 Go语言的一个重要特性,而 go语言也是基于此而设计出来的。 本文将会介绍如何使用go-gc中的“runtime”方法实现 go语言中的并发编程。 在之前的文章中,我们已经对 runtime方法进行了详细介绍,这次文章将对 runtime方法进行深入分析,并讲解如何在go-gc中使用该方…...
亚马逊要求UL94防火测试阻燃测试标准及项目
UL94认证是什么?分几个等级?是如何表示各等级?带电的产品上架亚马逊都需要相关的UL报告,需要有ISO 17025资质的实验室出具的测试报告才能正常销售和恢复链接,UL94防火测试则是其中一项。UL94试验共有五种:1.B级的水平燃烧试验2.…...
ClickHouse 合并树表引擎 MergeTree 原理分析
目录 前言 MergeTree 存储 MergeTree思想 MergeTree存储结构 MergeTree查询 索引检索 数据Sampling 数据扫描 建表 数据存储...
用YOLOv8推荐的Roboflow工具来训练自己的数据集
YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本,相较于之前的版本,YOLOv8可以更快速有效地识别和定位图像中的物体,以及更准确地分类它们。 作为一种深度学习技术,YOLOv8需要大量的训练数据来实现最佳性能。…...
三层交换机【实验】
目录 1、要求: 2、拓扑: 3、创建vlan和端口定义并划入vlan: 4、创建以太网中继Eth-Trunk使sw1和sw2的相互冗余并且不浪费链路: 5、使用mstp定义组和对应的根: 6、配置网关冗余: 7、核心层的路由的IP配…...
Anolis 8.6 部署 Kafka 3.3.1 安装和测试(二)
动态初始化Kafka消费者实例一.Kafka 环境搭建二.动态初始化消费者1.Topic定义2.方法处理器工厂3.参数解析器(Copy SpringBoot 源码)4.消费接口和消费实现5.动态初始化1.关键类简介2.动态初始化实现一.Kafka 环境搭建 参考:Kafka搭建和测试 …...
sed和awk
文章目录1、sed的简单介绍2、sed的使用方法2.1 命令行格式2.2 案例2.3 sed结合正则使用2.4 脚本格式3、awk的简单介绍4、awk的使用方法4.1 命令行模式4.2 脚本模式5、awk内部相关变量5.1 案例6、awk工作原理7、awk进阶使用8、awk脚本编程8.1 案例1、sed的简单介绍 sed是流编辑…...
使用STM32 CUBE IDE配置STM32F7 用DMA传输多通道ADC数据
我的使用环境: 硬件:STM32F767ZGT6、串口1、ADC1、16MHz晶振、216MHz主频 软件:STM32 CUBE IDE 优点:不用定时触发采样,ADC数据是不停的实时更新,ADC数据的更新频率根据采样时钟和采样周期决定,…...
linux 学习(持续更新)
一:初识linux 新装操作环境: mac intel电脑 CentOS系统版本:CentOS-8.1.1911 在这里解释一下[chenllocalhost /]$这句话的含义: chenl是用户名,也就是你自己起的名字。 是分割的符号 localhost是主机名,也…...
Nacos【一】Nacos集群部署配置
系列文章目录 暂无 文章目录系列文章目录前言一、Nacos集群架构1.ip直连2. SLB3. 域名-SLB二、集群部署准备2.1 机器准备2.2 Nginx安装配置1.安装2.负载均衡配置2.3 nacos安装配置1.nacos节点2. MySQL准备1.Docker安装MySQL2. nacos对应数据库初始化三、 集群启动1.失败原因汇…...
“亚洲一号”也能上市?REITs背后的物流设施风起云涌
京东最近发生了两件大事,两件都与物流基础设施有关。 一件是2月8日,嘉实京东仓储物流封闭式基础设施证券投资基金(简称“京东仓储REIT”)正式登陆上交所,投资者获得了机会,去分享京东三处物流园区的收益&a…...
Local AI MusicGen教育应用:帮助学生理解音乐情绪表达方式
Local AI MusicGen教育应用:帮助学生理解音乐情绪表达方式 1. 引言:当AI成为音乐老师 想象一下,你是一位音乐老师,正在给学生讲解“悲伤”这种情绪在音乐中是如何表达的。传统的教学方式可能是播放一段肖邦的夜曲,或…...
AI驱动关键词优化的SEO未来趋势与实际应用解析
本文旨在探讨AI在搜索引擎优化(SEO),特别是关键词优化领域的重要角色。文章分析了AI技术如何通过数据分析和用户行为洞察,帮助企业制定更加有效的关键词策略。AI能够实时监测市场趋势,识别用户意图,并根据这…...
Step3-VL-10B部署案例:金融APP界面自动化测试,覆盖85%人工回归用例
Step3-VL-10B部署案例:金融APP界面自动化测试,覆盖85%人工回归用例 1. 项目背景与痛点 金融APP的每一次版本更新,都伴随着一场紧张的回归测试。测试团队需要反复验证登录、转账、理财购买、账单查询等几十个核心功能,确保新代码…...
vue-beautiful-chat避坑指南:从安装配置到WebSocket实时通信的全流程解析
Vue2实时聊天组件深度实践:从vue-beautiful-chat配置到WebSocket全链路优化 当我们需要在Vue2项目中快速实现一个专业级聊天界面时,vue-beautiful-chat组件无疑是优雅的解决方案。但许多开发者在集成WebSocket实时通信功能时,常会遇到各种&q…...
百川2-13B模型安全测试:OpenClaw在防御恶意指令方面的表现
百川2-13B模型安全测试:OpenClaw在防御恶意指令方面的表现 1. 为什么需要测试AI助手的安全性 去年我在本地部署了一个自动化助手,本想让它帮我整理文档和收发邮件。结果有次不小心让它执行了一个包含rm -rf的命令,差点把工作目录清空。这次…...
PLC新手必看:三菱FX2N顺序功能图的5个常见错误及解决方法
三菱FX2N顺序功能图实战避坑指南:从原理到调试的完整解决方案 第一次接触三菱FX2N的顺序功能图编程时,那种既兴奋又忐忑的心情至今记忆犹新。看着逻辑清晰的流程图在仿真中运行失常,或是设备突然"抽风"时的茫然,是每个P…...
AI系统-7Pytorch数字识别实战及算子介绍
之前铺垫了神经网络的基础知识,这里使用编程工具Pytorch进行一个实战讲解。首先变成一个看得见、摸得着的程序和代码,然后再说后续怎么使用GPU/NPU硬件去优化。 本文主要参考ZOMI酱《AI系统》:https://chenzomi12.github.io/01Introduction/0…...
BiliTools:跨平台资源管理与高效解析的哔哩哔哩工具箱
BiliTools:跨平台资源管理与高效解析的哔哩哔哩工具箱 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持视频、音乐、番剧、课程下载……持续更新 项目地址: https://gitcode.com/GitHub_Trending/bilit/Bili…...
闽北哥-做个无用之人,方成大用
做个无用之人 ——方成大用 “太有用的人,一定走不远。” 🌿 人生是一场‘无心生大用’的修行。 白木香树越能结香,越被千疮百孔; 无用之树,反得自然生长。 💡 真正的价值,不在“有”ÿ…...
终极风扇控制指南:如何用FanControl 264版彻底告别电脑噪音烦恼
终极风扇控制指南:如何用FanControl 264版彻底告别电脑噪音烦恼 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Tr…...
