是否可以在没有功能区的情况下使用@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 进行光线追踪?