下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ActiveMQ真实面试题(基础+进阶+实战+故障排查)一、基础概念面试题(初级必问)1、简单说说什么是ActiveMQ?它的核心作用是什么?ActiveMQ是一款开源的、基于Java实现的消息中间件,遵循JMS规范,支持多语言客户端。核心作用是实现系统之间的异步解耦、流量削峰、任务异步处理、服务熔断兜底,解决分布式系统中同步调用耦合高、响应慢、容错差的问题。2、什么是JMS?JMS的核心组成部分有哪些?JMS是Java消息服务的统一接口规范,定义了消息中间件的标准API,让Java程序可以标准化实现消息收发,不依赖具体中间件厂商。核心组成:JMS提供者(ActiveMQ服务端)、JMS客户端(业务程序)、消息生产者、消息消费者、消息队列/主题。3、ActiveMQ两种核心消息模式是什么?有什么区别?两种模式分别是点对点(Queue队列)和发布订阅(Topic主题)。点对点:消息一对一消费,一条消息只会被一个消费者接收;消息持久化存储,消费者离线后重启可以消费未读消息;默认负载均衡,多个消费者轮流消费消息。发布订阅:消息一对多广播,一条消息会被所有订阅者同时消费;默认不持久化,消费者离线期间的消息会丢失,只有在线订阅者能接收;适用于广播通知、事件推送场景。4、ActiveMQ支持哪些消息类型?工作中常用哪几种?支持TextMessage、BytesMessage、MapMessage、ObjectMessage、StreamMessage五种类型。工作中最常用TextMessage传输字符串、JSON数据,BytesMessage传输二进制文件、字节数据,基本不使用ObjectMessage,因为存在序列化安全问题和兼容性问题。5、生产者、消费者、Broker分别指什么?生产者:负责发送消息的业务服务;消费者:负责监听、处理消息的业务服务;Broker:ActiveMQ核心服务节点,负责接收、存储、转发消息,管理队列和主题资源。二、核心原理面试题(中级高频)1、ActiveMQ消息持久化机制有哪些?各自优缺点?主流三种持久化方式:KahaDB:默认持久化方案,基于日志文件存储,轻量、高性能、崩溃恢复速度快,适合绝大多数生产场景,是企业首选。AMQMessageStore:早期文件存储方式,索引文件容易损坏,大消息量场景性能差,现在基本淘汰。JDBC持久化:基于数据库存储消息,数据可靠性极高,可溯源,但IO开销大、性能低,仅适用于消息量小、绝对不能丢消息的特殊场景。2、说说ActiveMQ消息的签收机制?自动签收和手动签收的区别?ActiveMQ通过消息签收确认消息处理完成,未签收消息会重新投递。自动签收(AUTO_ACKNOWLEDGE):消费者接收消息后自动签收,一旦程序处理消息时报错、宕机,消息会直接丢失,数据安全性差。手动签收(CLIENT_ACKNOWLEDGE):业务代码处理消息成功后,手动调用签收方法;处理失败则不签收,消息会重回队列,等待下次消费,保证消息不丢失,生产环境基本全部使用手动签收。3、什么是消息重投?重投机制是怎样的?消费者获取消息后,未正常签收、会话关闭、服务宕机、事务回滚时,消息会被ActiveMQ重新放回队列,再次投递,这就是消息重投。默认重投有次数限制,超过次数的消息会进入死信队列,避免无限死循环消费。4、死信队列(DLQ)的作用是什么?哪些消息会进入死信队列?死信队列用于存储异常消息,避免无效消息阻塞正常队列、拖垮服务。进入死信队列的场景:消息重投次数超过阈值、消息过期、消息处理持续异常、事务回滚多次失败。日常运维中需要定期监控死信队列,排查异常消息。5、ActiveMQ的事务机制了解吗?消息事务和数据库事务如何保证一致?ActiveMQ支持Session事务,开启事务后,多条消息的发送和消费可以统一提交或回滚。结合数据库操作时,不能分开提交事务,否则会出现数据不一致。生产中常用最终一致性方案:本地消息表、事务消息,保证数据库操作和消息发送/消费要么同时成功,要么同时失败。三、集群与高可用面试题(中高级)1、ActiveMQ如何实现高可用?有几种集群方案?常用两种高可用集群方案:主从集群(Master-Slave):分为共享文件主从、JDBC主从。一台Master节点对外提供服务,Slave节点实时备用,Master宕机后,Slave自动切换为主节点,保证服务不中断,是生产最常用方案。网络集群(NetworkofBrokers):多节点互相通信,实现消息跨节点转发,主要用于异地机房、多服务节点消息互通,实现负载分担。2、主从集群切换的原理是什么?会不会出现消息丢失?主从节点共享持久化数据,Master负责读写消息,Slave实时同步数据并监听Master状态。Master故障后,Slave抢占锁成为新Master,继续处理消息。正常切换场景下不会丢失消息,只有极端宕机(磁盘损坏、数据未落地)才可能出现数据异常。3、ActiveMQ集群如何实现负载均衡?客户端通过配置多个Broker地址,实现自动负载均衡和故障转移。生产者和消费者会自动连接可用节点,单节点压力过高时,客户端会自动切换节点,分摊消息压力,同时实现节点故障自动重试。四、实战开发&场景面试题(业务高频)1、项目中为什么用ActiveMQ不用RabbitMQ?两者选型区别?核心选型场景:老旧Java项目、追求JMS规范、团队熟悉Java生态、业务对消息吞吐量要求中等,优先选ActiveMQ;高并发、超高吞吐、微服务轻量化场景,优先选RabbitMQ。ActiveMQ兼容性好、配置简单、运维成本低,适合传统企业项目;RabbitMQ性能更高、延迟更低,适合互联网高并发场景。2、如何保证ActiveMQ消息不丢失?从生产、服务、消费三个环节保障:生产端:开启消息持久化,使用事务发送,发送后校验返回结果,失败则重试。服务端:搭建主从高可用集群,开启KahaDB持久化,保证消息落地磁盘。消费端:使用手动签收,业务处理成功再签收,处理失败不签收、自动重试,异常消息进入死信队列人工处理。3、如何保证消息不重复消费?消息重复消费主要由消息重投、网络重试导致,无法彻底避免,只能通过业务幂等解决。常用方案:消息唯一ID去重、业务唯一主键校验、消费记录落库判断、分布式锁控制单次消费。4、消息堆积是什么原因?怎么解决?堆积原因:消费者消费速度远小于生产者发送速度、消费者代码卡顿阻塞、消费异常频繁重试、消费者服务宕机、单消费者节点压力过大。解决方案:排查消费代码卡顿问题、优化消费逻辑、增加消费者节点横向扩容、拆分大消息、设置消息过期时间、堆积严重时临时扩容Broker节点、清理无效异常消息。5、Topic主题如何实现消息持久化,让离线消费者也能收到历史消息?普通Topic不持久化,离线消息会丢失,需要使用持久化订阅。消费者客户端设置持久订阅,绑定唯一客户端ID,Broker会持久化主题消息,离线后重启消费者,即可消费离线期间的所有消息。五、故障排查&运维面试题(进阶必考)1、ActiveMQ服务启动失败,常见原因有哪些?端口被占用、配置文件格式错误、磁盘空间不足、KahaDB日志文件损坏、集群锁抢占失败、JDK版本不兼容、内存配置超出服务器上限。2、消息消费失败一直重试,如何处理?首先查看死信队列,确认异常消息;查看消费日志定位代码报错、参数异常、业务逻辑问题;临时解决方案是手动清理异常消息、修改重投次数;根治方案是修复业务bug、增加消息参数校验、做幂等处理。3、服务运行卡顿、消息延迟严重,排查思路是什么?第一步:查看服务器CPU、内存、磁盘IO、网络负载;第二步:查看Broker日志,是否有大量重投、异常消息;第三步:检查队列堆积数量、消费者在线数量;第四步:排查消费代码是否阻塞、慢查询;第五步:检查持久化日志是否过大,磁盘读写缓慢。4、KahaDB日志损坏如何修复?停止ActiveMQ服务,备份损坏的data数据目录,删除损坏的lock锁文件和异常日志文件,重启服务自动修复;若修复失败,还原备份数据,或清理无效日志后重新启动,日常需定期备份消息数据。六、压轴综合面试题1、说说你项目中ActiveMQ的落地架构和遇到的核心问题,以及解决方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院满意度调查总结
- 盐农沿海东方绿洲养殖区域养殖尾水治理工程(池塘标准化改造)环评报告表
- 2026秋沪书画版(五四学制)(新教材)初中美术七年级上册(全册)教学设计(附目录p102)
- 重点人群健康管理服务共识
- 过敏性休克试题及参考答案
- 激光切割机培训考试及标准答案
- 地铁隧道道床积水抽排改造施工指南(2025版)
- 多重耐药菌ICU隔离分区管理指南(2025版)
- 口腔正畸诊疗护理配合指南
- 2026年书法教育试题及答案
- 县级管理档案实施方案
- 2026年交安A、B、C证(公路)考试题及答案
- 肠梗阻诊疗指南(2024版)
- 2026中国金融基础设施现代化建设与运营效率提升研究报告
- 《固态电力变压器第1部分技术规范》
- 医保局保密工作制度
- 2025-2026学年种多肉教案
- 2026天津师范大学第二批招聘(辅导员、专业技术辅助岗位)27人考试备考试题及答案解析
- 研学汇报教学课件
- 温暖守护:护理的温度与坚持
- 城投财务招聘笔试试题及答案
评论
0/150
提交评论