是否可以在没有功能区的情况下使用@FeignClient?

Posted

技术标签:

【中文标题】是否可以在没有功能区的情况下使用@FeignClient?【英文标题】:Is it possible to use @FeignClient without ribbon? 【发布时间】:2020-01-02 09:48:15 【问题描述】:

我想使用 @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 或主机?

我希望一些道具也可以禁用 feign 的功能区,因为如果 feign 被赋予单个 url,那么负载平衡的意义何在?

Spring-cloud 发布火车 - Camden.SR2

【问题讨论】:

【参考方案1】:

是的,您可以在不使用 Ribbon 的情况下使用 Feign,您只需在 Feign Java 接口类中指定基本 url。

而且你的接口签名应该有完整的 url 端点。

一个例子如下所示。

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

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


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

【讨论】:

该死的,我认为 url 不会有太大变化。谢谢。 @Joel Eze,如果我们不传递基本 url,那么必须指定 $serviceId:ribbon: listOfServers: $host??

以上是关于是否可以在没有功能区的情况下使用@FeignClient?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在没有 GUI 或类的情况下使用 PyQt5 QtSerialPort?

是否可以在不依赖 jQuery UI 的情况下使用 AngularJS 实现拖放功能?

是否可以在没有 pthread_join() 的情况下使用 pthread?

是否可以在没有 CUDA/OpenCL 等的情况下使用 GPU 进行光线追踪?

Flutter,是不是可以在没有小部件构建方法的情况下在功能中使用 Firestore Stream Builder?

在没有闪光灯的情况下实现录音功能的可能方法