Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
Los planes Básico, Estándar y Enterprise entraron en un período de retirada el 17 de marzo de 2025. Para más información, consulte el anuncio de retirada de Azure Spring Apps.
Este artículo se aplica a: ❎ Básico/Estándar ✅ Enterprise
En este artículo de inicio rápido se muestra cómo establecer los límites de velocidad de las solicitudes mediante Spring Cloud Gateway en el plan Enterprise de Azure Spring Apps.
La limitación de la velocidad le permite evitar problemas que surgen con los picos de tráfico. Al establecer los límites de velocidad de las solicitudes, la aplicación puede rechazar el exceso de solicitudes. Esta configuración le ayuda a minimizar los errores de limitación y a predecir con más precisión el rendimiento.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- La versión 2.45.0 o superior de la CLI de Azure.
- Git.
- jq
-
La extensión del plan Enterprise de Azure Spring Apps. Use el siguiente comando para eliminar las versiones anteriores e instalar la extensión del plan Enterprise más reciente. Si ya ha instalado la extensión
spring-cloud, desinstálela para evitar errores de coincidencia de la configuración y la versión.az extension add --upgrade --name spring az extension remove --name spring-cloud - Complete los pasos de Compilación e implementación de aplicaciones en Azure Spring Apps con el plan Enterprise.
Establecimiento de límites de velocidad de las solicitudes
Spring Cloud Gateway incluye filtros de ruta de la versión de código abierto y varios filtros de ruta más. Uno de estos filtros es RateLimit: filtro de limitación de las solicitudes de usuario. El filtro RateLimit limita el número de solicitudes permitidas por ruta durante un período de tiempo.
Al definir una ruta, para agregar el filtro RateLimit, puede incluirlo en la lista de filtros de la ruta. El filtro acepta cuatro opciones:
- El número de solicitudes que se aceptan durante la ventana.
- La duración de la ventana. Este valor está en milisegundos de manera predeterminada, pero puede especificar un sufijo de
s,mohpara indicar que el valor está en segundos, minutos u horas. - (Opcional) Una clave de partición de usuario. También puede aplicar la limitación de velocidad por usuario. Es decir, los distintos usuarios pueden tener su propio rendimiento permitido en función de un identificador que se encuentra en la solicitud. Indica si la clave está en una notificación JWT o encabezado HTTP con sintaxis
claimoheader. - (Opcional) Puede limitar la velocidad por direcciones IP, pero no en combinación con la limitación de velocidad por usuario.
En el ejemplo siguiente todos los usuarios están limitados a dos solicitudes cada cinco segundos a la ruta /products:
{
"predicates": [
"Path=/products",
"Method=GET"
],
"filters": [
"StripPrefix=0",
"RateLimit=2,5s"
]
}
Si quiere exponer una ruta para distintos conjuntos de usuarios, cada uno identificado por su propio encabezado HTTP client_id, use la siguiente definición de ruta:
{
"predicates": [
"Path=/products",
"Method=GET"
],
"filters": [
"StripPrefix=0",
"RateLimit=2,5s,{header:client_id}"
]
}
Cuando se supera el límite, se producirá un error en las respuestas con el estado 429 Too Many Requests.
Use el siguiente comando para aplicar el filtro RateLimit a la ruta /products:
az spring gateway route-config update \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> \
--name catalog-routes \
--app-name catalog-service \
--routes-file azure-spring-apps-enterprise/resources/json/routes/catalog-service_rate-limit.json
Use los siguientes comandos para recuperar la dirección URL de la ruta /products en Spring Cloud Gateway:
export GATEWAY_URL=$(az spring gateway show \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
echo "https://${GATEWAY_URL}/products"
Envíe varias solicitudes de /products a la dirección URL dentro de un período de cinco segundos para ver que las solicitudes producen un error con estado 429 Too Many Requests.
Limpieza de recursos
Si planea seguir trabajando en otros inicios rápidos y tutoriales, considere la posibilidad de dejar estos recursos activos. Cuando ya no lo necesite, elimine el grupo de recursos, que elimina los recursos que contiene. Para eliminar el grupo de recursos mediante la CLI de Azure, use estos comandos:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Pasos siguientes
Continúe con cualquiera de los siguientes artículos de inicio rápido opcionales: