Red de conocimiento informático - Problemas con los teléfonos móviles - equilibrio de carga de spring cloud+nacos+gateway (área funcional)

equilibrio de carga de spring cloud+nacos+gateway (área funcional)

Ribbon es una herramienta de equilibrio de carga del lado del cliente, implementada en base a Netflix Ribbon. A través de la encapsulación de Spring Cloud, podemos convertir fácilmente y automáticamente solicitudes de plantillas REST orientadas a servicios en llamadas de servicio con equilibrio de carga del lado del cliente.

Equilibrio de carga, el nombre en inglés es Load Balance, significa equilibrar la carga (tareas de trabajo) en múltiples unidades en ejecución para completar las tareas de trabajo de forma colaborativa. El equilibrio de carga se basa en la estructura de red original y proporciona un método transparente, económico y eficaz para ampliar el ancho de banda de servidores y dispositivos de red, mejorar las capacidades de procesamiento de datos de la red, aumentar el rendimiento y mejorar la disponibilidad y flexibilidad de la red.

Este artículo prueba principalmente cómo lograr el equilibrio de carga basado en Springcloud+nacos+gateway.

Integramos Springcloud+nacos+gateway e implementamos que cuando los tres proveedores comienzan, pueden ser sondeados a través del gateway.

1 nocas de equilibrio de carga.

Nocas en sí integra cinta y utiliza sondeo de forma predeterminada.

b.Cómo establecer el peso en nocas e implementar el peso.

Reglas personalizadas (clase de implementación IRule)

d. En términos de peso, primero puede establecer el peso en 0 y luego cerrar el servicio único y desconectarse correctamente.

2 Utilice la cinta para conectarse directamente a la IP

Utilice políticas automáticas, sondeos, aleatorización, etc. Cinta de cortesía.

Comprobación de estado

5. Reglas habituales

Apague uno de los proveedores y sondee inmediatamente a través de la puerta de enlace. Se descubre que la puerta de enlace seguirá llamando. inactivo el proveedor, lo que provoca que la consulta falle. Pero después de unos 5 segundos, el sondeo vuelve a la normalidad y se detiene la llamada.

La puerta de enlace llama al proveedor primero a través del centro de registro de nacos. El mecanismo de latido del corazón de nacos verifica si el proveedor es normal cada 5 segundos, por lo que ocurre el fenómeno anterior.

1 En la clase de inicio, solo necesita registrar la clase de configuración y la clase de implementación de IRule en el contenedor Spring.

2 Pruebe el sondeo y la aleatorización respectivamente, y se pueden cargar normalmente de acuerdo con las reglas.

1 Añadir módulo gatewayriboonip.

2 pom agrega dependencia de spring-cloud-starter-gateway y Spring-Cloud-Starter-Netflix-Ribbon.

3 Modifique application.yml para configurar el equilibrio de carga.

4 se inicia y la prueba puede sondear normalmente.

5? Modifique application.yml de la siguiente manera para probar del modo de sondeo al modo aleatorio.

NFLoadBalancerRuleClassName:com Netflix . Regla aleatoria del balanceador de carga

En este punto, se cierra un proveedor y luego se sondea. Las consultas siempre fallarán al llegar a este proveedor. Necesitamos agregar un proceso de verificación de estado que pueda detectar y eliminar el servicio de la lista de servicios cuando esté inactivo y verificar si el servicio está en línea una vez que esté en línea.

1 Comprobación de salud añadida.

El módulo proveedor añade la interfaz de descanso HealthController.

Agregar clase de configuración para generar RestTemplate.

Agregue la categoría de verificación de estado para implementar iping. Herede la interfaz IPing para determinar si el servicio está disponible. Agregamos una interfaz de salud al microservicio y llamamos a esta interfaz en la puerta de enlace. Si vuelve a la normalidad, consideramos que el microservicio está disponible.

? Modifique application.yml para agregar Ping de la siguiente manera

nfloadbalancerpingclass name:com . Roy . spring nacos . gatewayribbonip .

Encuesta exitosa.

b. Desactive uno de los proveedores y la consulta falla al sondear a ese proveedor.

La prueba falló aquí, la consulta siguió fallando al usar RoundRobinRule y el proveedor que no pudo saltar automáticamente falló.

Sin embargo, si personaliza LoadBalancerRule, puede omitir su configuración.

1 Agregue mi regla extendiendo la LoadBalanceRule abstracta.

2 Después de reiniciar, consulte y pruebe con éxito de acuerdo con las reglas.