限制并发
适用于:所有 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>
相关策略
后续步骤
有关使用策略的详细信息,请参阅:
- 教程:转换和保护 API
- 策略参考,其中提供了策略语句及其设置的完整列表
- 策略表达式
- 设置或编辑策略
- 策略示例