0

将工作项目的版本更改为 java 17 导致需要将 spring-cloud-starter-openfeign 增加到 3.0.6(2020.0.0 Spring Cloud 发布系列的一部分)。由于 Spring Cloud Netflix Ribbon 已被弃用并且不包含在 2020.0.0 发布系列中,因此我必须在我的项目中进行一些更改并切换到使用 Spring Cloud LoadBalancer。

看了一些文章后,我得到了以下理解: Feign 是使用 Ribbon 作为 LoadBalancer 的。功能区在属性文件中配置,其中包含所有应用程序客户端的不同主机列表。

我的问题是:

  1. 我应该如何使用 Spring Cloud LoadBalancer,因为我没有为我找到任何易于理解的示例?
  2. 由于我使用的是 SpringCloudOpenFeign 3.0.6,哪一个是合适的 spring-cloud-starter-loadbalancer 版本?我曾尝试使用 3.0.5(但 在创建 bean 期间出现意外异常;嵌套异常是 java.lang.IllegalArgumentException:@FeignClient 接口上不允许使用 @RequestMapping 注释)和 3.1.0(我得到 java.lang. ClassNotFoundException:org.springframework.cloud.client.loadbalancer.LoadBalancerClientsProperties ); 在谷歌上没有找到任何错误的相关信息
4

1 回答 1

1

您可以在此处找到 Spring Cloud LoadBalancer 的综合文档,以及有关如何设置它的所有详细信息。您可以将它与 Service Registry 一起使用,或者,如果您想在属性中手动传递主机列表,您可以使用您还可以在此处SimpleDiscoveryClient 找到使用 Spring Cloud OpenFeign 和 Spring Cloud LoadBalancer 的示例-依赖项不在 pom 中,但通过. 有关从基于 Spring Cloud Netflix 的堆栈切换到当前支持的 Spring Cloud 堆栈的更多信息,您还可以观看此演示记录spring-cloud-starter-loadbalancerspring-cloud-starter-netflix-eureka-client

Spring Cloud OpenFeign3.0.5与 Spring Cloud LoadBalancer 一起使用3.0.4,但是,通常不鼓励手动设置 Spring Cloud 的库版本。您应该改用依赖管理。您可以在Spring Cloud 项目登录页面找到设置。此外,为 Spring Cloud 项目生成正确构建文件的最简单方法是使用start.spring.io

于 2022-01-10T16:55:34.930 回答