API网关选型调研

需求

  • 稳定性、社区活跃: 一个开源工具的选型,性能是次要的,真正首要的是工具稳定可靠且开源社区持续维护
  • 控制台简单友好
  • 监控: 监控数据准实时,且清晰友好地展示指定时间区间的多维度数据(RPS、带宽流量、响应时间、HTTP状态码)
  • 路由匹配规则: 事实上域名匹配+路径匹配+方法匹配已经基本够用,如果需要灰度发布就再需要个Header匹配,其他再多再精细的匹配规则也仅仅是锦上添花
  • 鉴权认证: 绑定在路由维度上的鉴权认证,常用的鉴权方式有HMACBasic,另外需要对每个认证用户做权限控制,未授权的路由禁止调用
  • 配置热更新
  • 限流: 支持多个维度的限流方案,例如:调用方IP限流、调用方认证用户限流、API维度限流等
  • ip黑白名单
  • 负载均衡
  • 高性能
  • 自定义插件

常见网关

  • Kong: 基于openresty+lua的开源网关,github上的star数遥遥领先
  • APISIX: 同样基于openresty+lua的开源网关,官方文档上的性能测试显示其单核性能远高于Kong
  • Tky: golang开源api网关

对比

功能点KongAPISIXTky
社区活跃高,Github有28K的Star高,Github有4K的Star高,Github有6K的Star
控制台开源版不自带控制台,但有第三方开源控制台支持(konga)自带控制台,但实际使用并不友好官方控制台非开源收费
监控基于prometheus的数据监控,展示route/service/total维度的RPS/带宽/响应时长等指标基于prometheus的数据监控,展示route/service/total维度的RPS/带宽/响应时长等指标
路由匹配规则Host+Path+Method+Header精细化的路由规则匹配,且支持使用Nginx 所有内置变量做为路由的条件
鉴权认证支持HMACJWTBasic等认证,支持route/service维度的权限控制HMACJWTBasic等,但权限控制需要额外的服务来支持
配置热更新支持支持
限流IP/认证用户等多维度限流IP/认证用户等多维度限流
ip黑白名单支持支持
负载均衡支持,且提供主动/被动健康检查支持,且提供主动/被动健康检查
高性能单核QPS1700(开启限流和 prometheus 插件)单核QPS18000(开启限流和 prometheus 插件)
自定义插件支持(lua),插件变动需要重启支持(lua),插件变动支持热更新

进一步筛选

Kong与APISIX无论是底层原理还是功能实现都非常相近,且以上列出的重要功能点都基本实现了。但实际体验后个人感觉KONG上手更快易于理解,APISIX虽然号称性能更高,但对于我们的应用场景来说实际上单核QPS1700已经完全够用。

另外非常重要的路由授权的实现,APISIX需要额外的服务wolf来实现,且两者存在割裂感,远远不如Kong的使用友好。

结论

如果对性能有极致的要求则使用APISIX,否则个人建议使用Kong。无论是上手易用性还是服务实现完整程度上,个人感觉Kong都略胜与APISIX。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值