标准答案

  1. 先说明接口服务的对象、峰值流量、时延目标、关键失败代价和外部依赖,例如订单创建、支付回调或批量导出。
  2. 说明正确性边界:参数校验、状态机、数据库事务、唯一约束、幂等键和对账如何防止重复或遗漏。
  3. 说明可用性边界:超时预算、限流、重试、缓存、异步化、降级、健康检查和观测如何在依赖故障时保护核心路径。
  4. 说明安全边界:认证、授权、租户隔离、输入处理、敏感信息脱敏和审计如何限制越权与泄露。
  5. 最后说明演进策略:字段兼容、契约测试、灰度发布、监控指标和回滚方案如何支持后续新增能力而不破坏已有调用方。

题目解析

一个好的案例要能讲清取舍,而不是宣称所有指标都最大化。例如强一致扣款会牺牲部分吞吐,异步导出会牺牲同步即时性,但能换取更稳定的用户路径。

所有设计都应落到可验证信号:错误率、重复率、P99、对账差异、限流命中、审计记录和发布回滚结果比空泛的“高可用”更有说服力。

常见误区

  • 只按技术栈顺序讲 Controller、Redis、数据库,没有说明业务约束和结果。
  • 把“加缓存、加消息队列、加分布式锁”当作通用答案,却不解释解决的具体问题。
  • 只讲成功路径,不说明失败、重试、回滚和观测如何闭环。

作者信息