API 网关设计

Posted

技术标签:

【中文标题】API 网关设计【英文标题】:API Gateway Design 【发布时间】:2019-01-07 04:49:47 【问题描述】:

API 网关http://microservices.io/patterns/apigateway.html 似乎是微服务架构中采用的一个很好的模式(不是服务之间的内部通信)。

但我有以下疑问

    我无法理解 API 网关本身应该如何设计。我们不能只为所有服务提供一个 api 网关。例如对于 Uber,我们有 旅行、出租车、司机、用户、定价微服务,那么我们应该设计多少个 API 网关。

    在https://medium.com/netflix-techblog/optimizing-the-netflix-api-5c9ac715cf19 中,动态端点是什么意思。

我在想,就像在 Uber 案例中一样,要显示用户首页,我们需要出租车和定价。因此,我们将在 api-gateway some /home 中公开一个 API,然后从这里异步调用 Pricing,Cabs api 将合并并返回响应。有没有击球手的方法来做到这一点?

【问题讨论】:

下面的回答对你有帮助吗? 【参考方案1】:

在云架构中,当您拥有 RESTful 接口时,通常会有一个 API 网关将您的请求重定向到负载均衡器、无服务器功能、队列或任何您想要/需要的东西:https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started.html

对于微服务之间的通信,我建议使用消息队列来解耦。一段时间后,您的合并想法可能会变得难以维护。查看 SQS:https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-tutorials.html

【讨论】:

以上是关于API 网关设计的主要内容,如果未能解决你的问题,请参考以下文章

企业级API网关的设计

如何做好 ​API 网关的服务安全设计?

API网关架构设计

什么是API网关 如何设计亿万级统一网关

自建API网关「架构设计篇」

一个超简洁API网关的设计思路