全网最硬核 JDK 解析 - 7. JFR 事件采集原理与演进2025年12月1日·62525 字·125 分钟全面解析 JFR(Java Flight Recorder)的配置体系、使用方式和事件采集机制。涵盖 JFR 配置体系(全局配置、记录级别配置、JFC 配置文件)、多种使用方式(JVM 参数、jcmd 命令、JDK API、JMX)、jfr 工具分析、事件类型分类与配置适用性,以及从 JDK 11 到 JDK 25 的核心变化和最佳实践。
全网最硬核 JDK 解析 - 6. 通过 JFR 快速定位 Java 堆 OOM 实战与底层原理2025年11月18日·7190 字·15 分钟深入讲解如何通过 JFR(JDK Flight Recorder)快速定位 Java 堆 OOM 的实战方法与底层原理,涵盖三种典型 OOM 场景的 JFR 事件分析,包括 Allocation Requiring GC、ZAllocationStall、ObjectAllocationOutsideTLAB 等关键事件的采集与分析技巧。
全网最硬核 JDK 解析 - 5. Heap dump 与错误处理诊断相关演进与最佳实践解析2025年11月11日·27165 字·55 分钟深入分析 JVM 错误处理和诊断相关参数的设计原理、实现机制和版本演进,涵盖 Heap Dump、Java 对象堆 OOM 处理、错误日志等关键参数的源码解析和最佳实践。
浅尝辄止 JEP - JEP-502:Stable Value(预览)2025年11月1日·4869 字·10 分钟探索 JEP 502 的 StableValue API,它解决了 Java 开发中不变性与初始化灵活性之间的根本权衡。本文涵盖 API 设计、核心实现细节(包括双重检查锁定模式、内存语义)以及使用 @Stable 注解的 JIT 优化策略。
API 安全和反机器人保护综合指南2025年5月28日·1919 字·4 分钟深入探讨现代 API 安全实践,涵盖 Web 和移动客户端密钥交换机制、基本安全标头实现以及有效的反机器人保护策略,以保护你的应用同时保持出色的用户体验。
为什么应该避免在生产环境中启用 HeapDumpOnOutOfMemoryError2025年5月1日·1536 字·4 分钟全面指南,探讨为什么启用 HeapDumpOnOutOfMemoryError 会在生产环境中导致严重的性能问题,哪些 OutOfMemoryError 类型实际触发堆转储,以及使用 JFR 进行内存泄漏检测和自动服务重启策略等更好的替代方案。
PostgreSQL vs MySQL:为你的 OLTP 工作负载找到合适的选择2024年5月1日·1529 字·4 分钟PostgreSQL 和 MySQL 在 OLTP 场景下的全面比较,探讨它们在二级索引处理和 MVCC 实现方面的根本架构差异,以及何时选择每个数据库的实用见解。
GraalVM Native Image 进程能否被 jps 检测到?以及我们的生产策略2024年4月19日·666 字·2 分钟了解 GraalVM Native Image 进程何时会在 jps 中显示,并学习我们在生产环境中在 GraalVM Native Image 和 JVM 之间选择的经过实战验证的方法。我们详细介绍了针对 Lambda 风格任务与长期运行的微服务的策略。
最大化第三方 API 请求吞吐量:实用测试方法2024年4月18日·1408 字·3 分钟学习如何使用 WebClient、TestContainers 和 toxicproxy 开发和测试高性能 API 客户端。本综合指南涵盖异步请求处理、隔离测试环境和真实故障模拟,用于构建健壮的微服务。
全网最硬核 JDK 分析 - 4. OpenJDK JVM 内存结构实现2023年3月28日·69418 字·139 分钟一次全面深入的 JVM 内存架构剖析,涵盖堆内存、元空间、线程栈以及压缩对象指针。本文从内存分配流程、Native Memory Tracking 出发,并通过 jol、jhsdb、JFR 等工具示例,帮助理解 JVM 内存管理内部机制。
解决神秘的 JVM Safepoint 问题:从问题到解决方案的探索之旅2022年6月19日·2347 字·5 分钟深入探讨诊断和解决生产 JVM 问题,其中应用在每小时日志同步任务期间会冻结。我们探索 safepoint 分析、JVM 日志输出阻塞、异步日志实现和 WebFlux 优化以实现完整解决方案。
解决 JVM Safepoint 延迟:从 EFS 集成到异步日志的探索之旅2022年6月16日·2317 字·5 分钟深入调查升级到 Java 17 并实施 AWS EFS 集中式日志收集后出现的神秘 JVM safepoint 延迟问题。我们发现日志输出期间的文件 I/O 阻塞如何冻结整个 JVM 进程,并通过异步日志和正确的 WebFlux 实现解决了这个问题。
全网最硬核 JDK 分析 - 2. Java 随机数演进2022年6月1日·9740 字·20 分钟全面探索 Java 中的伪随机数生成器,涵盖从基本线性同余算法到 Java 17 中高级 LXM 实现的所有内容。了解算法性能、安全考虑以及如何为你的特定用例选择合适的随机数生成器。
解决分片 MySQL 表的性能下降:理解根本原因和解决方案2022年5月27日·3316 字·7 分钟全面指南,了解为什么 MySQL 查询在分片环境中随时间变慢,探讨存储碎片和 MVCC 相关问题的根本原因,并提供使用 OPTIMIZE TABLE 表重建技术维护最佳数据库性能的实用解决方案。
全网最硬核 JDK 分析 - 3. Java 新内存模型解析与实验2022年3月28日·25486 字·51 分钟从规范到实现深入探讨 Java 内存模型(JMM),涵盖内存屏障、CPU 重排序和 Java 9+ VarHandle API。了解一致性、因果性、共识性,以及 volatile、final 和其他同步机制在底层的工作原理,并提供实用的 jcstress 示例。
隐藏的性能杀手:为什么日志中的代码位置会摧毁你的微服务性能2022年3月2日·1855 字·4 分钟了解在日志中启用代码位置如何导致微服务中的严重 CPU 性能问题,特别是响应式应用。这个深入分析揭示了 Log4j2 中堆栈遍历的隐藏成本,并为高吞吐量系统提供了可行的解决方案。
Spring Boot 升级后内存问题排查:深入探讨 ResolvableType 对象创建2022年2月28日·2212 字·5 分钟调查升级到 Spring Boot 2.4.6 + Spring Cloud 2020.0.x 后过度内存分配和 YoungGC 频率增加的问题,揭示 BeanUtils.copyProperties 如何在 Spring 5.3.x 版本中创建大量 ResolvableType 对象而不进行缓存。
MySQL 优化器统计:为什么你的查询选择了错误的索引2022年2月24日·3158 字·7 分钟深入探讨 MySQL 的 InnoDB 优化器统计以及采样不准确如何导致索引选择不当,造成相似查询之间的显著性能差异。学习防止由优化器误判导致的慢 SQL 查询的实用解决方案。
配置 Spring Data Redis 与 Lettuce 以实现有效的 Pipeline 操作2022年1月5日·1994 字·4 分钟关于如何正确配置 Spring Data Redis 与 Lettuce 以启用 pipeline 功能的综合指南。了解连接共享、AutoFlushCommands 和 PipeliningFlushPolicy 配置,以优化你的 Redis 批量操作并减少网络往返时间。
Spring Data Redis 连接泄漏之谜:当你的微服务失控时2021年10月14日·3499 字·7 分钟生产事件调查,揭示 Spring Data Redis + Lettuce 在混合使用 SessionCallback 和 executeWithStickyConnection 操作时如何泄漏连接。深入探讨连接管理机制、JFR 分析技术和实用解决方案,防止你的 Redis 连接池成为黑洞。