我想使用@FeignClient(url=...),让它直接转到给定的url,而不是从ribbon配置中选择主机。
我知道在spring-cloud feign默认情况下会与ribbon和eureka一起出现。
根据这一点:https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-ribbon.html#spring-cloud-ribbon-without-eureka可以禁用eureka并为ribbon提供硬编码的主机列表,例如:
${serviceId}:
ribbon:
listOfServers: ${host}根据这一点:https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-feign.html可以为feign提供一个明确的url,例如:
@FeignClient(name = "${feign.name}", url = "${feign.url}")
public interface StoreClient {
//..
}所以我有点困惑FeignClient到底会用什么:提供的url还是ribbon配置中的主机?
我希望一些道具也会为feign禁用ribbon,因为如果feign只有一个url,那么负载均衡的意义是什么?
Spring-cloud发布系列- Camden.SR2
发布于 2019-09-08 22:25:47
是的,你可以在没有Ribbon的情况下使用Feign,你所需要做的就是在你的Feign Java接口类中指定基本url。
并且您的接口签名应该具有完整的url端点。
下面显示了一个示例。
@FeignClient(url = "http://someurl")
public interface MyInterface {
@GetMapping("path/to/endpoint")
MyObject get();
}上面的示例代码显示了如何向http://someurl/path/to/endpoint发送GET请求
https://stackoverflow.com/questions/57704723
复制相似问题