microservices - 跨微服务依赖的版本控制
问题描述
架构概述 考虑以下简化的微服务架构:
- 服务 A - 门户
- 服务 B - API
服务 A 依赖于服务 B。
问题陈述 如果我想在服务 A 中构建一个新的向后兼容功能,它需要对服务 B 进行更改,那么根据语义版本控制的定义,我必须为这两个服务创建一个新的次要版本。但是,服务 A 需要部署服务 B 的新次要版本。我怎样才能有效地管理这种依赖关系?我是否需要创建服务 A 的新主要版本来指示更改的依赖项?我想避免在尚未部署服务 B 的情况下部署服务 A...
所以基本上; 我应该如何对组件本身的非破坏性(即次要)更改进行版本更改,但如果版本不匹配会破坏整个应用程序?
解决方案
您不需要破坏现有的 API 合同。让我们调用您现有的 API(服务 B)myapi/v1/products。您根本不会更改现有 API 或此端点中的任何内容。您将创建名为 myapi/v2/products 的新版本并部署它。您可以选择在何处以及如何托管该端点。此端点具有您想要的所有最新更改。您的门户尚未受到影响。
现在,您将部署门户并将 myapi/v1/ 用于需要向后兼容的功能,将 myapi/v2/ 用于新功能,这样您就可以在不破坏功能的情况下管理 API 版本控制。
希望有帮助!
推荐阅读
- javascript - 在 JSON 对象中,如何在不知道密钥的情况下检索 JSON 对象中的对象值?
- r - 使用 Seaborn 的网状编织错误(不支持 SVGLite?)
- python - Numpy 数组 - 矩阵乘法数组但取 1 - 第二个数组中某些列中的元素
- javascript - 如何根据所选值从 JSON 数组构建列表?
- php - 关闭浏览器时存储登录 cookie
- javascript - 在强大的上传中使用 compress_image 时“文件不存在”
- android - 如何在 Kotlin 中使用 when 表达式一次初始化 3 个变量
- ansible - 加密 ansible vault-password-file
- javascript - GetStatusHistoryForPastWeek 修改
- excel - 运行时错误“1004”,无法设置范围类的隐藏属性