java - 将声明式 REST 客户端迁移到 Kubernetes 配置

标签 java spring spring-cloud spring-cloud-feign

我必须将 spring-cloud 项目迁移到 Kubernetes 部署。这意味着删除网关、配置服务器、发现服务器等的依赖关系。然而,我想保留的一部分是 spring-cloud open feign 提供的声明性 REST 客户端,这样我就可以避免为服务间通信编写客户端实现。

我想出的解决方案看起来像这样:

@FeignClient(name = "useless", url = "http://${product.service.url:localhost:3333}")
public interface ProductApiFeign extends ProductApi {}

product.service.url 是 Kubernetes 服务名称和端口,而 name 只是一个任意字符串值,因为否则验证不会让我运行该程序。 ProductApi 是一个 Swagger 生成的接口(interface),具有特定的注释。

我部署了它并且它按预期工作。

问题是:是否有更好的方法来实现基于带注释的接口(interface)的声明式 REST 客户端,而不必包含 spring-cloud 依赖项?我必须包含名称值这一事实是否会对我产生负面影响?欢迎任何建议。

最佳答案

OpenFeign 无需 Spring Cloud 即可工作,但有 @FeignClient 并支持 Spring 注解(@RequestMapping@GetMapping 等...)仅由 spring-cloud-openfeign 提供。

关于java - 将声明式 REST 客户端迁移到 Kubernetes 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61138508/

相关文章:

Java - 调用方法时遇到问题

java - Struts2 + Spring 3.2 + Hibernate 3 java.lang.NullPointerException 实战(执行)

java - 如何从 Bean 定义中访问 Bean Id

java - Spring Cloud Config Encryption API 忽略最后的特殊字符

spring-cloud - Spring Cloud : Canary Deployments with Zuul

java - 使用 JSP 检查数据库中是否已存在电子邮件 ID

java - 代码示例中的堆栈溢出解释

java - Spring JUnit4 手动/自动布线困境

java - Spring aop 资源

spring-cloud - Spring Cloud 配置服务器 - 如何添加在 EnvironmentEncryptorEnvironmentRepository 的 findOne() 方法中可见的自定义 PropertySource