首页 > 解决方案 > 微服务(应用程序级连接)更多 API 调用 - 导致更多延迟?

问题描述

我有 2 个微服务,一个用于一个Orders,一个用于Customers
如下示例
http://microservices.io/patterns/data/database-per-service.html
在此处输入图像描述

哪个工作没有任何问题。
我可以根据输入列出Customers数据和数据OrdersCustomerId

但是现在有一个新的需求来开发一个新的屏幕,
它显示Orders输入日期并在每个信息CustomerName旁边显示Order

在执行时,
我可以获取Orders输入日期列表,但是要根据列表
显示相应的, 我对微服务进行了多个 API 调用,每个调用都发送到 get 导致我们有更多的延迟CustomerNamesCustomerIds
CustomerCustomerIdCustomerName

我知道上述解决方案是一个糟糕的解决方案
所以有什么想法吗?

标签: joinarchitecturemicroservicesdecoupling

解决方案


微服务架构的重点是将问题域拆分为(技术上、组织上和语义上)独立的部分。制作“微服务”美化(应用)表实际上会产生比它解决的问题更多的问题,如果它完全解决任何问题的话。

这里有几件事首先要做:

  • 列出架构约束(即做微服务的原因)。是独立的扩展能力、组织问题、使团队独立等吗?
  • 列出问题域中与业务相关的边界(即理论上不需要彼此工作或不需要同步通信的部分)。

有了这些信息,这里有一些解决问题的方法:

  1. 基于业务边界而不是技术边界重构服务。这意味着使用表格或层或其他技术材料来拆分功能。服务应该是问题域的完整垂直部分。
  2. 或者作为一种变通方法,创建一个汇总数据并可以创建报告的第三个系统。
  3. 或者,如果您发现实际上没有理由保留微服务方法,只需按照您习惯的方式进行即可。

推荐阅读