Skip to content

[Priority: Med] [Reliability] 增加上游并发控制与背压保护 #276

@liujuanjuan1984

Description

@liujuanjuan1984

背景

当前 OpencodeUpstreamClient 负责对 OpenCode 上游发起普通请求与流式请求,但主干里尚未看到统一的并发阈值或背压控制机制。若实例在高负载下同时向上游发起大量请求,适配层可能积压过多未决任务与连接。

当前问题

  1. OpencodeUpstreamClient 当前没有统一的并发上限控制。
  2. 没有明确的请求排队/拒绝策略。
  3. 在上游延迟突增或下游并发放大场景下,实例内存与连接占用边界不够清晰。

这与 task persistence、session binding 或日志指标问题不同,属于适配层的 runtime reliability 议题。

期望方向

评估是否为 upstream adapter 增加最小背压保护:

  • 为普通请求与流式请求定义统一或分类的并发限制;
  • 明确超限时是排队、快速失败,还是按不同请求类型采用不同策略;
  • 保持当前 API 语义不变,不把调度复杂度扩散到调用方。

非目标

  • 不在本 issue 内同时引入完整队列系统或复杂 rate limiting 平台。
  • 不把 peer A2A client cache / session cache 与 upstream concurrency 混为一谈。
  • 不改变现有 A2A 对外协议契约。

建议实施步骤

  1. 盘点 OpencodeUpstreamClient 各类请求入口及其资源占用模式。
  2. 明确普通请求、streaming、abort、session query 是否需要共享同一限流策略。
  3. 设计最小并发/背压机制及其配置边界。
  4. 若进入实现阶段,补压力测试或最小并发回归测试。

验收标准

  • 明确 upstream adapter 的并发保护范围。
  • 明确超限行为与配置边界。
  • 若进入实现阶段,补齐并发/背压相关测试。

Metadata

Metadata

Assignees

No one assigned

    Labels

    status:todoPlanned but not started

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions