API Gateway 是单独部署的一个服务,也可以说是进入系统的唯一节点。这跟面向对象设计模式中的Facade 模式很像。API Gateway 封装内部系统的架构,并且提供API 给各个客户端。它还可能有其他功能,如授权、监控、负载均衡、缓存、请求分片和管理、静态响应处理等。下图展示了一个适应当前架构的API Gateway。
API Gateway 负责请求转发、合成和协议转换。所有来自客户端的请求都要先经过API Gateway,然后路由这些请求到对应的微服务。API Gateway 将经常通过调用多个微服务来处理一个请求以及聚合多个服务的结果。它可以在web 协议与内部使用的非Web 友好型协议间进行转换,如HTTP 协议、WebSocket 协议。
请求转发
服务转发主要是对客户端的请求安装微服务的负载转发到不同的服务上。
响应合并
把业务上需要调用多个服务接口才能完成的工作合并成一次调用对外统一提供服务。
协议转换
重点是支持SOAP,JMS,Rest 间的协议转换。
数据转换
重点是支持XML 和Json 之间的报文格式转换能力(可选)
安全认证
- 基于Token 的客户端访问控制和安全策略
- 传输数据和报文加密,到服务端解密,需要在客户端有独立的SDK 代理包
- 基于Https 的传输加密,客户端和服务端数字证书支持
- 基于OAuth2.0 的服务安全认证(授权码,客户端,密码模式等)