处理不同版本的微服务

时间:2018-09-24 04:48:27

标签: microservices versioning

我的供应商可以登录到主管理系统(系统A),该系统管理SaaS(系统B)的多个预订。每个系统B分别托管在隔离的服务器上。系统A和系统B可以通过REST API进行通信。

我的供应商可以随时选择更新系统B,这会导致我这边有多个版本的系统B。

情况:

Vendor 1 > subscription 1 > version 1.0
Vendor 1 > subscription 2 > version 1.1
Vendor 1 > subscription 3 > version 1.2

现在我在设计系统A时遇到问题,以便它可以管理系统B的所有版本。

由于它们通过API进行通信,因此我正在考虑添加一个适配器层以转换系统B中不同版本的模型。

Adapter for multiple version

但是,某些模型在系统A和系统B之间共享。例如,

  1. 系统A可以向所有系统B推送新记录(Z型)。
  2. 系统B版本1.3中的模型Z具有额外的属性。
  3. 当我发布系统B版本1.3时,系统A将获得最新的Model Z。
  4. 当系统A需要推送到系统B时,它将对其进行转换以匹配系统B中的模型Z。

现在我的问题是:

  1. 这是管理不同版本服务器的正确做法吗?
  2. 管理Model Z的最佳做法是什么?通过具有不同版本的单一来源进行管理?还是2个来源为2个不同的系统,以实现关注点分离?

0 个答案:

没有答案