性能测试结果如下
我们将Goku与市场上的其他同类热门产品进行比较,使用相同的环境和条件,测试以下产品:Goku、Kong、Tyk。
Goku API Gateway (中文名:悟空 API 网关)是 EOLINKER 旗下自研的微服务网关,基于 Golang 开发,提供 社区版本(CE)和 企业版本(EE) ,能够实现高性能 HTTP API 转发、服务编排、多租户管理、API 访问权限控制等目的,拥有强大的自定义插件系统可以自行扩展,并且提供友好的图形化配置界面,能够快速帮助企业进行 API 服务治理、提高 API 服务的稳定性和安全性。
Goku API Gateway 的社区版本(CE)同时拥有完善的使用指南和二次开发指南,内置的插件系统也能够让企业针对自身业务进行定制开发。
社区版地址:https://github.com/eolinker/goku-api-gateway 注:本次压测对象均为单个网关节点,并且均未启用插件功能。
测试详情
一、硬件环境
1.后端服务所在服务器
CPU: Intel® Xeon® Platinum 8269CY CPU @ 2.50GHz * 12
Linux version 3.10.0-957.27.2.el7.x86_64
Total 48G,47G available memory
2.节点所在服务器
CPU: Intel® Xeon® Platinum 8269CY CPU @ 2.50GHz * 12
Linux version 3.10.0-957.27.2.el7.x86_64
Total 48G,47G available memory
3.压测程序所在服务器
CPU:Intel® Xeon® Platinum 8163 CPU @ 2.50GHz * 4
Linux version 3.10.0-957.27.2.el7.x86_64
Total 16G,15G available memory
二、压测条件
压测工具:Jmeter
使用插件:concurrency thread group 阶梯式加压工具
压力配置:
基准测试报告
一、直接访问后端服务
Starting the test @ Tue Sep 24 19:02:40 CST 2019 (1569322960758)
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary + 370204 in 00:00:18 = 20504.2/s Avg: 28 Min: 0 Max: 3412 Err: 0 (0.00%) Active: 1200 Started: 1200 Finished: 0
summary + 743800 in 00:00:30 = 24792.5/s Avg: 80 Min: 0 Max: 15227 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 1114004 in 00:00:48 = 23180.9/s Avg: 63 Min: 0 Max: 15227 Err: 0 (0.00%)
summary + 733900 in 00:00:30 = 24465.8/s Avg: 152 Min: 0 Max: 31097 Err: 0 (0.00%) Active: 4800 Started: 4800 Finished: 0
summary = 1847904 in 00:01:18 = 23674.7/s Avg: 98 Min: 0 Max: 31097 Err: 0 (0.00%)
summary + 726800 in 00:00:30 = 24227.5/s Avg: 221 Min: 0 Max: 32674 Err: 1 (0.00%) Active: 6000 Started: 6000 Finished: 0
summary = 2574704 in 00:01:48 = 23828.2/s Avg: 133 Min: 0 Max: 32674 Err: 1 (0.00%)
summary + 562492 in 00:00:53 = 10555.1/s Avg: 279 Min: 0 Max: 63191 Err: 23 (0.00%) Active: 0 Started: 6000 Finished: 6000
summary = 3137196 in 00:02:41 = 19444.0/s Avg: 159 Min: 0 Max: 63191 Err: 24 (0.00%)
Tidying up remote @ Tue Sep 24 19:05:23 CST 2019 (1569323123294)
... end of run
二、使用Goku API Gateway
Starting the test @ Tue Sep 24 19:20:20 CST 2019 (1569324020256)
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary + 97104 in 00:00:09 = 10927.8/s Avg: 36 Min: 1 Max: 1128 Err: 0 (0.00%) Active: 600 Started: 600 Finished: 0
summary + 334400 in 00:00:30 = 11148.2/s Avg: 139 Min: 1 Max: 1382 Err: 0 (0.00%) Active: 2400 Started: 2400 Finished: 0
summary = 431504 in 00:00:39 = 11097.5/s Avg: 116 Min: 1 Max: 1382 Err: 0 (0.00%)
summary + 330100 in 00:00:30 = 11002.2/s Avg: 302 Min: 1 Max: 1599 Err: 0 (0.00%) Active: 4200 Started: 4200 Finished: 0
summary = 761604 in 00:01:09 = 11056.0/s Avg: 197 Min: 1 Max: 1599 Err: 0 (0.00%)
summary + 322600 in 00:00:30 = 10748.3/s Avg: 473 Min: 1 Max: 2114 Err: 0 (0.00%) Active: 6000 Started: 6000 Finished: 0
summary = 1084204 in 00:01:39 = 10962.6/s Avg: 279 Min: 1 Max: 2114 Err: 0 (0.00%)
summary + 316800 in 00:00:30 = 10564.9/s Avg: 568 Min: 1 Max: 2329 Err: 0 (0.00%) Active: 6000 Started: 6000 Finished: 0
summary = 1401004 in 00:02:09 = 10870.1/s Avg: 344 Min: 1 Max: 2329 Err: 0 (0.00%)
summary + 27696 in 00:00:05 = 5278.4/s Avg: 547 Min: 1 Max: 1963 Err: 0 (0.00%) Active: 0 Started: 6000 Finished: 6000
summary = 1428700 in 00:02:14 = 10651.3/s Avg: 348 Min: 1 Max: 2329 Err: 0 (0.00%)
Tidying up remote @ Tue Sep 24 19:22:35 CST 2019 (1569324155252)
... end of run
三、使用Kong Gateway
Starting the test @ Tue Sep 24 19:26:51 CST 2019 (1569324411486)
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary + 86604 in 00:00:08 = 10814.7/s Avg: 34 Min: 0 Max: 1039 Err: 0 (0.00%) Active: 600 Started: 600 Finished: 0
summary + 358400 in 00:00:30 = 12056.0/s Avg: 123 Min: 1 Max: 3932 Err: 0 (0.00%) Active: 2400 Started: 2400 Finished: 0
summary = 445004 in 00:00:38 = 11792.6/s Avg: 105 Min: 0 Max: 3932 Err: 0 (0.00%)
summary + 343700 in 00:00:30 = 11371.8/s Avg: 271 Min: 4 Max: 15668 Err: 0 (0.00%) Active: 4200 Started: 4200 Finished: 0
summary = 788704 in 00:01:08 = 11605.4/s Avg: 178 Min: 0 Max: 15668 Err: 0 (0.00%)
summary + 345500 in 00:00:30 = 11602.9/s Avg: 398 Min: 4 Max: 31638 Err: 0 (0.00%) Active: 6000 Started: 6000 Finished: 0
summary = 1134204 in 00:01:38 = 11604.7/s Avg: 245 Min: 0 Max: 31638 Err: 0 (0.00%)
summary + 335200 in 00:00:30 = 11115.5/s Avg: 527 Min: 1 Max: 63127 Err: 0 (0.00%) Active: 6000 Started: 6000 Finished: 0
summary = 1469404 in 00:02:08 = 11489.3/s Avg: 309 Min: 0 Max: 63127 Err: 0 (0.00%)
summary + 46501 in 00:00:25 = 1828.7/s Avg: 1123 Min: 1 Max: 63166 Err: 6 (0.01%) Active: 0 Started: 6000 Finished: 6000
summary = 1515905 in 00:02:33 = 9887.0/s Avg: 334 Min: 0 Max: 63166 Err: 6 (0.00%)
Tidying up remote @ Tue Sep 24 19:29:25 CST 2019 (1569324565588)
... end of run
四、使用Tyk Gateway
Starting the test @ Thu Sep 26 15:53:16 CST 2019 (1569484396886)
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary + 10004 in 00:00:13 = 752.9/s Avg: 508 Min: 0 Max: 3021 Err: 0 (0.00%) Active: 900 Started: 900 Finished: 0
summary + 7900 in 00:00:29 = 272.2/s Avg: 4769 Min: 1229 Max: 11116 Err: 0 (0.00%) Active: 2700 Started: 2700 Finished: 0
summary = 17904 in 00:00:42 = 423.2/s Avg: 2388 Min: 0 Max: 11116 Err: 0 (0.00%)
summary + 6000 in 00:00:30 = 197.9/s Avg: 13697 Min: 9694 Max: 16971 Err: 0 (0.00%) Active: 4500 Started: 4500 Finished: 0
summary = 23904 in 00:01:13 = 329.1/s Avg: 5227 Min: 0 Max: 16971 Err: 0 (0.00%)
summary + 8000 in 00:00:30 = 269.3/s Avg: 17018 Min: 15093 Max: 18762 Err: 0 (0.00%) Active: 6000 Started: 6000 Finished: 0
summary = 31904 in 00:01:42 = 311.7/s Avg: 8183 Min: 0 Max: 18762 Err: 0 (0.00%)
summary + 7400 in 00:00:31 = 241.8/s Avg: 22188 Min: 17459 Max: 25974 Err: 0 (0.00%) Active: 5481 Started: 6000 Finished: 519
summary = 39304 in 00:02:13 = 295.6/s Avg: 10820 Min: 0 Max: 25974 Err: 0 (0.00%)
summary + 5686 in 00:00:22 = 257.1/s Avg: 25384 Min: 23820 Max: 27167 Err: 0 (0.00%) Active: 0 Started: 6000 Finished: 6000
summary = 44990 in 00:02:35 = 290.1/s Avg: 12661 Min: 0 Max: 27167 Err: 0 (0.00%)
Tidying up remote @ Thu Sep 26 15:55:52 CST 2019 (1569484552762)
... end of run
相关链接
项目地址:https://github.com/eolinker/goku-api-gateway 控制台Docker:https://hub.docker.com/r/eolinker/goku-api-gateway-ce-console 节点Docker:https://hub.docker.com/r/eolinker/goku-api-gateway-ce-node 官网地址:https://www.eolinker.com
厉害 支持开源