初探Api Gateway Kong
条评论说明
项目官网: https://konghq.com/
项目地址:
项目文档: https://docs.konghq.com/
特点
Kong是一款基于Nginx_Lua模块写的高可用,易扩展由Mashape公司开源的API Gateway项目。由于Kong是基于Nginx的,所以可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各个Server,来应对大批量的网络请求。
实际上 Kong 出于性能上的考虑,并不会将每次请求都去查询数据库,而是将数据库中的实体缓存在了自身的多级缓存中。
不足
- 目前无法进行负载均衡,需要开发插件
- 后期根据业务需求,进行扩展,不好掌握,例如增加服务发现、负载均衡等
Kong主要有三个组件:
- Kong Server :基于nginx的服务器,用来接收API请求。
- Apache Cassandra/PostgreSQL :用来存储操作数据。
- Kong dashboard:官方推荐UI管理工具,当然,也可以使用 restfull 方式 管理admin api。
评估指标
官方性能测试
AWS EC2虚拟机,超过两分钟的117,185个请求,平均延迟为10ms,每秒976个请求,或每天大约84,373,200个请求通过Kong,然后返回,只有一个超时。
阿里做的测试:在没有进行任何优化的条件下,峰值约16000 QPS
并发性能,稳定性:
较为正常请求情况下
请求总数 | 并发数 | 总用时 | 每秒完成请求数 | 用户平均请求等待时间 | 服服务器平均请求等待时间 |
---|---|---|---|---|---|
5000 | 500 | 17.131 seconds | 291.87 | 1713.088 ms | 3.426 |
10000 | 500 | 31.789 seconds | 314.57 | 1589.471 ms | 3.179 |
15000 | 500 | 55.677 seconds | 269.41 | 1855.900 | 3.712 |
sleep 2 sec 请求情况下
请求总数 | 并发数 | 总用时 | 每秒完成请求数 | 用户平均请求等待时间 | 服务器平均请求等待时间 |
---|---|---|---|---|---|
500 | 50 | 58.620 seconds | 8.53 | 5862.036 ms | 117.241 |
1000 | 100 | 108.861 seconds | 9.19 | 10886.115 ms | 108.861 |
3000 | 100 | 310.854 seconds | 9.65 | 10361.786 ms | 103.618 |
日志功能:
插件/二次开发的便利性:
Kong采用插件机制进行功能定制,插件集(可以是0或n个)在API请求响应循环的生命周期中被执行。插件使用Lua编写,目前已有几个基础功能:HTTP基本认证、密钥认证、CORS( Cross-origin Resource Sharing,跨域资源共享)、TCP、UDP、文件日志、API请求限流、请求转发以及nginx监控。
插件使用比较方便,开发是基于nginx的lua开发
控制面板
社区声音
- Kong 的功能丰富、插件齐全;
- 进可当做 Ingress 接管入口中央集权制,退可当 Mesh 去中心化分封制;
- Nginx + lua 性能杠杠的,扛起了全球 10% 的流量,连 CloudFlare 跟我们用的都是一样的技术栈,而且 lua 也很容易学习;
- 市场上独领风骚;
- 基准测试中是最快的;
- 心动了没,赶紧找我们销售;
参考链接
本文标题:初探Api Gateway Kong
文章作者:qianyugang
发布时间:2018-11-14
最后更新:2020-06-02
原始链接:https://102no.com/2018/11/14/api-gateway-kong/
版权声明:本网站发表的全部原创内容(不仅限于文章、图片,包含文章评论),著作权均归其发表者所有,均采用 CC BY-NC-SA 4.0 CN 许可协议。转载请注明作者以及原文链接,商业授权请联系作者。
分享