第4章 服务治理与限流降级
本章聚焦微服务稳定性核心能力:限流算法选型、熔断降级设计、流量调度策略与服务发现一致性。面试中这类问题侧重原理落地与场景决策,而非纯理论背诵。下面先通过回答框架图建立整体应答路径。
▲ 限流降级回答框架:从指标识别到动态闭环,面试中按此路径展开即可覆盖核心要点。
高频面试问答卡片(3个)
🎯 面试问题:生产环境中如何选择限流算法?请给出选型依据
考察点:算法原理理解、场景匹配能力、实现复杂度评估
回答框架:明确流量特征 → 对比算法优劣 → 结合系统限制给出推荐 → 提及降级准备
示例回答:首选令牌桶,支持突发流量(如秒杀),配合 Redis + Lua 实现分布式限流;对必须平滑的场景用漏桶,但注意其拒绝突发可能影响体验。同步说明熔断兜底,防止限流误杀。
可能追问:令牌桶如何实现预热?滑动窗口为何不适合高并发?
🎯 面试问题:熔断降级的核心设计要点是什么?如何避免误触?
考察点:状态机理解、故障隔离经验、熔断与恢复的平衡设计
回答框架:定义熔断条件(错误率/慢调用) → 三态切换逻辑 → 半开恢复策略 → 配合降级接口
示例回答:采用 Hystrix 或 Sentinel,设置错误率>50%+最小请求数门槛,打开后等待30s进入半开,单次成功则关闭。设置不同慢调用阈值(如TP99)避免冲动熔断,同时提供降级 fallback 返回默认值。
可能追问:熔断区间内请求全部快速失败,如何保证业务连续性?
🎯 面试问题:服务发现中如何保证客户端实例列表的实时性与一致性?
考察点:注册中心原理(CAP权衡)、健康检查机制、客户端缓存策略
回答框架:注册中心选型依据 → 心跳与健康检查 → 推送/拉取模式 → 本地缓存降级
示例回答:Nacos 使用 AP+C 模式,服务端每隔5s健康检查,通过 watch 机制推送变更;客户端本地维护缓存,注册中心不可用时读取缓存并启用定时拉取,避免服务发现成为单点。
可能追问:如果注册中心短暂宕机,客户端实例列表如何快速恢复?分区后如何保证最终一致性?
▲ 追问路径图:面试官常从这5个方向深挖,准备对应案例可提升通过率。