寻找可以调用多个微服务的API网关技术

Jer*_*nan 6 gateway service-discovery amazon-web-services microservices aws-api-gateway

在我的公司,我们计划将我们的后端解决方案(一个巨大的巨型组件)迁移到更性感的微服务架构.

到目前为止,我们已经对许多技术进行了基准测试,我们可能会将AWS基础架构与AWS EC2容器服务(ECS)结合使用.我们的微服务将包装在Docker容器中.

我们已经部署了容器并配置了自动扩展和负载平衡.一切都很好.

但是,我们正在寻找一种API网关技术,它可以让我们只需要一个客户端请求即可调用多个微服务.

我们的想法是开发一个看起来像Netflix的架构:http: //techblog.netflix.com/2013/01/optimizing-netflix-api.html

例如:

如果客户端(网站)想要获取客户端的购物车.它会向API发送Get请求.

首先,我希望我们的网关调用"用户"微服务,它将返回用户的信息以及他的购物车包含的id产品列表:

{
    "name": "john",
    ....,
    "cart": [1,2,3]
}
Run Code Online (Sandbox Code Playgroud)

然后,在没有直接响应客户端的情况下,网关将调用"产品"微服务以使Json与每个产品的信息保持一致.

{
    "name": "john",
    ....,
    "cart": [
         {"id": 1, "name": "Iphone", ...},
         {"id": 2, "name": "Ipad", ...},
         {"id": 3, "name": "Ipod", ...}
    ]
}
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是你知道一项可以做这项工作的好技术吗?

Mar*_*k B 2

为此,您可以使用 AWS Lambda。让 API Gateway 调用 Lambda 函数。让 Lambda 函数执行您所描述的操作,调用您的 ECS 服务,然后返回最终结果。