可以不使用功能区使用@FeignClient吗?

时间:2019-08-29 07:01:58

标签: java spring-cloud spring-cloud-feign feign netflix-ribbon

我想使用@FeignClient(url=...)并将其直接转到给定的URL,而不是从功能区配置中获取主机。

我知道,在春季云计算中,假装默认情况下与功能区和尤里卡一起出现。

据此: 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 可以为假装提供明确的网址,例如:

@FeignClient(name = "${feign.name}", url = "${feign.url}")
public interface StoreClient {
    //..
}

所以我对FeignClient到底会使用什么感到有些困惑: 从功能区配置中提供网址或主机?

我希望某些道具也可以禁用功能区的假冒功能,因为如果给假装一个URL,负载平衡的意义何在?

春云发布列车-Camden.SR2

1 个答案:

答案 0 :(得分:1)

是的,您可以使用不带功能区的Feign,您所需要做的就是在Feign Java接口类中指定基本URL。

并且您的界面签名应具有完整的url端点。

下面显示一个示例。

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

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

}

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