azure - 在基于 Azure 的微服务架构中添加聚合的位置
问题描述
我们正在使用 Azure API 管理的网关功能,除其他外,将请求路由到我们的微服务。
对于来自 UI 的某些请求(基于角度),我们希望 UI 只需执行一个请求即可检索它需要的所有数据。例如,请求可能是获取仪表板数据,其中构成仪表板的数据将来自多个微服务。
我们正在考虑的选项是:
- 使用网关添加聚合逻辑
- 添加一个聚合微服务,网关将调用它
- 添加一个聚合服务,它调用网关
对于选项 1 和 2,我们的 UI 将直接调用 API 管理网关。对于选项 3,UI 将调用聚合服务,然后该服务将调用 API 管理网关。
我们倾向于选项 1,但是看起来这可能会有点复杂,因为我们可能需要一些 c# 用于聚合逻辑(或者使用发送请求策略,类似于此处所示)。
对于选项 3,我们可能会选择基于 nodejs/express 的应用服务。我们没有找到任何在调用网关之前放置聚合的参考(我们最接近的参考与此处显示的两层网关示例有些相似,看起来像这样,我们的选项 3 方法可能看起来像这个)。
我们的微服务目前都是用java编写的。
我们应该选择哪个选项?
解决方案
推荐阅读
- amazon-web-services - 跟踪“上次使用”之外的 IAM 访问密钥使用情况
- powershell - Powershell:如何让 powershell 在您使用已知名称搜索时为您提供选择正确用户的选项
- javascript - Shopify Admin API 无法在 Google 托管服务器上运行,但可以在 localhost 上运行
- iis - HTTPS 重定向重写规则在 IIS 中不起作用
- laravel - Laravel 5 - 在验证时清理某些输入
- javascript - 来自 React 组件的异步/等待调用操作
- r - 将 R 中的数据框与行名中的重复值合并
- linux - 在bash中迭代数组时获取变量名
- php - 隐藏来自数据库的 PHP URL 参数
- spotfire - 如何呈现不同的列标题?