什么是 API 网关以及几种成熟产品的比较

Apr 5, 2020 20:30 · 459 words · 1 minute read

API 网关的功能

  • 反向代理
  • 负载均衡
  • 防止 API 滥用(鉴权/授权和使用率限制)
  • 提供数据分析和监控工具
  • 计量与计费
  • 微服务架构下单个请求可能需要调用不同的应用程序
  • 上线新的 API 并淘汰老的 API

为客户提供简单可靠的使用体验。

API 网关与 Service Mesh 的区别

  • API 网关
    • 七层
    • 管理来自集群外部的流量(南北)
  • Service Mesh
    • 四层
    • 管理服务内部的流量(东西)

商业/开源 API 网关产品比较

3scale

使用 OpenResty 作为代理

  • 优势
  • 缺点
    • 重,部署麻烦,即使是 OpenShift 平台也不太友好
    • 成型度太高导致定制化修改困难(Lua + Ruby)
    • 潜在的性能问题

Kong

使用 OpenResty 作为代理

  • 优势
    • 轻,部署简单,全平台支持
    • 插件化实现需求 Kong Hub
    • 非常友好且标准的 REST API
    • 支持 gRPC 和 WebSocket
  • 缺点
    • 自行实现插件(Lua)
    • 开源版缺失 dashboard,需要自行实现
    • 免费版缺失计量功能,需要自行实现

tyk

自行实现代理(有修改的机会)

  • 优势
    • Go 编写
    • 最好的 web dashboard 实现
    • 完整的 API 管理解决方案
    • 非常适合作为项目基础,上手快
    • 支持 gRPC
  • 缺点
    • 重,部署麻烦
    • 商业使用可能存在许可证问题