首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Google (网关)在单个api端点中创建来自多个微服务(云运行容器)的组合响应?

如何使用Google (网关)在单个api端点中创建来自多个微服务(云运行容器)的组合响应?
EN

Stack Overflow用户
提问于 2019-10-14 12:37:34
回答 3查看 1.8K关注 0票数 1

我对firebase平台很熟悉,但作为整体来说,我是google云平台的新用户。我正在做一个使用微服务结构构建的项目,我确实有很多问题,我找不到答案,或者更好,我找不到任何例子。不幸的是,我能找到的所有例子都很简单,可以为我的问题推断出一个可行的答案。

我采用了新的云运行服务,并决定使用完整的托管版本(而不是kubernetes)。我构建了很少的微服务(每个服务都是使用each构建的,或者使用用于python的烧瓶构建的--这取决于服务的功能)。每个微服务都公开自己的端点,并有自己的api来调用方法--我使用一个服务帐户来允许应用程序执行内部调用。

现在,我想将应用程序公开给外部应用程序(特别是向使用vuejs技术构建的我的客户端),并且我试图利用另一个google产品来创建和公开一个api: google端点。

我的问题(特别提到云运行结构)涉及到如何才能以及我需要做些什么来创建一个api端点来与客户端应用程序进行通信,客户端应用程序内部调用多个服务并将它们的响应组合在一起。

为了清楚起见,让我们举个例子:

  • 云运行服务1 -> crud用户api
  • 云运行服务2 -> crud产品api
  • 云端点外部可见的api ->从服务1获取用户,在从服务2获取产品之后,返回用户Jane Doe的所有绿色产品的组合响应。

我如何在端点网关中直接聚合响应,检查是否失败,如果一切顺利,将聚合响应发送到客户端?

我需要在其他方面构建聚合端点,例如云函数?或者我可以直接在google端点网关上做这件事?

注意,对于云运行,google端点是另一个云运行容器。

谢谢大家的帮助,这里几乎没有选择了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-16 08:47:49

在我看来,从架构的角度来看,对你来说最好的选择是创建一个新的微服务,它将接受另外两个微服务的响应,然后将它们聚合起来。

我知道您希望将响应聚合到api-geteway中,并且无法找到相应的代码示例。这里我找到了一个指南,说明你想要实现什么。完整的代码实现可以在这个存储库中找到。

不过,请记住,这种实现的想法并不是最佳实践。

票数 3
EN

Stack Overflow用户

发布于 2019-10-14 13:38:13

根据我的理解,API网关应该只是作为一个代理来工作,将所有的微服务表示为一个单一的端点。对于这种情况,我认为您可以有以下两种方法:

1:实现一个新的微服务(或任何现有的服务),它将执行响应的调用和聚合。

2:客户端(如UI)可以调用服务,也可以在服务端进行聚合。

我觉得,在api网关上这样做不是个好主意.

票数 4
EN

Stack Overflow用户

发布于 2020-01-13 09:44:23

这是可以的,只有当这两个将要合并的服务是独立的。这意味着它们之间不存在功能/业务关系,在聚合过程中不会出现并发或不一致问题。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58377019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档