V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
vocalman
V2EX  ›  问与答

热门开源网关的性能对比: Goku > Kong > Tyk

  •  
  •   vocalman · 2019-11-05 11:36:36 +08:00 · 3072 次点击
    这是一个创建于 1848 天前的主题,其中的信息可能已经有所发展或是发生改变。

    性能测试结果如下 在这里插入图片描述

    我们将 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(R) Xeon(R) 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(R) Xeon(R) 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(R) Xeon(R) 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

    控制台 Dockerhttps://hub.docker.com/r/eolinker/goku-api-gateway-ce-console

    节点 Dockerhttps://hub.docker.com/r/eolinker/goku-api-gateway-ce-node

    官网地址https://www.eolinker.com

    本着分享好产品给程序员使用,或许是自己的产品会带着点私心,所以这次提供的是开源版,并不强迫一定怎么样的支持,只希望有需要的话各位能看得上我们的产品,再次感谢进来看文章的各位。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3438 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:38 · PVG 19:38 · LAX 03:38 · JFK 06:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.