Explicación detallada y práctica del equilibrio de carga de Robbin --- componentes de SpringCloud (3)

1¿Por qué utilizar Robbin?

En la explicación detallada y práctica de Eureka: caso del componente Spring Cloud (2) , iniciamos un módulo de proveedor falso y luego llamamos a la interfaz falsa a través de fingido-consumidor-8080 para acceder a él.
Pero en entornos reales, a menudo abrimos muchos grupos de módulos de proveedores falsos. En este momento habrá múltiples servicios en la lista de servicios que obtengamos ¿A cuál debemos acceder?
Generalmente, en este caso, necesitamos escribir un algoritmo de equilibrio de carga y seleccionar entre varias listas de instancias.

2. Concepto Robbin

Insertar descripción de la imagen aquí

Ribbon es un LB en proceso, es solo una biblioteca de clases integrada en el proceso del consumidor, que el consumidor la utiliza para obtener la dirección del proveedor de servicios.
Entonces solo necesitamos configurar la política de equilibrio de carga en el lado del consumidor.

LB en proceso: integre LB en el consumidor. El consumidor aprende qué direcciones están disponibles en el centro de registro de servicios y luego selecciona un servidor adecuado entre las direcciones disponibles.

Tres prácticas de equilibrio de carga

El equilibrio de carga en el caso se implementa en base a openfeign+eureka.
Después de la introducción de spring-cloud-starter-openfeign, no es necesario introducir dependencias adicionales cuando se usa Ribbon como equilibrador de carga del cliente, porque Ribbon está integrado en la dependencia spring-cloud-starter-openfeign introducida.

Pasos de implementación:

1. Inicie el cliente eureka
2. Inicie servicios de múltiples proveedores y regístrese en eureka
3. Configure los parámetros de equilibrio de carga en el lado del consumidor

1. Inicie el cliente eureka

Insertar descripción de la imagen aquí

2. Inicie servicios de múltiples proveedores y regístrese en eureka

  1. Para observar el efecto de equilibrio de carga, modifique el método getHandle en el servicio fingir-provider-modules.

    Insertar descripción de la imagen aquí

  2. Iniciar proyectos de instancias de múltiples proveedores

    Insertar descripción de la imagen aquí
    Insertar descripción de la imagen aquí

  3. Al observar la consola eureka, encontramos que 3 proveedores se registraron correctamente
    http://127.0.0.1:10086/
    Insertar descripción de la imagen aquí

3. Configure los parámetros de equilibrio de carga en el lado del consumidor.

feign-provider: # 服务名
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule  # 选择负载均衡策略,默认为轮询方式,当前配置为随机方式
    ConnectTimeout: 250                 # 连接超时时间
    ReadTimeout: 1000                   # ribbon 读取超时时间
    OkToRetryOnAllOperations: true      # 是否对所有操作都进行重试
    MaxAutoRetriesNextServer: 1         # 切换实例的重试次数
    MaxAutoRetries: 1                   # 对当前实例的重试次数

Los resultados observados para visitas múltiples son aleatorios
http://localhost:8080/consumer/depart/get/2
Insertar descripción de la imagen aquí

Análisis del código fuente de cuatro Robbin

Supongo que te gusta

Origin blog.csdn.net/weixin_43811057/article/details/130623251
Recomendado
Clasificación