文章列表

有哪些常用的 JVM 启动参数?

有哪些常用的 JVM 启动参数?

本文系统梳理最常用的JVM启动参数,涵盖堆内存(-Xms/-Xmx)、元空间(Metaspace)、垃圾回收器(G1/Parallel)、GC日志(-Xlog)、OOM HeapDump及远程调试等五大类。基于JDK 11/17标准,标注与JDK 8的核心差异(如PermGen→Metaspace、日志参数变更),并提供生产环境最佳实践与常见误区解析。助你面试通关、线上调优一臂之力。


犬小哈2026/2/13Java面试八股文
怎么保证消息一定能发送到 RabbitMQ?

怎么保证消息一定能发送到 RabbitMQ?

本文深度解析如何保证消息一定发送到RabbitMQ。详解生产级四大核心手段:发布确认(Publisher Confirm)+消息持久化+重试机制+本地消息表补偿。对比事务机制的同步阻塞缺陷,剖析mandatory+ReturnCallback处理路由失败场景,并提供Spring Boot完整代码示例与回调处理最佳实践。帮你彻底解决消息发送丢失难题,构建高可靠消息投递链路。


犬小哈2026/2/13Java面试八股文
RabbitMQ 如何实现消费端限流?

RabbitMQ 如何实现消费端限流?

本文深度解析RabbitMQ消费端限流的核心机制。详解通过basicQos设置prefetchCount、结合手动确认(manual ack)实现滑动窗口限流的原理与配置,并提供Java原生客户端代码示例。对比Kafka拉模式限流的本质差异,剖析prefetchCount调优策略、global参数作用及自动确认失效等常见误区。帮你彻底掌握高并发下保护下游系统的关键手段。


犬小哈2026/2/13Java面试八股文
说说 RabbitMQ 的事务机制?

说说 RabbitMQ 的事务机制?

本文深度解析RabbitMQ事务机制的原理与实战。详解txSelect/txCommit/txRollback三大核心API的工作流程、同步阻塞特性及性能瓶颈,并与Publisher Confirm模式进行全面对比。通过代码示例展示事务的开启与回滚,澄清常见误区(如跨通道事务、消费端事务)。帮你彻底理解为何生产环境几乎抛弃事务,转而采用Confirm模式保证消息可靠性。


犬小哈2026/2/13Java面试八股文
什么是 RabbitMQ 的死信队列?

什么是 RabbitMQ 的死信队列?

本文深度解析RabbitMQ死信队列的核心原理与实战应用。详细阐述消息成为死信的三大场景(消息拒绝、TTL过期、队列满溢),死信交换机(DLX)与死信队列(DLQ)的绑定配置,并提供Spring Boot代码示例。涵盖死信在异常隔离、延迟任务、消息补偿中的最佳实践,帮你彻底掌握这一高可用消息系统必备的可靠性机制。


犬小哈2026/2/13Java面试八股文
RabbitMQ 怎么实现延迟消息?

RabbitMQ 怎么实现延迟消息?

本文深入解析RabbitMQ实现延迟消息的两种主流方案:死信队列+TTL与官方延迟插件。详解其底层原理、代码示例(Spring Boot)、精度差异、性能对比及生产级坑点(如消息堆积、头部阻塞)。帮你根据业务场景做出正确技术选型,彻底搞定延迟任务。


犬小哈2026/2/12Java面试八股文

RabbitMQ 如何保证消息不丢失?

本文深度解析RabbitMQ如何从生产端、服务端、消费端三个层面保证消息不丢失。详解发布者确认(Confirm)、消息与队列持久化、仲裁队列(Raft)的高可用机制、消费者手动ACK及异常处理策略,并对比镜像队列与仲裁队列的差异。附Spring Boot配置与Java代码示例,助你构建高可靠消息系统。


犬小哈2026/2/12Java面试八股文
RabbitMQ 如何防止重复消费?

RabbitMQ 如何防止重复消费?

本文深度解析RabbitMQ如何防止重复消费。从重复消息产生的根源(生产者重试、消费者ACK前宕机)切入,详解基于数据库唯一索引、Redis去重表、乐观锁、状态机等幂等实现方案,并对比优劣与适用场景。附Java代码示例与生产最佳实践,助你彻底解决消息重复问题。


犬小哈2026/2/12Java面试八股文
RabbitMQ 是如何保证高可用的?

RabbitMQ 是如何保证高可用的?

本文深度解析RabbitMQ保证高可用的核心机制:从镜像队列到基于Raft的仲裁队列(Quorum Queues),详解其数据复制、Leader选举与强一致性原理。对比不同方案的优劣,并给出生产级配置、确认机制与监控最佳实践,助你构建真正高可用的消息系统。


犬小哈2026/2/12Java面试八股文