限制并发

适用于:所有 API 管理层级

limit-concurrency 策略阻止括住的策略在任意时间执行超过指定数量的请求。 如果超过该数量,新请求将立即失败,并出现“429 请求过多”状态代码。

注意

由于限制体系结构的分布式性质,速率限制永远不可能完全准确。 允许的请求的配置数字和实际数字之间的差异因请求量和速度、后端延迟以及其他因素而异。

注意

按照策略声明中提供的顺序设置策略的元素和子元素。 详细了解如何设置或编辑 API 管理策略

策略语句

<limit-concurrency key="expression" max-count="number">
        <!— nested policy statements -->
</limit-concurrency>

属性

属性 说明 需要 默认
key 一个字符串。 指定并发作用域。 可以由多个策略共享。 允许使用策略表达式。 空值
max-count 一个整数。 指定允许输入策略的最大请求数。 不允许使用策略表达式。 空值

使用情况

使用注意事项

  • 在区域中部署多个容量单位时,API 管理强制实施的最大请求数较低。

示例

下例演示了如何基于上下文变量的值限制转发到后端的请求数。

<policies>
  <inbound>…</inbound>
  <backend>
    <limit-concurrency key="@((string)context.Variables["connectionId"])" max-count="3">
      <forward-request timeout="120"/>
    </limit-concurrency>
  </backend>
  <outbound>…</outbound>
</policies>

后续步骤

有关使用策略的详细信息,请参阅: