Spring cloud Spring Cloud disable Ribbon不适用于Netflix Zuul依赖项
我们在spring应用程序中使用openfeign客户端:Spring cloud Spring Cloud disable Ribbon不适用于Netflix Zuul依赖项,spring-cloud,netflix-zuul,spring-cloud-feign,netflix-ribbon,Spring Cloud,Netflix Zuul,Spring Cloud Feign,Netflix Ribbon,我们在spring应用程序中使用openfeign客户端: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-openfeign-core</artifactId> <version>3.0.1</version> </dependency> <depend
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-openfeign-core</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>3.0.1</version>
</dependency>
我在这里找到了另一个答案:,这表示您需要在外部配置中为客户机定义bean,如下所示:
@Bean
public Client feignClient() {
return new Client.Default(null, null);
}
我这样做了,它现在正在工作,但我不知道这个默认客户端实际做什么,它是否会破坏一些配置等。。。所以我真的不确定这是否是一个解决方案。我还想知道,为什么spring配置spring.cloud.loadbalancer.ribbon.enabled=false
根本不起任何作用
也许我需要等待zuul更新(这可能不会发生)
我使用的是spring cloud 2020.0.1和spring boot 2.4.2,不支持混合3.x和2.x版本。我明白了,但2.2.6.RELEASE是最新版本-希望他们能提供更新,不确定我们是否能摆脱zuul:(zuul 1不再由Netflix维护,已经从spring cloud 2020.0(版本3.0.x)中删除)我现在知道了,但是我们在项目中使用了zuul。因为zuul包含ribbon作为依赖项,所以假装客户端也在使用ribbon(这导致了上面的错误)。这应该通过在配置中禁用ribbon来解决,但由于某些原因,它不起作用,尽管我禁用了它,但Faign仍在使用ribbon。似乎唯一的解决方案是从我们的项目中完全删除zuul。如果您想使用boot 2.4和Spring Cloud 2020.0,那么是的。Spring Cloud gateway是我们的替代品。
spring:
cloud:
loadbalancer:
ribbon:
enabled: false
@Bean
public Client feignClient() {
return new Client.Default(null, null);
}