限制并发

适用于:所有 API 管理层级

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

注意

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

策略语句

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

属性

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

使用情况

示例

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

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

后续步骤

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