API网关功能一览
无论是单体应用,SOA或者现在流行的微服务架构,都需要一个API网关。
API网关作为内网的入口;统一对外提供服务。
一些公共服务的建设,也可以在网关层统一处理。
网关应该是无状态,容易线性扩展的;运行时弱依赖持久层(只依赖redis等内存数据库,不依赖db),最大化提升网关整体性能。
网关解决的问题:
- 微服务的统一对外输出,服务路由
- 减少客户端与微服务之间的调用次数,提高效率;
- 便于监控,可在网关中监控数据,可以做统一切面任务处理;
- 便于认证,只需要在网关进行认证即可,无需每个微服务都进行认证;
- 降低客户端与服务端的耦合度。
功能 | 说明 |
---|---|
认证鉴权 | 支持多种认证方式,TOKEN认证、JWT认证等。 |
流量管控 | 进行流量管控,防止客户端恶意获取数据;基于API的流量管理,进行限流。 |
服务安全 | 网关提供一些统一的安全机制,比如报文加密,签名验证,防重放攻击等。 |
服务路由 | 识别请求参数和路径转发上游API服务。 |
日志记录 | 记录各种调用日志,请求报文和返回报文,调用时间 |
协议转换 | 支持协议转换,比如将Webservice服务转换成Restful对外提供服务;支持protobuf协议转换json等。 |
负载均衡 | 支持网关内部负载均衡,用户可以选择注册代理和服务实例地址,网关通过心跳检测机制自动探测服务实例的可用性。 |
超时熔断 | 通过API配置访问超时时间,超时熔断立即返回。 |
灰度发布 | 产品支持让指定部分客户端应用使用新版本API,其他应用继续使用以前的API。 |
数据脱敏 | 敏感数据的脱敏 |
全链路监控 | 收集数据,提供链路图 |
Api管理 | api信息维护,统一验证(参数,加解密) |
配置管理 | 参数管理台统一配置刷新 |
服务编排 | 整合多API调用,提高效率; |
罗列了可能的网关功能,当然认证鉴权有些项目会有专门的统一用户认证系统去处理,加解密也会有加密机系统提供。
还有什么功能可以集成到API网关?