APIGateway 简介
1. APIGateway是什么
APIGateway 即API网关,所有请求首先会经过这个网关,然后到达后端服务,有点类似于Facade模式。API网关作为系统接口对外的统一出口,可以减少调用方对服务实现的感知。
没有API网关时的结系统构如下图:由图可以看出,在没有API网关作为统一出口的情况下,需要调用方自己组合各种服务,而且容易让调用方感知后端各种服务的存在。
加入API网关时的系统结构如下图:由图可以看出,在加入了API网关之后,通过网关暴露接口给调用方,调用方可以在不感知后端服务的情况下调用服务,而且通过统一的接口,后端服务接口的变化不会影响调用方,后端服务变化可以通过网关的转换,对外仍然保持一致的风格。
2. APIGateway的作用
APIGateway的主要作用有:
1.统一对外接口:
当用户需要集成不同产品或者服务之间的功能,调用不同服务提供的能力。利用APIGateway可以让用户在不感知服务边缘的情况下,利用统一的接口组装服务。
对于公司内部不同的服务,提供的接口可能在风格上存在一定的差异,通过APIGateway可以统一这种差异。 当内部服务修改时,可以通过APIGateway进行适配,不需要调用方进行调整
减少对外暴露服务可以增加系统安全性。
2.统一鉴权:
通过APIGateway对访问进行统一鉴权,不需要每个应用单独对调用方进行鉴权,应用可以专注业务。
3.服务注册与授权:
可以控制调用方可以使用和不可以使用的服务。
4.服务限流:
通过APIGateway可以对调用方调用每个接口的每日调用及总调用次数限制
5.全链路跟踪:
通过APIGateway提供的唯一请求Id,监控调用流程,以及调用的响应时间。