我想使用Feign而不需要客户端负载均衡器Ribbon,因为我不想运行Eureka,这需要分布式和高可用性。相反,由Route53管理的具有内部DNS名称的内部ELB就可以很好地解决问题。
向@FeignClient
提供普通URL始终会导致no loadbalancer found for ..
,因此我尝试阻止Feign使用Ribbon:
Spring Cloud Netflix附带FeignRibbonClient
,如果ribbon-loadbalancer
中的ILoadBalancer
存在,则会使用它。但是,如果排除了此依赖项,则FeignConfiguration
会出现问题:
Bean creation exception on FactoryBean type check: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'apiVersionClient': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: feign.codec.Decoder org.springframework.cloud.netflix.feign.FeignConfiguration.decoder; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
欢迎提出想法 :-)
ribbon-loadbalancer
? - spencergibb@RibbonClient
配置,并将ServerList
设置为@Bean
)。这并不意味着Spring Cloud中没有可能阻止您轻松完成此操作的错误。 - Dave Syer