image.png

APISIX官网
APISIX官方github

一、什么是APISIX?

APISIX 是一个高性能、可扩展的微服务API网关,基于 nginx(openresty)和 Lua 实现功能,借鉴了Kong的思路,将Kong底层的关系型数据库(Postgres)替换成了NoSQL型的 etcd,这使得 APISIX 相较于 Kong 在性能上有了很大提升,在启用各类插件的情况下,Apache APISIX 的性能据说是 Kong 的 10 倍,极具吸引力。
且相较于 Kong 来说,源码更为简洁,二次开发难度更低,但是相对的,开源时间较短,在插件功能完备性上不如Kong,比如缺少关于灰度相关的插件,但是其已纳入Apache 基金会孵化,社区也较为活跃,后期的发展空间较为可观。
和传统的API网关相比,APISIX 和 Kong 一样也是通过插件的形式来提供负载均衡、日记记录、身份鉴权、流量控制等功能。


二、与 Kong的比较

两者优缺点:

产品/特性 优势 劣势 二次开发难度
Kong 开源社区活跃、产品思路清晰 代码量大、封装多、依赖关系型数据库、底层架构跟不上趋势 支持、难度大
APISIX 基于etcd、代码易读、插件热加载 开源时间短 支持、难度小

从 API 网关核心功能点出发:

功能 Apache APISIX Kong
动态上游 支持 支持
动态路由 支持 支持
健康检查和熔断器 支持 支持
动态SSL证书 支持 支持
七层和四层代理 支持 支持
分布式追踪 支持 支持
自定义插件 支持 支持
REST API 支持 支持
CLI 支持 支持

详细比较:

功能 Apache APISIX Kong
项目归属 Apache 软件基金会 Kong Inc.
是否开源 Apache 2.0 协议 Apache 2.0 协议(社区版)
核心技术 Nginx + Lua Nginx + Lua
数据存储 etcd Postgres、Cassandra
部署模式 单机和集群 单机和集群
支持yaml Yes Yes
交流渠道 邮件, 微信群, QQ群, GitHub
, Slack
, meetup
GitHub, Freenode, 论坛
单核 CPU, QPS(开启限流和Prometheus 插件) 18000 1700
延迟 0.2 ms 2 ms
支持Dubbo代理 Yes No
配置回滚 Yes No
支持生命周期的路由 Yes No
插件热加载 Yes No
用户自定义负载均衡算法和路由 Yes No
REST API <—> gRPC 转码 Yes No
支持Tengine Yes No
支持MQTT协议 Yes No
配置生效时间 事件驱动, < 1ms 轮询, 5 seconds
Dashboard Yes No
IdP认证对接 Yes No
配置中心高可用(HA) Yes No
在指定的时间窗口内限速 Yes No
支持nginx变量作为路由条件 Yes No

作者:独奏乱序
链接:https://www.jianshu.com/p/1b2c56687d0d
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。