google-cloud-platform - 如何使用 Google Cloud Endpoints(网关)在单个 api 端点中创建来自多个微服务(云运行容器)的组合响应?
问题描述
我对firebase平台比较熟悉,但是我对google云平台整体来说是一个比较新的用户。我正在开发一个使用微服务结构构建的项目,但我确实有很多问题无法找到答案,或者我找不到任何示例。不幸的是,我能够找到的所有示例都很简单,可以为我的问题推断出可行的答案。
我采用了新的云运行服务,并决定使用完整的托管版本(不是 kubernetes)。我构建了一些微服务(每个服务都是使用 express 的 node 或 flask 的 python 构建的 - 取决于服务的功能)。每个微服务都暴露了自己的端点,并拥有自己的 api 来调用方法——我使用服务帐户来允许应用程序执行内部调用。
我现在想向外部公开应用程序(特别是向使用 vuejs 技术构建的客户端),并且我试图利用另一个谷歌产品来创建和公开一个 API:谷歌端点。
我的问题(特别是指云运行结构)与如何可能以及我需要做什么来创建一个与客户端应用程序通信的 api 端点有关,该端点在内部调用多个服务并将它们的响应合并为一个。
为了清楚起见,让我们举个例子:
云运行服务 1 -> crud 用户 api
云运行服务 2 -> crud 产品 api
云端点外部可见 api -> 从服务 1 获取用户,然后从服务 2 获取产品并返回组合响应所有绿色产品给用户 Jane Doe。
如何直接在端点网关中聚合响应,检查故障,如果一切顺利,将聚合响应发送到客户端?
我需要在其他东西中构建聚合端点,例如云功能?或者我可以直接在谷歌端点网关中完成?
请注意,对于云运行,谷歌端点是另一个云运行容器。
谢谢大家的帮助,这里几乎没有选择。
解决方案
根据我的理解,API Gateway 应该只是作为代理工作,将所有微服务呈现为一个端点。对于这种情况,我认为您可以采用以下两种方法:
1:实现一个新的微服务(或任何现有的微服务),它将执行调用和响应聚合。
2:客户端(如 UI)可以调用服务并在他们身边进行聚合。
我觉得,在 api-gateway 上做这件事不是一个好主意。
推荐阅读
- r - 在R中用直方图覆盖箱线图
- facebook-graph-api - 无法使用 Facebook GraphAPI 接收 story_insights 网络挂钩
- istio - 我可以在 Istio 中有一个使用 HTTPS 但忽略证书验证的 DestinationRule 吗?
- mongodb - MongoDB 希望映射对象 Feature 的 GeoJSON BoundingBox 属性
- amazon - 亚马逊 MWS - 获取所有商品 FBA+FBM
- history - Framework7后退按钮不会在具有不同参数的同一页面上加载历史记录
- c - C中的双值到十六进制值
- javascript - 如何从与主表相同级别的sequelize中返回连接表的值
- javascript - 在猫鼬模式中定义多个数组元素选项
- c# - uNFC读写MifareClassic1k卡