-
从 Java 8 + Spring MVC + MyBatis + Tomcat 线程池 + Lombok + Log4j + 原生 JDBC + 原生 Servlet + JUnit 4 + Travis CI 单体后端 → Java 21 LTS + Spring Boot 3.4 + Spring WebFlux + Spring Modulith + Virtual Threads + Records + Sealed Classes + Pattern Matching + jOOQ 3.20 + MyBatis-Flex + Hibernate 7 + Project Reactor 3.7 + RabbitMQ 4.0 + Spring Security 6 + Spring Cloud Gateway 4 + Resilience4j + GraalVM Native Image 23 + JUnit 5 + Mockito 5 + Testcontainers + ArchUnit + Micrometer + OpenTelemetry Java Agent + Maven Polyglot + Gradle 8.12 全栈现代 Java 工程化 87 天踩坑录:23 反模式 + 27 修法
27 位 Java 工程师 87 天把公司 Java 8 + Spring MVC + MyBatis + Tomcat 线程池 + Lombok + Log4j 单体后端整体迁移到 2026 年 Java 21 LTS + Spring Boot 3.4 + Spring WebFlux + Spring Modulith + Virtual Threads + Records + Sealed…- 4
- 0
-
从 Java 11 + Spring Boot 2.7 + Hystrix + Eureka + MyBatis + Maven → Java 21 LTS + Spring Boot 3.4 + Virtual Threads + GraalVM AOT + Resilience4j + Nacos + JdbcClient + Gradle 8.11 全栈升级 67 天踩坑录:15 反模式 + 18 修法
29 位 Java 工程师 67 天把公司"交易撮合 / 清结算 / 风控 / 用户中心 / 网关 / 消息推送"6 条核心服务,从 Java 11 + Spring Boot 2.7 + Spring Cloud Hoxton + Tomcat + MyBatis + JUnit 4 + Maven 重构到 Java 21 LTS + 22 preview + Spring …- 5
- 0
-
从 Java 17 → 21 LTS + Spring Boot 3.4 + GraalVM Native + Virtual Threads 全栈现代化 23 天踩坑录:9 反模式 + 11 修法
47 工程师 23 天把 32 个 Java service 从 17 + Spring Boot 3.2 升级到 21 LTS + Spring Boot 3.4 + GraalVM Native + Virtual Threads + ZGC Generational,踩了 9 个反模式 + 5 次回滚 + 1 次 P0 + 2 次 P1,沉淀 11 套修法 + 25 个引申话题 + 10 条…- 8
- 0
-
Java 17 G1GC humongous allocation 在 48GB 大堆下引发 P99 飙到 8 秒的 9 天复盘:JSON 大对象 + 定时全量预加载三重叠加 + 12 条 GC 工程纪律
我们一个 Java 17 + Spring Boot 3 订单聚合服务,48GB 大堆 + G1GC,每周三 22:00 准时 P99 从 65ms 飙到 4-8 秒,持续 12 分钟自愈。9 天定位发现 G1 humongous allocation + ProductConfig 单对象 19MB JSON 反序列化 + 周三全量预加载 200 线程并发三重反模式叠加。修复路径 G1 调参 +…- 5
- 0
-
Java 21 虚拟线程切上线第 6 天大促被 synchronized + EhCache + JDBC 三连 pinning 卡死 P99 9.4s 的 4 天复盘:carrier thread 失踪定位 + 5 种修法 + 10 条 Loom 工程纪律
Spring Boot 3.2 + Java 21 虚拟线程上线 6 天大促当晚 QPS 从 3800 跌到 420 P99 飙 9.4s,线下 8000 QPS 一切正常。jdk.tracePinnedThreads 抓出每秒数千次 pinning:EhCache 2.x synchronized + 老 JDBC 驱动 native + 业务两段 synchronized 把所有 carrie…- 0
- 0
-
Java ThreadLocal 不 remove 引发的数据串号事故复盘:5 小时定位 + 5 种修法 + 8 条上下文纪律
Tomcat 线程池下 ThreadLocal 不 remove 导致用户上下文被复用,VIP 客户看到了别人的订单和手机号,P0 事故 5 小时停服、9 个客户数据合规事件。这篇完整复盘事故时间线、ThreadLocal 真实内存语义(value 强引用 + 线程池复用)、heap dump 分析、5 种修法(手动 remove / Scope try-with-resources / TTL …- 0
- 0
-
Spring 循环依赖踩坑:加一个 @Async 注解就启动失败的复盘
给一个老 service 加了个 @Async 注解,整个服务直接启动失败,报 unresolvable circular reference。两个 Bean 互相依赖好几年都没事,加个注解就崩。根因是 @Async 代理机制与 Spring 三级缓存解循环依赖的逻辑冲突。本文讲透三级缓存原理、@Async 为何冲突,以及重构消除循环、异步方法收拢、构造器注入等正确解法。- 0
- 0
-
Spring Boot 启动 60s 优化到 8s 实录:测量 → CDS → AOT 全路径
Spring Boot 单体老应用启动 60s,K8s 滚动更新 20 分钟。两周优化全路径:spring-startup-analyzer 测量 + 关 50 个无用 AutoConfig + 剪 jar 依赖 + Bean 懒加载 + 并行初始化 + AppCDS + 尝试 Spring AOT native。最终 8 秒,扩容 1h→10min。- 0
- 0
-
商品爆款 30w QPS 雪崩复盘:Redis 缓存三大问题工程修法
商品详情爆款雪崩复盘:5w→30w QPS,Redis 命中率跌到 60%,MySQL 12w QPS 被打挂。系统性修法:布隆过滤器 + 缓存空值防穿透,互斥锁 + 逻辑过期防击穿,随机 TTL + Caffeine 本地多级缓存 + Sentinel 限流防雪崩。命中率 99.5%,DB QPS < 1k。- 0
- 0
-
Kafka 5000w Lag 8 小时事故复盘:消费端优化全实录
Kafka 大流量回放事故复盘:3000w 消息 10min 涌入,Lag 5000w 不收敛延迟 8 小时。优化全实录:partition 12→64 + batchListener + saveBatch + 内部并发分组 + DLQ + RateLimiter + 全链路监控。Lag 从 5000w 在 40min 归零,QPS 10w→160w。- 2
- 0
-
JVM 容器化优化实录:1.2GB→180MB 启动 90s→15s
Java 17 服务从虚拟机迁 K8s 全实录:镜像优化(jlink 裁剪/distroless)+ JVM cgroup 识别 + 多阶段 Dockerfile + AppCDS / Spring Native + 三种 probe 分工 + graceful shutdown + 5 大坑修法。镜像 1.2GB→180MB,启动 90s→15s。- 0
- 0
-
Spring Boot 3 升级两个月实录:javax→jakarta + 30 万行代码 + 40 个微服务
5 年老项目 SB 2.7 升 3.2,踩 8 大坑:javax→jakarta、Security 6 重写、Hibernate 6 HQL、Jackson LocalDateTime、AOP 失效、Feign 不兼容、RestClient、Actuator Observability。OpenRewrite 自动化 + 30 万行代码 + 40 微服务实战。- 5
- 0
-
JWT 双 Token 续期 + 多设备登录 + 强制撤销:生产级 Spring Boot 实现
JWT 真做生产级登录态时坑特别多:Access/Refresh 双 token 续期、RT 轮转、复用检测、强制登出、改密码失效、多设备管理。本文给完整 Spring Boot + Redis 方案,附拦截器 + 黑名单 + user_version 双保险 + 前端拦截 + 8 条反模式。- 2
- 0
Spring Boot
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!













