QUARKUS初体验

1.什么是QUARKUS?

Quarkus是 Red Hat为GraalVM 和 HotSpot 量身定制用程序。特点是启动超快,内存极低,并且在容器编排平台(如Kubernetes)中提供了近乎即时的向上扩展和高密度的内存利用率。并且基于GraalVM,为我们提供了编译成native程序的能力。如果你觉得SpringBoot的启动速度太慢了内存占用率太高了,那么可以在日常开发中尝试一下Quarkus,也许会给你不一样的体验。我将通过一系列的教程,来介绍如何使用Quarkus。

2.QUARKUS VS Spring Boot

通过这个实验结果,

  • 我们可以观察到 Quarkus 在 JVM 和原生版本的启动时间方面都 Spring Boot 快
  • Artifact(工件)的大小出现了同样的情况,Quarkus 生成了更小的包而再次领先。
  • 平均响应时间Quarkus 优于Spring Boot
  • Quarkus 最大线程数比Spring Boot 少

3.代码工程

实验目的

快速体验quarkus项目

生成代码

code.quarkus.io/

下载ZIP,导入到 ideal中去,这边已经有一个现成的工程模块,可以参考

代码仓库

4.测试

编译打包

(注意JDK版本,最低要求11)

bash 复制代码
./mvnw compile quarkus:dev

查看控制台日志

javascript 复制代码
[INFO] --- quarkus:3.12.3:dev (default-cli) @ Quarkus ---
[INFO] Invoking resources:3.3.1:testResources (default-testResources) @ Quarkus
[INFO] skip non existing resourceDirectory D:\IdeaProjects\ETFramework\Quarkus\src\test\resources
[INFO] Invoking quarkus:3.12.3:generate-code-tests (default) @ Quarkus
[INFO] Invoking compiler:3.13.0:testCompile (default-testCompile) @ Quarkus
__ ____ __ _____ ___ __ ____ ______
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
2024-07-29 16:24:21,193 INFO [io.quarkus] (Quarkus Main Thread) Quarkus 1.0.0-SNAPSHOT on JVM (powered by Quarkus 3.12.3) started in 2.018s. Listening on: http://localhost:8080

2024-07-29 16:24:21,197 INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
2024-07-29 16:24:21,198 INFO [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, rest, rest-jackson, smallrye-context-propagation, vertx]

--
Tests paused
Press [e] to edit command line args (currently ''), [r] to resume testing, [o] Toggle test output, [:] for the terminal, [h] for more options>

访问http://localhost:8080/

DEV UI

访问http://localhost:8080/hello

css 复制代码
Hello from Quarkus REST

编译native Code

前面我们说过了Quarkus的一个优势是借助GraalVM可以将我们的代码打包成native code 所以我们来打包一下。

bash 复制代码
./mvnw package -Pnative

等待编译,这个编译的时间会比较久一点。编译成功后我们进入target文件夹中可以看到编译后的可执行的文件(*-runner),直接运行它就可以了。

打包成docker.jvm/ docker.native

java 复制代码
$ mvn clean package -Dnative -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=docker

5.引用

相关推荐
程序猿_极客21 分钟前
【2025 年最新版】Java JDK 安装与环境配置教程(附图文超详细,Windows+macOS 通用)
java·开发语言·windows·macos·jdk
猫头虎27 分钟前
macOS 双开/多开微信WeChat完整教程(支持 4.X 及以上版本)
java·vscode·macos·微信·编辑器·mac·脚本
二哈喇子!4 小时前
Java开发工具——IDEA(修改全局配置,提升工作效率)
java·编辑器·intellij-idea
强子感冒了4 小时前
Java网络编程学习笔记,从网络编程三要素到TCP/UDP协议
java·网络·学习
咚为4 小时前
Rust Print 终极指南:从底层原理到全场景实战
开发语言·后端·rust
二哈喇子!4 小时前
SpringBoot项目右上角选择ProjectNameApplication的配置
java·spring boot
sin22014 小时前
MyBatis的执行流程
java·开发语言·mybatis
二哈喇子!4 小时前
基于Spring Boot框架的车库停车管理系统的设计与实现
java·spring boot·后端·计算机毕业设计
二哈喇子!4 小时前
基于Spring Boot框架的网络游戏虚拟交易平台的设计与实现
java·springboot·毕设项目
二哈喇子!4 小时前
JAVA环境变量配置步骤及测试(JDK的下载 & 安装 & 环境配置教程)
java·开发语言