首页 > 解决方案 > 在基于 Azure 的微服务架构中添加聚合的位置

问题描述

我们正在使用 Azure API 管理的网关功能,除其他外,将请求路由到我们的微服务。

对于来自 UI 的某些请求(基于角度),我们希望 UI 只需执行一个请求即可检索它需要的所有数据。例如,请求可能是获取仪表板数据,其中构成仪表板的数据将来自多个微服务。

我们正在考虑的选项是:

  1. 使用网关添加聚合逻辑
  2. 添加一个聚合微服务,网关将调用它
  3. 添加一个聚合服务,它调用网关

对于选项 1 和 2,我们的 UI 将直接调用 API 管理网关。对于选项 3,UI 将调用聚合服务,然后该服务将调用 API 管理网关。

我们倾向于选项 1,但是看起来这可能会有点复杂,因为我们可能需要一些 c# 用于聚合逻辑(或者使用发送请求策略,类似于此处所示)。

对于选项 3,我们可能会选择基于 nodejs/express 的应用服务。我们没有找到任何在调用网关之前放置聚合的参考(我们最接近的参考与此处显示的两层网关示例有些相似,看起来像这样,我们的选项 3 方法可能看起来像这个)。

我们的微服务目前都是用java编写的。

我们应该选择哪个选项?

标签: azurearchitecturemicroservicesaggregate

解决方案


推荐阅读