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

标签 java spring-cloud spring-cloud-feign feign netflix-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-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/

相关文章:

java - 从配置服务器获取客户端端口

spring-cloud - 如何使用swagger-codegen-maven-plugin生成spring cloud feign客户端

spring-boot - 创建名称为 'rabbitListenerContainerFactory' 的 bean 时出错

java - 如何创建切入点来支持接口(interface)继承的假客户端?

spring-cloud - 带 List 参数的 Spring Cloud Feign Client @RequestParam 创建错误的请求

java - 具有所有抽象方法的抽象类 - 实际示例

java - 安卓自定义按钮

java - 自动适应添加到 SashForm 运行时的 Composite

Javaw 在启动外部应用程序时未终止

amazon-web-services - 当我尝试使用 AWS IAM 角色连接 HashiCorp Vault 时如何修复 "Vault location [kv/my-client-service] not resolvable: Not found"?