Yihui’s Blog

配置中心挂了,微服务如何保证可用?

日期:2026-07-12
标签:#面试 #八股 #后端 #配置中心 #微服务 #高可用

一句话答案

数据面不依赖配置中心实时在线:服务使用内存中的最后有效配置和本地持久快照继续运行,启动策略按配置风险分级,并限制过期时间、告警和变更操作。

面试口语版

客户端每次成功获取配置都保存带版本、校验和和时间的本地快照。配置中心不可用时,已运行实例继续使用内存配置,不清空、不回默认;订阅重连采用退避,避免恢复风暴。新实例启动可加载可信快照:普通路由、开关允许在最大陈旧时间内启动,密钥、支付限额等高风险配置若缺失或过期则 fail-close。配置中心本身多副本跨故障域,读可通过缓存,写发布在故障期冻结。恢复后先校验版本,再分批通知客户端。

关键细节

  • 本地快照加密、校验并限制文件权限。
  • 默认配置不能意外放开高风险功能。
  • 过期策略按 Key 分级,而不是全局一个 TTL。
  • 配置中心恢复时防所有客户端同时重连。

面试官追问

  1. 新实例没有本地快照能启动吗?
  2. 使用旧配置会不会有风险?
  3. 配置中心恢复后如何避免重连风暴?

面试官追问参考答案

1. 新实例没有本地快照能启动吗?

取决于配置等级。低风险且有安全内置默认值可降级启动;认证密钥、数据库地址、资金限额等缺失时应拒绝 Ready,避免错误运行。部署镜像也可携带经签名的基线配置。

2. 使用旧配置会不会有风险?

会,因此快照带发布时间和最大陈旧时间,安全策略采用更保守值;紧急撤销类配置可有独立高可用通道。业务应明确“可用性优先”还是“安全一致性优先”。

3. 配置中心恢复后如何避免重连风暴?

客户端指数退避加随机抖动,服务端按租户/实例限速连接与拉取;先恢复读和缓存,再逐步开放 Watch。通知只发版本,客户端错峰拉取完整配置。

学习清单

  • 理解最后有效配置和风险分级。
  • 能设计启动与恢复策略。
Maintained by · YihuiEdit on GitHub

Keep reading

View all posts