fyr*_*kov 4 java spring-cloud spring-cloud-feign feign netflix-ribbon
我想使用@FeignClient(url=...)并使其直接转到给定的 url,而不是从功能区配置中获取主机。
我知道在 spring-cloud feign 中默认与ribbon和eureka一起出现。
根据这个:https : //cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-ribbon.html#spring-cloud-ribbon-without-eureka 可以禁用尤里卡并提供硬编码列表功能区的主机,例如:
${serviceId}:
ribbon:
listOfServers: ${host}
Run Code Online (Sandbox Code Playgroud)
根据这个: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 {
//..
}
Run Code Online (Sandbox Code Playgroud)
所以我对 FeignClient 到底会使用什么感到有些困惑:提供的 url 或来自功能区配置的主机?
我希望一些道具也可以禁用功能区以进行伪装,因为如果给 feign 一个单一的 url,那么负载平衡有什么意义?
Spring-cloud 发布火车 - Camden.SR2
小智 7
是的,你可以在没有 Ribbon 的情况下使用 Feign,你需要做的就是在你的 Feign Java 接口类中指定基本 url。
并且您的接口签名应该具有完整的 url 端点。
一个例子如下所示。
@FeignClient(url = "http://someurl")
public interface MyInterface {
@GetMapping("path/to/endpoint")
MyObject get();
}
Run Code Online (Sandbox Code Playgroud)
上面的示例代码显示了如何向http://someurl/path/to/endpoint发送 GET 请求