从单一应用程序切换到微服务时,客户端的行为不能与客户端具有该应用程序的一个入口点的行为相同。简单来说就是微服务上的某一部分功能与单独实现该应用程序时存在不同。
目前在使用微服务时,客户端必须处理微服务体系结构带来的所有复杂性,例如聚合来自各种服务的数据,维护多个端点,客户端和服务器之间的联系增加以及对每个服务进行单独的身份验证等,同时客户端对微服务的依赖性也直接导致了重构服务的困难。一种直观的方法是将这些服务隐藏在新的服务层后面,并提供针对每个客户端量身定制的API。该聚合器服务层也称为API网关,它是解决此问题的常用方法。本文将介绍API网关在解决安全性方面的优势,详情请查看全文:
来自客户端的所有请求都首先通过API网关,然后网关再将请求转到适当的微服务。
典型的API网关包括
- 安全性(身份验证和潜在的授权)
- 管理访问配额和限制
- 缓存(代理语句和缓存)
- API的组成和处理
- 路由(“中转器”)到“内部” API
- API运行状况监视(性能监视)
- 版本控制(自动化流程)
API网关的优势
- 在统一的位置管理和实施
- 将大部分问题外部化,因此简化了API源代码
- 提供API的管理中心和视图,更方便采用一致的策略