异步测试_同样是SpringBoot,异步非阻塞的WebFlux比普通MVC强多少?性能测试揭晓答案【测评】...

本文通过测评对比了SpringBoot WebFlux与MVC在返回字符串和Json时的性能,使用wrk进行高并发压力测试。结果显示,WebFlux在性能上虽有提升,但提升幅度有限,且仍不及Vert.x。测评详细记录了测试环境、技术栈版本和测试过程。
摘要由CSDN通过智能技术生成

为什么要做这个测评呢?

因为Spring官方推出Reactive技术栈已经很久了,通过它官网的介绍我们知道Reactive技术栈是非阻塞的,理论上应该比传统的Spring MVC或SpringBoot MVC性能好。

但是能好多少?很遗憾Spring官网并没有给出量化的指标。

8a2d57f7e9ce28e23aa282f26df0635e.png

所以我们打算出一系列测评视频,来分别测Reactive技术栈的WebFlux、R2dbc……跟原来的Servlet技术栈里面对应的Spring MVC、Spring Data Jpa相比,性能提升的具体量化的指标。

本次我们先测WebFlux,看它比MVC具体提升了多少。

测试项目

因为WebFlux是纯web层面的,所以我们就测试两个项目:

  • 返回字符串
  • 返回Json

注:每个项目各测三次

测试工具

因为Spring在官网上介绍Reactive的特点为高吞吐量,低延时,而WebFlux作为Reactive技术栈之一,自然具备这些特性,要测试高吞吐量,自然要用一些工具模拟高并发,本次我们依然用压力测试工具wrk来模拟高并发场景。

  • 测试工具:Wrk——超高性能的命令行压测工具
  • 测试命令:wrk –t12 –c400 –d10s

测试的技术栈及版本

  • SpringBoot MVC & SpringBoot WebFlux 2.3.1
  • Jdk:Alibaba Dragonwell 11.0.7

测试环境

  • 操作系统:Ubuntu Server 18.04 on VmVare
  • 配置:4核/8G

测试代码

SpringBoot MVC版:

@RestController
@RequestMapping("")
public class IndexController {

    @RequestMapping("")
    public Object Index(){
        return "Hello From SpringBoot MVC";
    }

    @RequestMapping("json")
    public Object json(){
        var temp = new HashMap<String, String>();
        temp.put("hello", "SpringBoot MVC");
        return temp;
    }
    
}

SpringBoot WebFlux版:

@RestController
@RequestMapping
public class IndexController {

    @RequestMapping
    public Mono<String> index() {
        return Mono.just("Hello From SpringBoot WebFlux");
    }

    @RequestMapping("json")
    public Mono<Object>  json() {
        var map = new HashMap<String, String>();
        map.put("hello", "SpringBoot WebFlux");
        return Mono.just(map);
    }
    
}

测试结果

4afa2b1b55385904155395bedecd4938.png

dc9923771bb81f28d502b91597ecced1.png

结果点评

虽然比起原来的Spring MVC(SpringBoot MVC)性能有所提升,但是性能提升并不大

同时跟jvm世界里同样是基于netty的异步非阻塞web框架——Vert.x相比,现在的WebFlux性能跟Vert.x还差很远

WebFlux要走的路还很长……

配套视频

本次测评全程都用视频录下来了,想看视频的朋友请点击

https://www.bilibili.com/video/BV1u54y1z7MW/​www.bilibili.com
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值