2021-04-12 08:52:35
API网关(API Gateway)是一种位于客户端与后端服务之间的API管理工具,通过执行反向代理功能,聚合不同服务并返回结果,同时承担用户认证、流量控制、日志监控等职责。
反向代理:作为客户端请求的统一入口,将请求路由至后端服务,隐藏内部架构细节。例如,单个请求可能涉及多个微服务,网关负责整合响应。
安全管控:通过身份验证(如OAuth、JWT)和授权机制防止未授权访问,结合速率限制规则避免API滥用。
流量管理:支持负载均衡,将请求分发至多个后端实例,确保系统高可用性;同时通过断路器模式处理故障,防止雪崩效应。
监控与优化:记录请求日志、缓存响应数据以减少重复计算,并集成分析工具(如Prometheus)监控API使用情况。

典型应用场景
企业级API部署:大多数企业通过API网关统一管理内部服务,例如电商平台的订单、支付、库存系统整合。
微服务架构:在微服务环境中,网关简化客户端与数百个服务的交互,提供单一入口点。
第三方API开放:当API需对外开放时,网关可集成支付系统、计量模块,实现服务变现与用量统计。
工作流程
接收请求:网关接收客户端的HTTP/HTTPS请求。
验证与授权:检查请求合法性,与身份提供商(如Auth0)核对用户权限。
流量控制:根据预设规则(如QPS限制)决定是否处理请求。
服务路由:将请求转发至对应的后端服务(如用户服务、订单服务)。
结果聚合:若需调用多个服务,网关整合响应后返回统一结果。
与反向代理的关系API网关可视为反向代理的超集,除基础代理功能外,还扩展了认证、监控、API编排等能力。例如:
反向代理示例:Nginx、Apache Proxy主要用于负载均衡与缓存。
API网关扩展:在代理基础上增加API版本管理、开发者门户(Dev Portal)等企业级特性。

开源方案:Apigee(Google Cloud)、Express Gateway、Tyk API Gateway。
云服务:Amazon API Gateway(AWS)、Azure API Management、Google Cloud Endpoints。
总结:API网关是现代应用架构中的关键组件,通过统一管理API生命周期,提升安全性、可观测性与开发效率,尤其适用于复杂分布式系统或对外开放API的场景。