SpringBoot Webflux 与 Vert.x的性能比较

您所在的位置:网站首页 法语vert和verte SpringBoot Webflux 与 Vert.x的性能比较

SpringBoot Webflux 与 Vert.x的性能比较

2024-02-06 13:34| 来源: 网络整理| 查看: 265

大家好,我是老七,关注我,将持续更新更多精彩内容!

鉴于众多读者的要求,本文深入比较了Spring Boot Webflux和Vert.x,尽管需要注意的是,这个比较可能不是完全公平的。许多读者表达了对了解Spring Boot、Vert.x甚至Spring Boot Webflux之间差异的兴趣。如果您熟悉Java生态系统,这些名字可能不需要介绍。废话不多说,让我们详细了解这些技术。

测试设置 为了评估Java性能,我们在一台搭载16GB RAM的MacBook Pro M1上进行了一系列严格的测试。用于这些评估的负载测试工具是Bombardier,这是一种可靠的选择,用于测量在不同负载下应用程序的性能。测试使用了Java 21版本,以确保在评估中考虑了最新的改进和优化。

除了Java版本外,应用程序的性能还使用了两种流行的框架进行了评估:

Spring Boot Webflux v3.1.4 Vert.x v4.4.5

现在,让我们深入了解经过严格测试的应用程序代码的具体内容。

Spring Boot Webflux

package hello; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.web.reactive.config.EnableWebFlux; import org.reactivestreams.Publisher; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; import reactor.core.publisher.Mono; @SpringBootApplication @EnableWebFlux @Controller public class Application { public static void main(String[] args) throws Exception { SpringApplication.run(Application.class); } @GetMapping("/") @ResponseBody public Publisher handler() { return Mono.just("Hello world!"); } }

Vert.x

package com.example.starter; import io.vertx.core.AbstractVerticle; import io.vertx.core.Promise; import io.vertx.core.http.HttpServer; import io.vertx.ext.web.Router; public class MainVerticle extends AbstractVerticle { @Override public void start(Promise startPromise) throws Exception { HttpServer server = vertx.createHttpServer(); Router router = Router.router(vertx); router.get("/").respond(ctx -> ctx .response() .putHeader("Content-Type", "text/plain") .end("hello world!")); server.requestHandler(router).listen(3000); } }

测试结果 每一次对1000万次请求的测试都是在50、100和300并发连接下执行的。在负载测试中,我们使用了Bombardier负载测试工具。

这些结果不仅有助于我们理解这两种框架的性能,也有助于我们选择适合特定应用需求的最佳框架。

结果

下面以图表的方式展示结果:

表格结果

下面是结果对比的表格:

记分卡

计分卡是通过以下公式从结果中生成的。对于每项测量,获取获胜边距。如果获胜差值为

< 5%,则不得分 在 5%至 20%之间,获胜者得 1 分 介于 20% 和 50% 之间,获胜者得 2 分

50%,获胜者得 3 分

如果您喜欢总结,以下是评分结果:

总结:

从结果上来看,我们会发现Vert.x会比SpringBoot Webflux要快55%左右。

如果各位觉得老七的文章还不错的话,麻烦大家动动小手,

点赞、关注、转发走一波!!

有任何问题可以评论区留言或者私信我,我必将**知无不言言无不尽!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3