为什么微服务需要API网关

为什么微服务需要API网关?

1.防止内部关注暴露给外部客户端 API网关将外部公共API与内部微服务API分开,允许添加微服务和更改边界。其结果是能够在不对外部绑定客户端产生负面影响的情况下重构和适当大小的微服务。它还通过为您的所有微服务提供单一入口点,对客户端隐藏了服务发现和版本控制详细信息。

2.为您的微服务添加额外的安全层 API网关通过提供一个额外的保护层来防止恶意攻击,例如SQL注入,XML解析器漏洞和拒绝服务(DoS)攻击。

3.支持混合通信协议 虽然面向外部的API通常提供基于HTTP或REST的API,但是内部微服务可以从使用不同的通信协议中受益。协议可能包括的Protobuf或AMQP,或者用SOAP,JSON-RPC或XML-RPC系统集成。API网关可以在这些不同的协议之上提供外部的,统一的基于REST的API,允许团队选择最适合内部架构的API。

4.降低微服务复杂性 如果微服务具有共同的关注点,例如使用API令牌的授权,访问控制实施和速率限制。每个这些关注可以通过要求每个服务都实现它们,但这为微服务的开发增加更多的时间成本。API网关将从您的代码中删除这些问题,允许您的微服务关注手头的任务。

5.微服务模拟和虚拟化 通过将微服务API与外部API分离,您可以模拟或虚拟化服务,以验证设计要求或协助集成测试。