TomEE、Spring Boot与Quarkus比较 – Baptista

Java世界中有一个新的框架: Quarkus
。我决定比较它与 Apache TomEE
Spring Boot相关的行为方式
。我将在使用Java 8和Maven时测量伪像大小,编译测试部署时间

为了比较框架,我将创建一个具有一组现实功能的应用程序。它将使用REST端点,Fault Tolerance和内存数据库JPA。源代码可以在 Java-framework-compare
项目的Github上找到。

每个项目的起点:

Apache TomEE 8.0.0-M2 Microprofile风格来自 MicroProfile Starter
,它选择Config和Fault Tolerance API

Spring Boot 2.1.3应用程序来自 Spring Initializr
页面,它添加了web,jpa和H2依赖项。

Quarkus 0.11.0应用程序的起点更加明显。它来自 quarkus-quickstarts
捆绑中捆绑的rest-json示例。

基线

所有入门项目都具有不同的捆绑依赖项。只是出于好奇,这些是开箱即用的大小,构建和启动时间,没有运行应用程序:

平台              构建时间    启动时间    大小(MB)
Apache TomEE 8.0.0-M2    5454    3,789      44
Spring-boot 2.1.3       2248    2936      16,7
Quarkus0.11.0          1890     0623      10,5

在实际项目中,这对于稍后评估我们的更改对基线的影响非常重要。

加入应用程序

首先,我使用了来自Quarkus rest-json快速启动示例的实现。这捆绑了一组测试和REST端点,我能够成功移植到SpringBoot和TomEE。

集成测试使用的是RestAssured和JUnit 5 Jupiter,在3个项目中是等效的。他们需要对SpringBoot进行一些调整。获取随机端口配置RestAssured序列化并不明显。

在TomEE上我必须使用JUnit 4,因为Arquillian,那里常用的集成测试框架,还不支持JUnit 5。

我已经为方法添加了Timeout和Fallback Fault tolerance功能。在使用MicroProfile的Quarkus和TomEE以及使用NetflixHystrix的SpringBoot上。在SpringBoot中常用的Hystrix处于维护模式我不知道Spring方面的替代品。作为比较,Microprofile Spec增加了对CompletionStage的支持,并将尽快解决反应代码问题。

我试图将JPA与H2数据库一起使用,但是无法在Quarkus中使用它,所以我也把它放在其他的但保留了所有依赖项。文档仍然是粗略的,我需要更多的研究时间。

平台               构建时间    通过测试构建时间    启动时间    大小(MB)
Apache TomEE 8.0.0-M2    6,178    15304              4,993    44
Spring-boot 2.1.3       3,358    13,348              6,799    46,9
Quarkus0.11           2,533    7153               0767    23.4

在所有项目中,没有测试的构建时间增加了约1秒。

使用Quarkus进行测试的构建需要花费一半的时间,大小也是其他两个版本的大小的一半。启动时间几乎 是一个数量级。这非常重要。请注意,使用GraalVM的本机代码可以进一步减少此开始时间。

当您向其添加实际功能时,SpringBoot启动时间和超级war大小会显着增加(> 2x)。

TomEE的启动速度比SpringBoot快,而且这个用例的超级jar大小非常稳定。没变。

如果与TomEE或SpringBoot相比,Quarkus的在线资源很少,有大量的试验和错误。

原文 

https://www.jdon.com/51895

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » TomEE、Spring Boot与Quarkus比较 – Baptista

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址