我正在开发基于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 ?
答案 0 :(得分:6)
API网关不会像负载均衡器那样引入单点故障。任何严肃的API网关都应该能够在高可用性模式下运行,从而消除单点故障。
API网关鼓励良好的文档和团队内的计划。某些API网关允许您导入Swagger规范https://swagger.io/以创建API。
某些网关允许您创建虚拟端点以模拟上游目标的响应。这样,如果您的服务尚未可用,您仍然可以编写代码,并在准备好后切换到目标。
API网关应该能够对上游目标进行循环负载平衡,从而无需添加专用负载均衡器。您还可以将网关配置为定期命中健康检查端点,并在服务不可用时自动从LB中删除目标。
网关将为您处理身份验证。无论是通过JWT,Oauth,简单,开放等。您的开发人员可以专注于构建他们的微服务。你的微服务可以是微观的。网关将位于基础设施的边缘,并为您处理安全问题。