Api网关或无Api网关

时间:2015-12-23 19:09:44

标签: microservices

我正在开发基于microservice architecture的应用程序。在此,每个service都是可以独立展开的play-scala application曝光rest apis。我想在这些服务之上实现一个Api gateway来映射传入的请求。我遵循这里讨论的架构:Building Microservices

很少有基于微服务架构的成熟度很高的项目。其中一个是Reactive Microservices。但是这个项目没有使用api gateway pattern,似乎跟随Anti Pattern这个项目开启issue关于丢失的Api网关这里的贡献者声称他们没有关注api gateway pattern,因为它有single-point of failure的风险。

这种不同的意见对我来说非常混乱。所以,我正在寻找关于我是否应该使用Api Gateway的建议。 What is the right practice here ?

1 个答案:

答案 0 :(得分:6)

API网关不会像负载均衡器那样引入单点故障。任何严肃的API网关都应该能够在高可用性模式下运行,从而消除单点故障。

API网关鼓励良好的文档和团队内的计划。某些API网关允许您导入Swagger规范https://swagger.io/以创建API。

某些网关允许您创建虚拟端点以模拟上游目标的响应。这样,如果您的服务尚未可用,您仍然可以编写代码,并在准备好后切换到目标。

API网关应该能够对上游目标进行循环负载平衡,从而无需添加专用负载均衡器。您还可以将网关配置为定期命中健康检查端点,并在服务不可用时自动从LB中删除目标。

网关将为您处理身份验证。无论是通过JWT,Oauth,简单,开放等。您的开发人员可以专注于构建他们的微服务。你的微服务可以是微观的。网关将位于基础设施的边缘,并为您处理安全问题。