我想使用 @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 一个单一的 url,那么负载平衡有什么意义?

Spring-cloud 发布火车 - Camden.SR2

最佳答案

是的,你可以在没有 Ribbon 的情况下使用 Feign,你需要做的就是在你的 Feign Java 接口(interface)类中指定基本 url。

并且您的接口(interface)签名应该具有完整的 url 端点。

一个例子如下所示。

@FeignClient(url = "http://someurl")
public interface MyInterface {

    @GetMapping("path/to/endpoint")
    MyObject get();

}

上面的示例代码展示了如何向 http://someurl/path/to/endpoint 发送 GET 请求

关于java - 是否可以在没有功能区的情况下使用 @FeignClient?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57704723/

10-09 02:45