什么是API网关?
API网关是一种集成了配置发布、环境管理、接入认证,用户鉴权、访问控制等功能的API管理和服务治理的工具。使用API网关托管API,即可高效,安全、低成本的管理服务。API网关作为请求的单一入口点,将请求分配给相应的服务,然后收集结果并将其传递给请求者。而不是让客户单独请求访问每项微服务。
为什么需要API网关?
API网关的兴起
随着微服务概念的兴起,越来越多的企业选择使用微服务的架构方式部署自己的系统。由于微服务使用的增加,原本一个庞大的单体应用,被拆分为多个微服务系统进行独立维护和部署,也就造成微服务系统中存在一定规模的需要被纳管的API接口。这些API接口数量庞大,对接不同的微服务系统,拥有不同的业务需求,造成API 管理的难度日益增加。此时,API网关应运而生,使用API网关发布和管理API接口也逐渐成为一种主流趋势。
随着API网关功能的逐步 演进,很多企业级API管理也会选择使用API网关。
API网关架构图
API网关优势
- 统一管理
API网关可提供全生命周期的API管理,涵盖设计、开发、测试、发布、运维、上架、下架等,实现完整的API解决方案。可轻松管理和部署任意规模的API。
- 轻松控流
API网关提供流量控制功能,可通过多种算法,实现精细化的流控。同时可通过提供灵活自定义的流量控制策略,来保障API服务的稳定和连续。
- 可视化监控
通过API网关可监控API调用性能指标、数据延迟以及错误等信息,识别可能影响业务的潜在风险。
- 多层安全防护
API网关可实现严格的访问控制、IP黑白名单控制、认证鉴权、防重放、防攻击、多种审计等安全措施,全方位保护API安全调用,且能实施灵活而精细的配额管理及流控管理以保护后端服务。
- 灵活路由
API支持配置不同的后端,流量可以基于多种策略匹配转发,轻松解决企业应用的灰度发布,环境管理等难题。
- 多语言SDK
API网关可为客户端提供Java、Go、Python、C等多语言的SDK接入,业务后端无需做修改,轻松实现一套系统对接多种业务场景。
API网关有什么作用?
- 聚合接口,聚合业务
API网关汇聚着企业系统内多种不同微服务,不同微服务业务需求不同,使得API网关成为了统一管理下属微服务接口的总管。多种不同服务,不同用户,不同鉴权需求API接口统一通过API网关和用户交互,使得服务对调用者透明,客户端与后端的耦合度降低。同时聚合后台服务,节省流量,提高性能,提升用户体验。
- 路由选择
API网关接受来自客户端的请求,并将其发送至相对应的后端服务中,再将后端反馈的各种数据信息打包发送给用户,实现两个系统间的相互通信。
- 流量控制
API网关的接收着系统所有微服务交互的流量,作为应用程序与其他服务之间的中介,它会负责处理流量,将用户的请求分发到适当的服务上,同时还会管理着流量的可用性和可靠性等方面。监控所有来源的流量,并限制客户端(或恶意机器人)在特定时间段内发出的API请求数量以保护系统免被恶意攻击淹没而导致宕机。
- 统一接入鉴权
将不同服务接入认证权限统一交由API网关解析,API接口快速识别多个用户访问权限,不用再通过访问各个服务器获得接入交互,提升服务效率。
- 负载分担
当站点流量激增时,通过跟踪发送到不同微服务系统的请求,平衡节点之间的负载以提高效率,确保应用程序的可用性。
- 统一安全管理
API网关提供了一个新的安全层,通过对 API 请求进行身份验证、输入验证来区别正常访问与恶意攻击,从而确保系统的安全性;提供安全、流控、过滤、缓存、计费、监控等 API 管理功能。
- 作者: 贺妍
- 最近更新: 2023-07-03
- 浏览次数: 6244
- 平均得分: