什么是API网关?

  • 定义:API网关是位于客户端和服务器之间的服务器,作为客户端请求进入服务器的唯一入口,转发通信数据。
  • 作用:API网关提供身份验证、安全策略实施、负载平衡、协议转换、服务发现、监控、日志记录、分析和计费、缓存等功能。

API网关的作用详解

  1. 身份验证和安全策略实施:校验HTTP请求参数,设置IP黑白名单,执行速率限制。
  2. 负载平衡和短路:在请求流量过高时,合理分配请求到不同的服务器,防止单点过载。
  3. 协议转换和服务发现:在微服务架构中,将HTTP协议转换为RPC等内部协议,服务发现确保请求正确路由。
  4. 监控、日志记录、分析和计费:跟踪API使用情况、性能指标、错误信息,记录关键事件和状态。
  5. 缓存:提高响应速度,减轻后端服务压力。

典型流程分析

  1. 客户端请求:基于HTTP协议,如REST或GraphQL。
  2. API网关验证:校验请求参数。
  3. IP黑白名单校验:安全策略,允许或拒绝特定IP。
  4. 身份验证和授权
    • 认证:确认请求方身份,如基本认证、令牌认证、OAuth。
    • 授权:确定请求方权限,如角色Based授权、资源Based授权。
  5. 流量控制和限流
    • 流量控制:控制请求频率,如固定窗口计数器、滑动窗口计数器、令牌桶算法。
    • 限流:在超负荷时,将请求放入队列,如漏桶算法。
  6. 匹配后端服务器:根据路径匹配找到合适的服务。
  7. 动态路由:将请求路由到匹配的服务器。
  8. 协议转换:转换请求和响应协议,如HTTP到RPC。

监视和日志记录

  • 监视:实时跟踪系统运行状况、负载、资源使用等。
  • 日志记录:记录请求、响应、错误、安全事件等,便于故障排查和性能分析。

总结

  • API网关是后端服务器的保护层,根据业务规模和基础服务完善程度,实现方式可能不同。
  • 例如,小公司可能使用Nginx作为网关,而大公司可能需要开发专用API网关。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部