首页 > 解决方案 > 跨微服务依赖的版本控制

问题描述

架构概述 考虑以下简化的微服务架构:

服务 A 依赖于服务 B。

问题陈述 如果我想在服务 A 中构建一个新的向后兼容功能,它需要对服务 B 进行更改,那么根据语义版本控制的定义,我必须为这两个服务创建一个新的次要版本。但是,服务 A 需要部署服务 B 的新次要版本。我怎样才能有效地管理这种依赖关系?我是否需要创建服务 A 的新主要版本来指示更改的依赖项?我想避免在尚未部署服务 B 的情况下部署服务 A...

所以基本上; 我应该如何对组件本身的非破坏性(即次要)更改进行版本更改,但如果版本不匹配会破坏整个应用程序?

标签: microservices

解决方案


您不需要破坏现有的 API 合同。让我们调用您现有的 API(服务 B)myapi/v1/products。您根本不会更改现有 API 或此端点中的任何内容。您将创建名为 myapi/v2/products 的新版本并部署它。您可以选择在何处以及如何托管该端点。此端点具有您想要的所有最新更改。您的门户尚未受到影响。

现在,您将部署门户并将 myapi/v1/ 用于需要向后兼容的功能,将 myapi/v2/ 用于新功能,这样您就可以在不破坏功能的情况下管理 API 版本控制。

希望有帮助!


推荐阅读