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.
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.
org.springframework.cloud:spring-cloud-starter-loadbalancer
en el archivopom.xml
obuild.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:En el ejemplo anterior, la anotación
@LoadBalancerClient
se utiliza para especificar la configuración de balanceo de carga para el cliente feignservice
. La configuración se especifica en una clase separadaLoadBalancerConfiguration
, que implementaLoadBalancerClientConfiguration
.Espero que esto te ayude. Hazme saber si tienes alguna otra pregunta.