是否可以在没有功能区的情况下使用@FeignClient?
Is it possible to use @FeignClient without 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
可以禁用 eureka 并为功能区提供硬编码的主机列表,例如:
${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 或功能区配置中的主机?
我希望一些 prop 也能禁用 feign 的功能区,因为如果给 feign 一个,负载平衡有什么意义 url?
Spring-云发布列车-Camden.SR2
是的,你可以在没有 Ribbon 的情况下使用 Feign,你需要做的就是在你的 Feign Java 界面 class.
中指定基础 url
并且您的接口签名应该具有完整的 url 端点。
示例如下。
@FeignClient(url = "http://someurl")
public interface MyInterface {
@GetMapping("path/to/endpoint")
MyObject get();
}
上面的示例代码显示了如何向 http://someurl/path/to/endpoint
发送 GET 请求
我想使用 @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 可以禁用 eureka 并为功能区提供硬编码的主机列表,例如:
${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 或功能区配置中的主机?
我希望一些 prop 也能禁用 feign 的功能区,因为如果给 feign 一个,负载平衡有什么意义 url?
Spring-云发布列车-Camden.SR2
是的,你可以在没有 Ribbon 的情况下使用 Feign,你需要做的就是在你的 Feign Java 界面 class.
中指定基础 url并且您的接口签名应该具有完整的 url 端点。
示例如下。
@FeignClient(url = "http://someurl")
public interface MyInterface {
@GetMapping("path/to/endpoint")
MyObject get();
}
上面的示例代码显示了如何向 http://someurl/path/to/endpoint
发送 GET 请求