是否可以在没有功能区的情况下使用@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 请求