es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo configurar Spring Cloud LoadBalancer con SpringCloudOpenFeign

Cambiar la versión de un proyecto de trabajo a java 17 resultó en la necesidad de aumentar el spring-cloud-starter-openfeign a 3.0.6 (parte del tren de lanzamiento de Spring Cloud 2020.0.0). Dado que Spring Cloud Netflix Ribbon ha sido descontinuado y no está incluido en el tren de lanzamiento 2020.0.0, tengo que hacer algunos cambios en mi proyecto y cambiar a usar Spring Cloud LoadBalancer.

Después de leer algunos artículos, llegué a la siguiente comprensión: Feign estaba utilizando Ribbon como un balanceador de carga. Ribbon estaba configurado en un archivo de propiedades con diferentes listas de hosts para todos los clientes de aplicaciones.

Mis preguntas son:
1. ¿Cómo se supone que debo usar Spring Cloud LoadBalancer, ya que no logré encontrar ejemplos comprensibles para mí?
2. Dado que estoy usando SpringCloudOpenFeign 3.0.6, ¿cuál sería la versión adecuada de spring-cloud-starter-loadbalancer? He intentado usar 3.0.5 (pero obtengo una Excepción inesperada durante la creación del bean; la excepción anidada es java.lang.IllegalArgumentException: anotación @RequestMapping no permitida en interfaces de @FeignClient) y también 3.1.0 (y obtengo java.lang.ClassNotFoundException: org.springframework.cloud.client.loadbalancer.LoadBalancerClientsProperties); no encontré ninguna información relacionada con ninguno de los errores en google.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en Spring-Boot, Spring-Cloud, Spring-Cloud-Feign, Java-17 y Spring-Cloud-LoadBalancer, puedo brindar algunos conocimientos sobre tus preguntas.

    1. Para usar Spring Cloud LoadBalancer, primero debes agregar la dependencia org.springframework.cloud:spring-cloud-starter-loadbalancer en el archivo pom.xml o build.gradle de tu proyecto. Después de agregar la dependencia, puedes utilizar la anotación @LoadBalancerClient para especificar la configuración de balanceo de carga para tus clientes feign. Aquí tienes un ejemplo de uso:
    @FeignClient(name = "service", fallback = ServiceFallback.class)
    @LoadBalancerClient(name = "service", configuration = LoadBalancerConfiguration.class)
    public interface ServiceClient {
        @GetMapping("/info")
        String getInfo();
    }
    

    En el ejemplo anterior, la anotación @LoadBalancerClient se utiliza para especificar la configuración de balanceo de carga para el cliente feign service. La configuración se especifica en una clase separada LoadBalancerConfiguration, que implementa LoadBalancerClientConfiguration.

    1. Dado que estás usando SpringCloudOpenFeign 3.0.6, la versión adecuada de spring-cloud-starter-loadbalancer también debería ser 3.0.6. Esta versión debería ser compatible con la versión 2020.0.0 de Spring Cloud. Si estás obteniendo errores al usar esta versión, es posible que desees verificar si hay problemas de compatibilidad con las otras dependencias de tu proyecto.

    Espero que esto te ayude. Hazme saber si tienes alguna otra pregunta.

Comments are closed.