对比微服务网关 Kong 和 Apisix
什么是微服务网关?
网关,就是指一个流量的集中式出入口。而 API Gateway,顾名思义,就是在 Gateway 上再添加了一些 API 相关的功能后得到的东西。
具体而言,API Gateway 就是比普通的网关多干了一些以前我们在应用内部实现的事:身份认证,权限控制,基于来源的流量控制,日志服务等,甚至是直接在第七层魔改 HTTP 请求的内容。好处有:
- 把这些功能都从微服务层抽离到了网关层,降低了应用层的复杂度。
- 可以将后端微服务的 API 进一步封装成粗粒度 API,降低客户端的请求次数。
- 可以将后端 API 封装成更通用的格式,保证后端 API 变动不会影响客户端
- 其他
对比Kong 和 Apisix
核心功能覆盖
功能 |
Apisix |
Kong |
动态上游 |
支持 |
支持 |
动态路由 |
支持 |
支持 |
健康检查和熔断器 |
支持 |
支持 |
动态SSL证书 |
支持 |
支持 |
七层和四层代理 |
支持 |
支持 |
分布式追踪 |
支持 |
支持 |
自定义插件 |
支持 |
支持 |
REST API |
支持 |
支持 |
CLI |
支持 |
支持 |
多角度对比
功能 |
Apisix |
Kong |
Tyk |
部署模式 |
单机和集群 |
单机和集群 |
单机和集群 |
数据存储 |
etcd |
Postgres或者Cassandra |
Redis |
是否开源 |
Apache 2.0 |
Apache 2.0 |
MPL |
核心技术 |
Nginx+Lua |
Nginx+Lua |
Golang |
私有部署 |
支持 |
支持 |
支持 |
自定义插件 |
支持 |
支持 |
支持 |
社区活跃度 |
高 |
高 |
高 |
支持yaml |
支持 |
支持 |
不支持 |
对接外部 IdP |
支持 |
不支持 |
不支持 |
压测对比
只开启一个Worker
场景 |
Apisix QPS |
Kong QPS |
Apisix延迟 |
Kong 延迟 |
不开启插件 |
29968 |
14106 |
0.53 ms |
1.17 ms |
开启限流和prometheus插件 |
25134 |
2546 |
0.64 ms |
6.31 ms |
开启4个Worker
场景 |
Apisix QPS |
Kong QPS |
Apisix延迟 |
Kong 延迟 |
不开启插件 |
88369 |
43224 |
0.176 ms |
0.376 ms |
开启限流和prometheus插件 |
72767 |
7353 |
0.22 ms |
2.19 ms |
总结
通过性能测试可以看到,在不开启插件的情况下,Apache APISIX 的性能(QPS 和延迟)是 Kong 的2倍,但开启了两个常用插件后,性能就是 Kong 的十倍
网友评论