第 7 章配套代码索引
这一章的代码分两类:优化实现的正例(可直接抄用),和验证工具(判断优化是否真的有效)。
一、文件清单
| 文件 | 对应小节 | 内容 |
|---|---|---|
| 01-priority-pyramid.md | 7.1 优先级金字塔 | 延迟分解 → 层级映射 + 优先级排序工具 |
| 02-reduce-work.md | 7.2 减少工作 | 五种模式的正例/反例 + 审查清单 |
| 03-concurrency-and-parallelism.md | 7.3 并发与并行 | 并行度调优实验 + 隔板实现 |
| 04-caching.md | 7.4 缓存 | Caffeine 三重防护完整实现 + P99 影响计算 |
| 05-backpressure-and-resilience.md | 7.5 背压与韧性 | 完整韧性客户端 + 超时审计 + 重试实现 |
| 06-pooling.md | 7.6 池化与复用 | 连接池计算器 + 对象池成本对比实验 |
| 07-jvm-tuning.md | 7.7 JVM 调优 | GC 对比实验 + 参数确认脚本 |
| 08-optimization-discipline.md | 7.8 三问纪律与收益报告 | 三问模板 + 收益报告生成器 + 否决记录 |
| 09-lab7.md | 7.9 Lab 7 | Lab 7 编排与验证 |
二、本章代码的三个特点
- 大部分是「正例」:可以直接抄进项目的实现(韧性客户端、Caffeine 三重防护、隔板)。
- 都配「验证方法」:不只给实现,还给「怎么证明它有效」。
- 都标注「代价」:每份实现都说明它引入了什么成本。
三、依赖
// build.gradle.kts
dependencies {
// 缓存
implementation("com.github.ben-manes.caffeine:caffeine:3.1.8")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.9.0")
// 限流(Guava RateLimiter)
implementation("com.google.guava:guava:33.0.0-jre")
// 熔断(Resilience4j)
implementation("io.github.resilience4j:resilience4j-kotlin:2.2.0")
implementation("io.github.resilience4j:resilience4j-circuitbreaker:2.2.0")
// 连接池
implementation("com.zaxxer:HikariCP:5.1.0")
}
四、使用顺序建议
① 先读 01,把「你的问题→该从哪级开始」想清楚(不要跳过)
↓
② 再做 02(减少工作)—— 收益最确定、副作用最小
↓
③ 然后 03/05(并发与韧性)—— 数倍级收益,但要注意副作用
↓
④ 缓存(04)放后面 —— 它有代价,而且常常掩盖真问题
↓
⑤ 池化(06)与 JVM(07)最后 —— 收益递减
↓
⑥ 全程用 08 的三问纪律记录
五、一个提醒
这些代码都是「优化手段」,不是「优化目标」。
❌ 「我看到有个缓存的最佳实践,我也加上」
✅ 「我的延迟分解显示数据库占 70%,命中率预估能到 95%,
所以加缓存能把这段降下来——预期 P99 从 200ms 到 60ms」
先有目标和预期,再选手段。 这是第 7.1 节的全部意义。