将声明式 REST 客户端迁移到 Kubernetes 配置
Migrating declarative REST client to Kuberentes config
我必须将 spring-云项目迁移到 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 生成的接口。
我部署了它,它按预期工作。
问题是:是否有更好的方法来实现基于带注释的接口的声明式 REST 客户端,而不必包含 spring-cloud 依赖项?我必须包含名称值这一事实是否会对我产生任何负面影响?欢迎任何建议。
OpenFeign 在没有 spring 云的情况下工作,但是 @FeignClient
和对 Spring 注释(@RequestMapping
、@GetMapping
等...)的支持只是由 spring-cloud-openfeign 提供。
我必须将 spring-云项目迁移到 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 生成的接口。
我部署了它,它按预期工作。
问题是:是否有更好的方法来实现基于带注释的接口的声明式 REST 客户端,而不必包含 spring-cloud 依赖项?我必须包含名称值这一事实是否会对我产生任何负面影响?欢迎任何建议。
OpenFeign 在没有 spring 云的情况下工作,但是 @FeignClient
和对 Spring 注释(@RequestMapping
、@GetMapping
等...)的支持只是由 spring-cloud-openfeign 提供。