1、概念
网关特指API网关(API Gataway)。字面意思是指将所有API的调用统一接入API网关层,由网关层负责接入和输出。
随着业务发展,组织成员日趋增多,传统的单体应用,每更新一个功能模块,都要更新所有的程序;系统维护难度增大,风险也增大了。单体应用满足不了日趋增长的需求之,于是,微服务应运而生。利用微服务的思想,将原来的单体应用进行拆分,并微服务化。将原来一体的功能(如产品、客户、订单服务)进行拆分,每个功能模块又各自的自成体系的发布、运维等功能。如此解决了单体应用的弊端。
此时,还没有出现API Gateway的引入。举例:原先IOS、Android、PC客户端调用服务的地方,需要多个URL地址,有订单的、商品的、用户的。微服务化后就必须有统一的出入口,这种情况下,API Gateway就出现了。
简言之:API Gateway解决了微服务下调用、统一接入等问题。
有了API网关之后,各个API服务提供团队可以专注于自己的业务逻辑处理,而API网关更专注于安全、流量、路由等问题。
注:网关与代理的区别,代理是纯粹的数据透传,协议不会发生变化;网关在数据透传的背景下,还会涉及协议的转换,比客户端请求传输到网关的协议是HTTP,通过网关透传到下游则可能已经转换成企业内部的RPC了(比如JSF、Dubbo等企业自研的RPC框架)。
2、基本功能
API网关的基本功:统一接入、协议适配、流量管理与容错、以及安全防护。
这四大基本功能构成了网关的核心功能。网关首要的功能是负责统一接入,然后将请求的协议转换成内部的接口协议,在调用的过程中还要有限流、降级、熔断等容错的方式来保护网关的整体稳定,同时网关还要做到基本的安全防护(防刷控制),以及黑白名单(比如IP白名单)等基本安全措施。
功能细分:负载均衡、路由选择、流量控制、统一鉴权、熔断降级、发布测试、缓存数据、日志记录
2、实现方式
授权中心。还可以引入Nginx + lua的方式将一些基本的校验判断放到应用系统之上,这样可以更轻量化的处理接入的问题。
参考: