2

假设我有 2 个微服务(服务 A,服务 B),它们可以双向调用,假设如果 A 调用 B,那么 A 的响应 json 的一些参数将作为 B 的请求参数的其他参数使用

现在我意识到,这个问题可以通过使用规范数据模型更好地解决,以便每个服务消费/产生一个规范数据模型,

我的问题是在这种情况下(json)的规范模型应该是什么样子

假设 A 的响应看起来像

{
  "A1": false,
  "A2": {
    "width": 5,
    "height": 10
  },
  "A3": "A green door"
}

并且会有相应的json模式,我不包括在这里

B的类似请求看起来像

{
      "B1": false,
      "B2": {
        "width": 5,
        "height": 10
      },
      "B3": "A green door",
      "B4": ""
       .
       .

    }

属性 A1 映射到 B1,如果我的规范数据模型仅包含具有某个名称的第一个属性(业务名称:例如 -->A1 是分数 B1 -->报告然后业务名称可能是 --> 点数),通常与是微服务还是应该更多地是两个 json 的聚合,每个属性都替换为相应的业务名称?

4

1 回答 1

3

理论上,设计良好的微服务架构不应该需要“传统”规范数据模型,因为每个服务都有其独特的职责域并且只对来自其特定域的数据进行建模。因此,当一个服务使用其他服务时,数据重叠应该是最小的。当使用另一个服务时,数据建模的责任在于源而不是消费者。

然而,在实践中可能并非总是如此,例如,您必须从相似但不相同的来源中提取数据。所以对于您的问题 - 如果您发现需要将服务的数据转换为规范模型,您可能希望尽快执行转换为单个表示(您的第一个想法),而不是保留两种表示(您的第二个主意)。这将有助于进一步简化下游的消费(想象一下需要检查数据结构中多个位置的混乱消费代码)。如果服务在您的控制之下,您可能希望首先将它们发展为在规范模型中提供数据。

于 2018-01-09T03:35:45.497 回答