资源 · 18

使 API 集成能够应对中断

映射依赖关系、限制重试次数,并在外部故障期间保持关键流程的可用性。

已更新 · 2 min

数据中心的服务器机架 插图 · 虚构场景

本指南有助于实现的目标

  • 将 API 连接到业务流程
  • 绑定调用和重试
  • 规划降级操作
  • 衡量恢复情况

快速检查

  • 哪些流程依赖于哪个提供商?
  • 是否每个调用都有超时?
  • 重试操作是否会重复?
  • 用户在故障期间会看到什么?
  • 谁批准恢复正常服务?

分步指南

  1. 1

    映射调用

    将每个集成连接到交换的数据、合同、所有者和流程步骤。 识别阻塞用户的同步调用。

    交付成果:优先级依赖关系图。

  2. 2

    设置时间预算

    为每个调用定义超时时间,并为每个流程定义总预算。 防止服务链导致等待时间倍增。

    交付成果:超时和阈值矩阵。

  3. 3

    限制重试次数

    仅重试可安全重复的操作。 测试幂等性,限制重试次数并使用适当的退避策略分散重试次数。

    交付成果:已测试的重试策略。

  4. 4

    规划降级操作

    确定哪些内容仍然可用,哪些数据可以排队,以及在服务中断期间显示哪些明确的消息。

    交付成果:每个旅程的备用行为。

  5. 5

    模拟事件

    在受控环境中引入延迟、无效响应和中断。 检查负载、数据、接口和恢复情况。

    交付成果:故障测试结果。

  6. 6

    观察结果

    跟踪实际丢失的错误、延迟、队列和业务操作。 指定升级负责人和供应商协调负责人。

    交付成果:仪表盘和恢复流程。

管理指标

指标衡量内容首要行动
已映射的旅程具有已知依赖关系的关键旅程为未知调用分配所有者
时间预算在旅程截止时间内的调用审查链式等待
安全重试无副作用的重复操作添加幂等性或移除重试
测试降级具有观察到的用户结果的中断场景改善连续性和通信

常见错误

  • 针对过载服务无限制重试
  • 重复非幂等写入
  • 将中断隐藏在未标记的过期数据背后
  • 仅测量提供商响应率

常见问题解答

是否应该重试每个请求?

否。重试有助于处理选定的瞬态故障,并且必须遵守整体截止时间、幂等性和提供商负载。

断路器是否足够?

它能保护部分呼叫,但无法定义用户体验或已排队工作的恢复。

首先应该衡量什么?

对关键流程的影响:持续时间、丢失或延迟的操作以及恢复质量。

官方参考文献

参考文献支持该方法。 请根据您的实际情况调整检查;它们并非认证。 原始参考文献标题和源文档可能使用其他语言。