Skip to content

The test project to compare the java-chassis/spring-cloud performance between Vert.x mode and Tomcat mode.

Notifications You must be signed in to change notification settings

GuoYL123/ReactiveBenchmark

Repository files navigation

ReactiveBenchmark

这是一个比较vert.x reactive模式和传统同步模式性能的测试项目。 我们使用微服务框架 java-chassis (基于reactive vertx/tomcat) 和 spring-cloud-huawei (基于reactive webflux/tomcat) 来完成测试。

English document

线程模型对比:

reactive 异步: vertx

同步: sync

准备工作:

全局替换所有工程配置文件中的ak:yourak ,sk:yoursk

注册账号 华为云Service Stage微服务引擎 登陆即可免费获取。

右上角用户名下拉菜单->我的凭证->访问密钥->新增访问密钥。即可创建ak,sk。

执行命令:

mvn package 

进入项目根目录使用 git bash 执行命令:

./aggregationJAR.sh

脚本会将所有的测试程序jar包复制到项目根路径的target-jar文件夹。

使用命令运行服务:

java -jar [jar name].jar 

我们使用 wrk 完成测试。

测试流程:

使用3台配置相同的虚拟机:

环境信息:
	系统: Ubuntu 18.04.1
	CPU: 4vCPU Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz
	内存: 8GB

一台运行wrk作为压力源,一台运行consumer,一台运行provider。

调用链:wrk->consumer->provider

测试过程确保 consumer 的 CPU占用率 保持大于 380% ,provider 的 CPU 占用率 保持大于 100% .

服务端配置:

  tomcat(spring boot内置)/vertx均为默认配置。
  tomcat: 默认200线程
  vertx:默认2*(cpu核心数)线程

客户端配置:

  spring mvc resttemplete:
  org.apache.http.client.httpclient:
      MaxTotal:200
      DefaultMaxPerRoute:100
      
  spring mvc webflux:   
  org.springframework.web.reactive.function.client.WebClient:
      默认配置
      
  java chassis:   
  io.vertx.core.http.HttpClient:
      thread-count: 1
      connection:
          maxPoolSize: 100
          idleTimeoutInSeconds: 60 
          keepAlive: true

注册中心:

ServiceComb servercenter 华为云Service Stage微服务引擎

测试结果:

200 连接并发:

微服务框架\通信方式 http rpc
spring cloud huawei(webflux reactive) rt:12.75ms/qps:18.20k \
spring cloud huawei(tomcat) rt:13.93ms/qps:14.53k \
spring cloud 原生(tomcat) rt:14.09ms/qps:14.30k \
java chassis(tomcat) rt:13.67ms/qps:15.34k rt:11.88ms/qps:17.56k
java chassis(vertx reactive) rt:6.77ms/qps:33.62k rt:5.67ms/qps:42.73k

100 连接并发:

微服务框架\通信方式 http rpc
spring cloud huawei(webflux reactive) rt:5.66ms/qps:17.97k \
spring cloud huawei(tomcat) rt:7.05ms/qps:14.96k \
spring cloud 原生(tomcat) rt:7.21ms/qps:14.15k \
java chassis(tomcat) rt:6.94ms/qps:15.08k rt:6.36ms/qps:16.31k
java chassis(vertx reactive) rt:4.46ms/qps:32.60k rt:3.93ms/qps:40.34k

详细数据:

5 min,4 threads,200 Connections

5 min,4 threads,100 Connections

About

The test project to compare the java-chassis/spring-cloud performance between Vert.x mode and Tomcat mode.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published