Una puerta de enlace nativa de la nube funciona como el punto de entrada de su arquitectura de sistema y combina las funciones de una puerta de enlace de tráfico tradicional con las de una puerta de enlace de microservices. Esta integración reduce significativamente la sobrecarga de red y los costos operativos, al tiempo que ofrece una gobernanza de tráfico integral y observability. Este tema describe cómo configurar una política de enrutamiento y establecer alertas mediante la asociación de una puerta de enlace nativa de la nube con servicios en un registro de servicios MSE Nacos.
Requisitos previos
Se creó una puerta de enlace nativa de la nube. Para obtener más información, consulte Create a cloud-native gateway.
Se creó un motor MSE Nacos. Para obtener más información, consulte Create an MSE Nacos engine.
Se registró un servicio en MSE Nacos. Para obtener más información, consulte Use MSE Nacos as the service registry for a Spring Cloud application.
Las puertas de enlace nativas de la nube no admiten servicios locales registrados en MSE Nacos o ZooKeeper.
Cree una ruta
Inicie sesión en la consola de MSE. En la barra de navegación superior, seleccione una región.
En el panel de navegación izquierdo, elija Cloud-native Gateway > Gateways. En la página Gateways, haga clic en el ID de la puerta de enlace.
En el panel de navegación izquierdo, haga clic en Routes. En la pestaña Routes, haga clic en Add Route.
En la página Add Route, establezca Route Name como
springcloud-demo, seleccione * para Domain Name y configure la regla de coincidencia de Path en Prefix con el valor /. Para el destino de la ruta, seleccione Single Service y luego haga clic en Associate Service debajo de Service Name.-
En el panel Associate Service, configure los parámetros y haga clic en OK.
Establezca Source Type en MSE Nacos, seleccione el Namespace objetivo y elija el servicio nacos-service-consumer de la lista de servicios.
Establezca Service Name como
nacos-service-consumery haga clic en Save and Advertise.
Configure una política de enrutamiento
Pruebe la ruta sin una política
Inicie sesión en la consola de MSE.
En la barra de navegación superior, seleccione una región.
En el panel de navegación izquierdo, elija Cloud-native Gateway > Gateways. En la página Gateways, haga clic en el ID de la puerta de enlace.
-
En la página Overview, haga clic en la pestaña Gateway Ingress para consultar la Ingress IP Address de la puerta de enlace.
La lista contiene instancias de SLB públicas y privadas. La Ingress IP Address de una instancia pública, como
8.136.xxx.xxx, corresponde al ingreso público de la puerta de enlace.NotaLa dirección IP de ingreso de una puerta de enlace nativa de la nube es la dirección IP de una instancia de SLB asociada. Puede reemplazar la instancia de SLB asociada por una propia. Para obtener más información, consulte Manage gateway ingress SLB.
-
Ejecute el siguiente comando para enviar una solicitud de prueba. Reemplace <public_ingress_ip> con la dirección IP de ingreso público que obtuvo en el paso anterior.
curl -I http://<public_ingress_ip>/echo-rest/helloNotaEste comando envía una solicitud al servicio de demostración originado en MSE Nacos. Puede modificar la ruta de la solicitud según su servicio de backend real.
Una solicitud exitosa devuelve la siguiente respuesta:
HTTP/1.1 200 OK Content-Type: text/plain;charset=UTF-8 Content-Length: 5 Date: Thu, 29 Aug 2024 08:21:47 GMT req-cost-time: 9 req-arrive-time: 1724919707979 resp-start-time: 1724919707988 x-envoy-upstream-service-time: 8 server: istio-envoy
Configure una política de limitación de velocidad
En escenarios de alta concurrencia, un aumento repentino de solicitudes puede sobrecargar los servicios de backend si no existe una limitación adecuada. Esto puede degradar los tiempos de respuesta o incluso provocar fallos en el servicio. La limitación de velocidad garantiza que el volumen de solicitudes se mantenga dentro de un rango manejable. Una puerta de enlace nativa de la nube permite configurar una política de limitación para proteger sus servicios. Para obtener más información sobre otras políticas de enrutamiento, consulte Routing policies.
Inicie sesión en la consola de MSE. En la barra de navegación superior, seleccione una región.
En el panel de navegación izquierdo, elija Cloud-native Gateway > Gateways. En la página Gateways, haga clic en el ID de la puerta de enlace.
En el panel de navegación izquierdo, elija Routes.
Busque la ruta que desea gestionar y haga clic en Policies en la columna Actions.
-
En la pestaña Policies, haga clic en Throttling.
Una regla de control de flujo monitorea la métrica de QPS (consultas por segundo) de una ruta. Cuando la métrica alcanza el umbral especificado, la puerta de enlace bloquea inmediatamente el tráfico subsiguiente. Esto evita que los servicios de backend se saturen ante picos repentinos de tráfico y ayuda a garantizar la alta disponibilidad.
En la sección Throttling, haga clic en la pestaña Throttling Rules.
-
En el área Throttling Rules, configure los siguientes ajustes.
Parámetro
Descripción
Ejemplo
Overall QPS Threshold
Especifica el Overall QPS Threshold.
1
Web fallback behavior
Establezca Web fallback behavior en Returns the specified content o Jump to the specified page.
Return specified content
HTTP Status Code
Especifica el HTTP Status Code que se devolverá para una solicitud limitada. El valor predeterminado es 429.
429
Returned Content-Type
Establezca el Returned Content-Type en Plain text o JSON.
Plain text
Returned HTTP Text
Especifica el cuerpo de la respuesta alternativa.
springcloud-demo flow limit
Whether to open
Habilita o deshabilita esta regla.
Selected
Haga clic en New o Save y luego haga clic en OK en el cuadro de diálogo de confirmación.
-
Ejecute el siguiente script para probar la política. Reemplace <public_ingress_ip> con su dirección IP de ingreso público.
Windows
@echo off set "localUrl=http://<public_ingress_ip>/echo-rest/hello" :loop curl -i -s %localUrl% goto loopLinux
#!/bin/bash URL="http://<public_ingress_ip>/echo-rest/hello" while true; do curl -i -s $URL doneRespuesta esperada: Una vez habilitada la política de limitación, las solicitudes que superen el umbral de QPS se bloquearán y recibirán un código de estado HTTP 429 junto con el mensaje personalizado.
HTTP/1.1 429 Too Many Requests content-type: text/plain; charset=UTF-8 content-length: 26 date: Thu, 29 Aug 2024 08:54:46 GMT server: istio-envoy springcloud-demo flow limit
Documentación relacionada
Para la resolución de problemas, consulte Cloud-native gateway FAQ. También puede utilizar la función de diagnóstico integrada. Para obtener más información, consulte AI diagnostics for cloud-native gateways.