现在,在使用微服务时,客户端必须处理来自微服务架构的所有复杂性,例如聚合来自各种服务的数据,维护多个端点,增加客户端和服务器的干扰,以及为每个服务单独进行身份验证。
客户端对微服务的依赖直接使得重构服务变得困难。一种直观的方法是在新服务层后面隐藏这些服务,并提供为每个客户定制的API。
此聚合器服务层也称为API网关,它是解决此问题的常用方法。
基于API网关的微服务架构模式。
客户的所有请求首先通过API网关。然后它将请求路由到适当的微服务。
典型的API网关包括:
• 安全性(身份验证和潜在授权)
• 管理访问配额和限制
• 缓存(代理语句和缓存)
• API组成和处理
• 路由(可能处理)到“内部”API
• API健康监测(性能监测)
• 版本控制(可能是自动化)
API网关的优点
• 在一个地方实施
• 简化API源代码本身,因为这些问题是外部化的
• 提供API的中央和独特视图,因此更有可能允许一致的策略
API网关缺点
• 可能的单点故障或瓶颈
• 由于所有API规则都在一个地方,因此存在复杂性风险
• 锁定和迁移的风险可能并不简单
API增长创造了机会,漏洞
为