首页 > 解决方案 > 如何使用 Google Cloud Endpoints(网关)在单个 api 端点中创建来自多个微服务(云运行容器)的组合响应?

问题描述

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

我采用了新的云运行服务,并决定使用完整的托管版本(不是 kubernetes)。我构建了一些微服务(每个服务都是使用 express 的 node 或 flask 的 python 构建的 - 取决于服务的功能)。每个微服务都暴露了自己的端点,并拥有自己的 api 来调用方法——我使用服务帐户来允许应用程序执行内部调用。

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

我的问题(特别是指云运行结构)与如何可能以及我需要做什么来创建一个与客户端应用程序通信的 api 端点有关,该端点在内部调用多个服务并将它们的响应合并为一个。

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

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

我需要在其他东西中构建聚合端点,例如云功能?或者我可以直接在谷歌端点网关中完成?

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

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

标签: google-cloud-platformmicroservicesgoogle-cloud-endpointsgoogle-cloud-run

解决方案


根据我的理解,API Gateway 应该只是作为代理工作,将所有微服务呈现为一个端点。对于这种情况,我认为您可以采用以下两种方法:

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

2:客户端(如 UI)可以调用服务并在他们身边进行聚合。

我觉得,在 api-gateway 上做这件事不是一个好主意。


推荐阅读