Limitar la simultaneidad
SE APLICA A: Todos los niveles de API Management
La directiva limit-concurrency
evita que las directivas delimitadas ejecuten en un momento dado un número de solicitudes mayor que el especificado. Cuando se supera ese número, las nuevas solicitudes fallarán inmediatamente con el código de estado 429
Demasiadas solicitudes.
Precaución
Debido a la naturaleza distribuida de la arquitectura de limitación, el límite de velocidad nunca es completamente preciso. La diferencia entre la cantidad configurada y la cantidad real de solicitudes permitidas varía según el volumen y la frecuencia de solicitudes, la latencia del back-end y otros factores.
Nota
Establezca los elementos de la directiva y los elementos secundarios en el orden proporcionado en la instrucción de directiva. Obtenga más información sobre el establecimiento o modificación de directivas de API Management.
Instrucción de la directiva
<limit-concurrency key="expression" max-count="number">
<!— nested policy statements -->
</limit-concurrency>
Atributos
Atributo | Descripción | Necesario | Valor predeterminado |
---|---|---|---|
key | Una cadena. Especifica el ámbito de la simultaneidad. Puede compartirse entre varias directivas. Se permiten expresiones de directiva. | Sí | N/D |
número máximo | Entero. Especifica el número máximo de solicitudes que se pueden especificar en la directiva. No se permiten expresiones de directiva. | Sí | N/D |
Uso
- Secciones de directiva: entrante, saliente, back-end, on-error
- Ámbitos de la directiva: global, área de trabajo, producto, API, operación
- Puertas de enlace: clásica, v2, consumo, autohospedada y área de trabajo
Notas de uso
- El número máximo de solicitudes aplicadas por API Management es menor cuando se implementan varias unidades de capacidad en una región.
Ejemplo
En el ejemplo siguiente se muestra cómo limitar el número de solicitudes que se reenvían a un back-end en función del valor de una variable de contexto.
<policies>
<inbound>…</inbound>
<backend>
<limit-concurrency key="@((string)context.Variables["connectionId"])" max-count="3">
<forward-request timeout="120"/>
</limit-concurrency>
</backend>
<outbound>…</outbound>
</policies>
Directivas relacionadas
Contenido relacionado
Para más información sobre el trabajo con directivas, vea:
- Tutorial: Transformación y protección de una API
- Referencia de directivas para una lista completa de instrucciones de directivas y su configuración
- Expresiones de directiva
- Establecimiento o edición de directivas
- Reutilización de configuraciones de directivas
- Repositorio de fragmentos de código de directiva
- Creación de directivas mediante Microsoft Copilot en Azure