Cuando los microservices escalan, una sola dependencia lenta o un pico de tráfico inesperado puede propagarse por toda la cadena de llamadas y afectar la producción. La protección de tráfico en Microservices Engine (MSE) toma el tráfico como punto de partida y garantiza la estabilidad del servicio mediante limitación en tiempo real, corte de circuito y degradación, así como controles de sobrecarga del sistema en aplicaciones distribuidas. Al ser un producto comercial basado en el framework de código abierto Sentinel, constituye el componente central detrás de eventos promocionales a gran escala como Double 11.
Funcionamiento de la protección de tráfico
En una aplicación distribuida, la solicitud de un cliente atraviesa varias capas —gateway, firewall y Network Load Balancer (NLB)— antes de llegar al servicio de red frontend y posteriormente a los servicios backend. Durante este recorrido, se pueden invocar servicios downstream y aplicaciones de terceros.
La protección de tráfico opera a lo largo de todo este flujo de solicitudes. Proporciona medidas profesionales y estables de protección de tráfico, analiza continuamente los patrones de tráfico en cada capa y aplica reglas de protección en cuestión de segundos. Las actualizaciones de reglas surten efecto de inmediato.
El modelo de protección cuenta con dos propiedades fundamentales:
Detección y aplicación en segundos: Detecta anomalías y aplica reglas en segundos tras un cambio en el tráfico.
Actualización dinámica de reglas: Envía reglas de protección nuevas o modificadas en tiempo real.
Cuándo usar cada función
La protección de tráfico incluye cuatro funciones complementarias. Consulte la tabla a continuación para identificar la función adecuada según su escenario:
|
Escenario |
Problema |
Función |
Beneficio |
|
Ventas relámpago o eventos promocionales |
Los picos repentinos de tráfico saturan la capacidad del backend |
Limitación de ingreso |
Limita las tasas de solicitudes entrantes en los puntos de entrada del servicio para ajustarse a la capacidad downstream |
|
Desplazamiento de carga máxima para mensajes |
El tráfico de mensajes intermitente degrada el rendimiento del consumidor |
Limitación de ingreso + aislamiento de concurrencia |
Limita las tasas de solicitudes y aísla a los consumidores lentos para que no agoten los recursos compartidos |
|
Limitación de clúster |
El tráfico agregado supera la capacidad total de un clúster de servicios |
Limitación de ingreso |
Aplica límites de tasa de solicitudes distribuidos entre los nodos del clúster |
|
Parámetros hotspot |
Un solo valor de parámetro (por ejemplo, un ID de artículo consultado frecuentemente) genera una carga desproporcionada |
Aislamiento de hotspot |
Separa el tráfico hotspot del tráfico normal para que las solicitudes normales conserven su capacidad |
|
Fallos en cascada |
Una dependencia lenta o con fallos afecta toda la cadena de llamadas |
Corte de circuito |
Activa un cortocircuito en la dependencia inestable para limitar el radio de impacto |
Detalles de las funciones
La protección de tráfico ofrece medidas preventivas profesionales y diversificadas:
Limitación de ingreso
Controla las tasas de solicitudes entrantes según la capacidad del servicio. Aplique la limitación en los puntos de entrada de la aplicación, como gateways, aplicaciones frontend y proveedores de servicios, para evitar que el tráfico exceda la capacidad de procesamiento de los servicios downstream.
La limitación de ingreso es la primera línea de defensa: rechaza las solicitudes excedentes antes de que ingresen al sistema y protege todos los servicios downstream en la cadena de llamadas.
Aislamiento de concurrencia
Limita el número máximo de hilos concurrentes para un recurso determinado. Si una llamada lenta retiene un hilo durante demasiado tiempo, las demás interfaces mantienen su capacidad de respuesta porque el pool de hilos no se agota.
Utilice el aislamiento de concurrencia cuando sus servicios compartan un pool de hilos común y una sola dependencia lenta pueda monopolizar todos los hilos disponibles.
Aislamiento de hotspot
Separa el tráfico hotspot del tráfico normal. Esto evita que los hotspots no válidos consuman la capacidad destinada al tráfico normal. Cuando un valor de parámetro específico —como un ID de artículo consultado frecuentemente— genera una carga desproporcionada, el aislamiento de hotspot limita la tasa para ese parámetro de modo que las solicitudes normales conserven su parte de la capacidad.
Corte de circuito en dependencias inestables
Aplica el corte de circuito tanto entre aplicaciones como dentro de ellas. Cuando una dependencia downstream se vuelve inestable —responde lentamente o devuelve errores por encima de un umbral— el cortocircuito se activa para limitar el radio de impacto y prevenir fallos en cascada.
Monitoreo
La protección de tráfico proporciona monitoreo de tráfico en tiempo real, así como diagnóstico y análisis de tráfico a nivel de cliente. Esto ayuda al personal de O&M a tomar medidas preventivas para proteger la estabilidad de la aplicación.
La protección de tráfico ofrece tres niveles de observability:
|
Nivel |
Alcance |
|
Monitoreo de nodo único |
Métricas en tiempo real para instancias de servicio individuales |
|
Monitoreo agregado |
Vista global del clúster que combina métricas de todos los nodos |
|
Consultas de datos históricos |
Datos de tráfico pasados almacenados para análisis retrospectivo |
Referencias
Sentinel -- el framework de código abierto en el que se basa la protección de tráfico.