是否可以同时在生产中部署多个版本的服务。根据我的假设,这应该是基于微服务/api 的项目或移动项目的常见模式。我想知道你是怎么做到的,以及行业中针对此类问题的常见模式是什么。如果您的回答围绕 AWS 环境或 Kubernetes 环境进行,那将很有帮助。
提前致谢。
最佳答案
Is it possible to have multiple versions of service(s) deployed in production at the same time
是的,这是可能的。我们的想法是同时将所有使用过的微服务保留在生产环境中(v1、v2 ...),并关闭不再使用的版本。为此,您应该以某种方式知道某个版本何时不再使用。
AFAIK,你必须选择:
对于每个新版本,您都会创建一个连接到相同(现已升级)微服务的新端点(如/v2/someApiCall),并逐渐指示客户端使用新端点;当不再使用旧端点时,您将其删除;这是首选方式。
对于每个新版本,您都会创建一个与旧微服务共享相同持久性的新微服务;您应该避免使用此解决方案; Netflix 在极少数情况下使用此策略,因为更换老消费者的成本太高。
您可以在 Building microservices by Sam Newman 的第 62 页阅读更多内容.
关于api - 如何在生产中为基于微服务的应用程序部署多个版本的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44124914/