标准答案
- 接口演进优先新增可选字段和新能力,避免直接改变旧字段语义或删除仍被消费的字段。
- 每个调用要有明确的超时、截止时间、重试条件和熔断边界,调用链不能无限等待或无限重试。
- 发布前用契约测试、兼容性检查和小流量灰度验证生产者与消费者能否共存。
- 对关键依赖维护版本、所有者、容量和降级策略清单,升级时能知道影响面和回滚路径。
题目解析
级联故障常由一个慢下游开始:上游请求堆积、线程池耗尽、重试增加流量,最后健康服务也被拖垮。版本治理和超时治理必须一起做。
兼容发布的本质是让新旧实例在一段时间内同时工作。数据结构、枚举、错误码和默认值都要在这个窗口内保持可理解。
常见误区
- 把网络超时设得很长,认为这样能提高成功率。
- 对所有失败都立即重试,放大已经过载的下游。
- 删除字段前只检查当前服务代码,没有检查外部消费者和异步任务。