跳转到内容

x/resilience Primer

实验性 — API 兼容性未冻结。采用前请先评估。查看发布策略了解当前成熟度。

当你已经通过 x/* 家族 确认问题属于共享弹性基础元语,而不归属于单一功能家族时,打开这一页:熔断器、限流适配器,或多个扩展都会消费的重试封装。

x/resilience 负责跨扩展家族边界的可复用弹性基础元语。功能专属弹性——例如 AI provider 重试逻辑——保留在拥有者扩展内(x/ai/resilience)。通用共享弹性住在这里。

  • 你正在添加多个扩展家族共用的熔断器(circuitbreaker/
  • 你正在实现可复用的限流适配器作为中间件组件(ratelimit/
  • 你正在构建包装跨不同扩展的出站调用的重试或超时封装
  • 该弹性基础元语在单一功能家族中没有自然归属
  • 弹性工作专属于 AI provider 调用 — 那属于 x/ai/resilience
  • 改动关于带 Retry-After 预算 header 的每租户限流 — 那属于 x/tenant/ratelimit
  • 工作是针对入站 HTTP 的纯传输层超时或限流中间件 — 从 x/resilience/ratelimitmiddleware/timeout 开始
  • 改动需要稳定的 security、store 或 core 知识
  1. x/resilience/module.yaml
  2. x/resilience/circuitbreaker/
  3. x/resilience/ratelimit/
这些工作适合留在 x/resilience一旦变成这些问题就应移出
circuitbreaker:共享断路器状态、阈值配置、半开探测烘焙进单一扩展 provider 调用的功能专属断路器调优
ratelimit:包装出站调用的可复用限流适配器传输层入站 HTTP 限流 — 那属于 x/resilience/ratelimit
多个扩展家族消费的共享重试封装特定 provider 适配器内部的单次调用重试逻辑(x/aix/gateway
不绑定单一扩展的通用超时封装带预算 header 的每租户配额执行 — 使用 x/tenant/ratelimit

弹性基础元语容易散落:每个扩展家族各自添加熔断器和重试封装,导致行为不一致和重复的配置表面。x/resilience 提供共享层,使通用模式保持一致,同时功能专属编排保留在拥有者扩展中。硬性规则:本包不能成为万能运行时策略包,也不能吸收 security 和 middleware 的职责。