什么是 API 网关以及几种成熟产品的比较
Apr 5, 2020 20:30 · 459 words · 1 minute read
API 网关的功能
- 反向代理
- 负载均衡
- 防止 API 滥用(鉴权/授权和使用率限制)
- 提供数据分析和监控工具
- 计量与计费
- 微服务架构下单个请求可能需要调用不同的应用程序
- 上线新的 API 并淘汰老的 API
为客户提供简单可靠的使用体验。
API 网关与 Service Mesh 的区别
- API 网关
- 七层
- 管理来自集群外部的流量(南北)
- Service Mesh
- 四层
- 管理服务内部的流量(东西)
商业/开源 API 网关产品比较
3scale
使用 OpenResty 作为代理
- 优势
- 完整的 API 管理解决方案
- API 生命周期概念
- 有现成的 OpenShift 容器云平台部署方案https://github.com/3scale/3scale-operator
- 缺点
- 重,部署麻烦,即使是 OpenShift 平台也不太友好
- 成型度太高导致定制化修改困难(Lua + Ruby)
- 潜在的性能问题
Kong
使用 OpenResty 作为代理
- 优势
- 轻,部署简单,全平台支持
- 插件化实现需求 Kong Hub
- 非常友好且标准的 REST API
- 支持 gRPC 和 WebSocket
- 缺点
- 自行实现插件(Lua)
- 开源版缺失 dashboard,需要自行实现
- 免费版缺失计量功能,需要自行实现
tyk
自行实现代理(有修改的机会)
- 优势
- Go 编写
- 最好的 web dashboard 实现
- 完整的 API 管理解决方案
- 非常适合作为项目基础,上手快
- 支持 gRPC
- 缺点
- 重,部署麻烦
- 商业使用可能存在许可证问题