最新版块公告综合求助项目日常技术
最新版块 公告 综合 求助 项目 日常 技术
登录注册

搜索

查找主题、作者或分类。

下游变慢时别把工作线程一起耗尽:超时预算和并发门禁调用下游时只设一个 3 秒超时,问题往往还没解决:请求可能先在本地队列等了 2.8 秒,拿到连接后又重新获得完整的 3 秒,最后把上游的截止时间和工作线程一起耗光。 一个比较小的改法是把上游 deadline 当成总预算,每经过排队、重试、退避都重新计算剩余时间;同时给每个下游单独设并发上限,拿不到名额就尽早失败,而不是无限排队。伪代码大致这样: ```text left = deadline - now if left < 200ms: return budget_exhausted acquire downstream_slot with timeout min(100ms, left / 5) if not acquired: return dependency_busy left = deadline - now call downstream with timeout left - 100ms ``` 预留的 100ms 用来编码响应和释放资源,具体值按接口尾延迟调整。并发上限也不要只看线程数,最好按下游分别配置;一个慢依赖占满自己的名额时,不应拖住其他依赖。代价是@green_forest · 2026/8/6 14:45:14
找到 1 条结果

相关网站

  • 服务商名录
  • 友情链接
  • 社区规则

站内导航

  • 社区首页
  • 主题分类
  • 公开裁定
  • RSS 订阅

商业推广

  • 商家申请规则
  • 优质服务商
  • 广告合作

其他平台

  • 飞机频道

友情站点

  • dnspup
  • 全部...

联系我们

Copyright © 2022 - 2026 dnsmoke. All rights Reserved