不多说,先展示最后的性能测试结果

我们将市场上的同类热门产品进行比较,使用相同的环境和条件,测试以下产品:Goku、Kong、Tyk。简单介绍下,

Goku API Gateway 是 EOLINKER 旗下的微服务网关,基于 Golang 开发,提供 社区版本(CE)企业版本(EE) ,我用来展示的是开源版本,也就是社区版本。

社区版地址: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
控制台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

热门开源网关的性能对比:Goku > Kong > Tyk的更多相关文章

  1. 五种开源API网关实现组件对比

    五种开源API网关实现组件对比     API 网关一些实现 使用一个组件时,尤其是这种比较流行的架构,组件肯定存在开源的,我们不必自己去从零开始去实现一个网关,自己开发一个网关的工作量是相当可观的, ...

  2. 王院生:Apache APISIX 微服务网关极致性能架构解析

    2019 年 10 月 27 日,又拍云联合 Apache APISIX 社区举办 API 网关与高性能服务最佳实践丨Open Talk 杭州站活动,Apache APISIX PPMC 成员王院生做 ...

  3. 不同Framework下StringBuilder和String的性能对比,及不同Framework性能比(附Demo)

    本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 阅读目录 介绍 环境搭建 测试用例 MSDN说明 ...

  4. iOS中保证线程安全的几种方式与性能对比

    来源:景铭巴巴 链接:http://www.jianshu.com/p/938d68ed832c 一.前言 前段时间看了几个开源项目,发现他们保持线程同步的方式各不相同,有@synchronized. ...

  5. 自己写的轻量级PHP框架trig与laravel5.1,yii2性能对比

    看了下当前最热门的php开发框架,想对比一下自己写的框架与这些框架的性能对比.先看下当前流行框架的投票情况. 看结果对比,每个测试脚本做了一个数据库的联表查询并进行print_r输出,查询的sql语句 ...

  6. 2017年的golang、python、php、c++、c、java、Nodejs性能对比(golang python php c++ java Nodejs Performance)

    2017年的golang.python.php.c++.c.java.Nodejs性能对比 本人在PHP/C++/Go/Py时,突发奇想,想把最近主流的编程语言性能作个简单的比较, 至于怎么比,还是不 ...

  7. Net Core下多种ORM框架特性及性能对比

    在.NET Framework下有许多ORM框架,最著名的无外乎是Entity Framework,它拥有悠久的历史以及便捷的语法,在占有率上一路领先.但随着Dapper的出现,它的地位受到了威胁,本 ...

  8. soul开源网关项目搭建学习

    1. soul开源网关项目搭建学习 1.1. 地址 https://gitee.com/shuaiqiyu/soul 1.2. 介绍 官方介绍:这是一个异步的,高性能的,跨语言的,响应式的API网关. ...

  9. MyISAM与InnoDB两者之间区别与选择,详细总结,性能对比

    1.MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.不 ...

随机推荐

  1. 【SQL server基础】SQL视图加密,永久隐藏视图定义的文本

    SQL可以对视图进行加密.也就是,可永久隐藏视图定义的文本. 注意   此操作不可逆.加密视图后,无法再修改它,因为无法再看到视图定义.如果需要修改加密视图,则必须删除它并重新创建另一个视图. 示例代 ...

  2. dubbo-spring-boot的auto-configure示例报Not found exported service的解决办法

    本示例基于dubbo-spring-boot-project 2.7.3版本,可能会根据新版的发布而过时,阅读时请注意. 关于dubbo在spring-boot中该如何使用,网上有很多例子,但因为时间 ...

  3. VisualStudio自定义调试工具(GIS)

    闲言     偶尔分享技术,对,这次就是偶尔,几年一次(技术自卑).上周末竟然有人催更,也是受宠...若惊.以后会主动定期更的,可能. 前言   Visual Studio 调试器自带很多调试工具,调 ...

  4. Spring Boot (十): Spring Boot Admin 监控 Spring Boot 应用

    Spring Boot (十): Spring Boot Admin 监控 Spring Boot 应用 1. 引言 在上一篇文章<Spring Boot (九): 微服务应用监控 Spring ...

  5. 正则表达式在Java中使用

    正则表达式 定义 用一组特殊的字符来描述一组字符串的格式 用于验证字符串是否满足格式 不关心字符串的内容是否有效 1. 基本正则表达式所谓正则表达式就是使用一系列预定义的特殊字符来描述一个字符串的格式 ...

  6. 快学Scala 第十七课 (trait 入门)

    trait 入门: trait类似于java的接口,不过比java接口功能更强大,可以有实体成员,抽象成员,实体方法,抽象方法. 如果需要混入的特质不止一个用with关键字. 带有特质的对象:(特质可 ...

  7. Django学习之文件上传

    就这么六步! 一.settings配置文件中配置 MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'medias').replace ...

  8. Linux 命令个人笔记

    [表示命令]man -f [] 显示一个命令的功能whatis [] 显示一个命令的功能ls -lR | grep '^-' | wc -l 统计一个目录下总共有多少个文件head [-n numbe ...

  9. 无意间做了个 web 版的 JVM 监控端(前后端分离 React+Spring Boot)

    之前写了JConsole.VisualVM 依赖的 JMX 技术,然后放出了一个用纯 JMX 实现的 web 版本的 JConsole 的截图,今天源码来了. 本来就是为了更多的了解 JMX,第一步就 ...

  10. 算法学习之剑指offer(三)

    题目1 题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 如果一个整数不为0,那么这个整数至少有一位是1.如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在 ...