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

【面试八股|RabbitMQ】RabbitMQ常见面试题详解笔记

这里根据个人说话口吻等编写Spring常见面试题用于记录复习,后续会持续更新补充,欢迎点赞收藏。

消息队列

常见消息队列对比

RabbitMQActiveMQRocketMQKafka
公司/社区RabbitApache阿里Apache
开发语言ErlangJavaJavaScala&Java
协议支持AMQP,XMPP,SMTP,STOMPOpenWire,STOMP,REST,XMPP,AMQP自定义协议自定义协议
可用性一般
单机吞吐量一般非常高
消息延迟微秒级毫秒级毫秒级毫秒以内
消息可靠性一般一般

追求可用性:Kafka、 RocketMQ 、RabbitMQ

追求可靠性:RabbitMQ、RocketMQ

追求吞吐能力:RocketMQ、Kafka

追求消息低延迟:RabbitMQ、Kafka

说说workqueues模型

多个消费者共同处理消息,大大提高工作效率了。默认为能者多劳,但可以通过.yml配置prefetch修改。

队列和交换机声明方式

1.RabbitMQ控制台创建。

2.程序编写:编程式(注入成@Bean),注解式(@RabbitListener)

RabbitMQ有哪些核心组件

1.生产者,交换机,队列,消费者,虚拟主机

2.交换机分为四类,Direct(直连),Fanout(广播),Topic(主题),Headers(头)

3.其中fanout忽略路由键,广播所有绑定的队列。Direct通过路由键与绑定键的匹配实现点对点通信。Topic通过通配符实现规则绑定

惰性队列是什么

为避免内存消息堆积导致存入磁盘的pageout阻塞,出现了lazyqueue。LazyQueue接受消息直接存入磁盘而非内存,支持懒加载,可存储百万条消息。

RabbitMQ的消息可靠性

可以从生产者发送消息到mq可靠性,mq存储消息可靠性,消费者处理消息可靠性三方面入手

生产者可靠性:

1.生产者确认机制,通过.yml与全局的returncallback配置类,局部的ConfirmCallback开启Publisher Confirm与Publisher Return机制。

2.生产者重试机制,修改.yml文件超时时间,重试次数等

MQ可靠性:

1.数据持久化,交换机,队列,消息持久化

消费者可靠性:

1.消费者确认机制,ack,nack,reject(消息处理失败并拒绝该消息,RabbitMQ从队列中删除该消息)

2.消费者重试机制,修改.yml文件的重试次数,等待时长等

3.失败处理策略,实现MessageRecovery接口

RabbitMQ消息重复消费如何解决

1.开启消费者自动确认机制,但仍可能出现服务确认前宕机,重启后再次消费的情况。

2.通过业务唯一id检查数据库数据是否存在避免重复被消费

3.可通过分布式锁避免两条消息同时被消费的情况

说说RabbitMQ的延迟消息

1.有两种实现方式,死信交换机+TTL和延迟消息插件

2.当消息超时未被消费成为死信,队列可绑定到死信交换机,再传递给其它队列被处理,实现延迟功能

3.通过安装DelayExchange插件,指定死信交换机与超时时间实现延迟功能

数百万消息存在mq怎么解决

1.使用惰性队列,存储到磁盘中

2.提高消费者能力,使用多个消费者,多线程

http://www.jsqmd.com/news/387561/

相关文章:

  • 开发者技能重塑趋势:DeepSeek辅助掌握系统思维,适配AI时代开发需求
  • 2025重型货架哪家强?口碑厂家榜为你指路!立体仓储货架/公司库房货架,重型货架源头厂家口碑推荐榜 - 品牌推荐师
  • 详细介绍:SSM社区点餐系统-计算机毕业设计源码19402
  • 深网正在消亡,更可怕的东西正在取代它
  • 从零开始学Flink:Flink 双流 JOIN 实战详解
  • 2026推荐几家研磨仪生产厂家:实验室/盘式/切割式/食品/土壤样品研磨仪厂家推荐,满足您的研磨需求 - 品牌推荐大师1
  • Tauri vs Electron一篇尽量“把话说满”的客观对比
  • 2026冷冻研磨仪和常温研磨仪区别及选购:国产/矿石/臼式研磨仪全面解读,明智之选 - 品牌推荐大师1
  • 月薪35-50k16薪,大模型时代来了!收藏这份高薪AI算法工程师培养计划,小白也能逆袭成高薪程序员!
  • 直接上结论:9个降AIGC工具测评!研究生降AI率必备指南
  • 小白程序员必备:收藏这份AI大模型学习路线,抢占风口先机!_AI大模型学习路线
  • HUSKY——物理感知全身控制人形滑板系统 第三章:实验验证与深度分析
  • 城市郊野公园管理系统|基于java+ vue城市郊野公园管理系统(源码+数据库+文档)
  • 大学生心理测评与分析系统|基于springboot + vue大学生大学生心理测评与分析系统(源码+数据库+文档)
  • 新年特别版|PyCharm 效率翻倍指南:新手必装的 5 个神级插件推荐(建议收藏)
  • DeepBear-Health:基于迁移学习和可解释时频分析的滚动轴承故障诊断(Python)
  • 30:【uv + torch】2026最快安装GPU PyTorch 避开conda坑
  • 2026年行业内服务好的安检仪供应商怎么找,安检机/安检设备/金属探测门/安检仪/智能安检/安检门,安检仪产品推荐榜单 - 品牌推荐师
  • 大学生创业信息管理系统|基于java + vue大学生创业信息管理系统(源码+数据库+文档)
  • 基于YOLOv5的食物识别在Xilinx平台上的实现之旅
  • 看完就会:一键生成论文工具,继续教育首选千笔AI VS 锐智 AI
  • 2026超离心研磨仪品牌选购指南:全球粗铜样品/刀式/颚式/高速旋转/高通量组织研磨仪市场占有率TOP实测对比 - 品牌推荐大师1
  • 网上书店系统|基于springboot + vue网上书店系统(源码+数据库+文档)
  • OpenCV 第15课 图像处理之人脸检测(三)
  • 中老年人文化活动平台系统|基于java+ vue中老年人文化活动平台系统(源码+数据库+文档)
  • 大模型开发8步详解:小白也能轻松入门,掌握Prompt工程开启高薪AI之路
  • 毕业论文神器!降AIGC工具 千笔 VS 文途AI,本科生专属首选
  • 商场自动引导购物车,跟随主人,避人群,商场导览,输出跟随行进。
  • ZEST:零样本具身技能迁移算法 第三章:实验验证与部署实践
  • 导师推荐 9个 AI论文软件:专科生毕业论文写作全测评