1. 课程导论:服务降级与熔断的背景、课程目标与学习路径、适用人群
1.1 微服务雪崩:降级与熔断的诞生背景
在单体架构向微服务架构演进的过程中,服务间的远程调用(RPC / HTTP)成为常态。一个看似健康的系统,往往因为某个底层服务的短暂超时或异常,引发连锁反应,最终导致整个调用链路瘫痪。这种现象被称为“雪崩效应”。
雪崩效应典型链路:
用户请求 → 服务A(网关)→ 服务B(订单)→ 服务C(库存)→ 服务D(数据库)
当服务D响应变慢,服务C的线程池被占满 → 服务B的请求队列积压 → 服务A的Tomcat线程耗尽 → 整个系统不可用。
用户请求 → 服务A(网关)→ 服务B(订单)→ 服务C(库存)→ 服务D(数据库)
当服务D响应变慢,服务C的线程池被占满 → 服务B的请求队列积压 → 服务A的Tomcat线程耗尽 → 整个系统不可用。
为了解决这一核心痛点,业界提出了两种互补的防御机制:服务降级(Degradation)与服务熔断(Circuit Breaker)。它们共同构成了分布式系统韧性的第一道防线。
1.2 课程目标与学习路径
本课程旨在帮助学员从“会用”到“选对”,最终达到“能设计”的层次。我们将围绕业界主流的三种降级熔断方案进行深度对比:Hystrix(已停更)、Resilience4j(轻量级)、Sentinel(阿里系)。
| 学习阶段 | 核心目标 | 关键产出 |
|---|---|---|
| 第一阶段:认知 | 理解降级与熔断的原理、状态机模型、线程隔离策略 | 能画出熔断器三态(Closed/Open/Half-Open)流转图 |
| 第二阶段:实战 | 掌握 Hystrix / Resilience4j / Sentinel 的 API 与配置 | 完成 3 套标准作业模板(Spring Boot 集成) |
| 第三阶段:选型 | 从性能、运维、社区、生态等维度进行对比决策 | 输出《降级熔断方案选型对比表》 |
| 第四阶段:进阶 | 设计自定义熔断器、接入压测与监控告警 | 实现基于滑动窗口的熔断器 Demo |
📌 学习建议: 本课程每章都配有可运行的代码模板(Maven 项目)。建议在 IDE 中边看边调试,重点关注
application.yml 中的超时、线程池、熔断阈值配置。
1.3 适用人群
本课程面向以下三类核心受众,请对照自身角色定位学习重点:
- Java 后端开发工程师(1-5 年经验):需要掌握微服务容错编码技巧,能在项目中快速落地降级熔断逻辑。
- 微服务架构师 / 技术负责人:关注方案选型、性能对比、运维成本,需要为团队制定标准模板。
- SRE / 运维开发工程师:关注熔断后的监控告警、指标采集(如 Hystrix 的 Metrics Stream、Sentinel 的 Dashboard)。
⚠️ 前置要求: 学员需具备 Spring Boot 基础开发能力,了解 RESTful API 调用与 Maven 依赖管理。本课程不讲解基础 Java 语法或 Spring IoC 容器原理。