云原生时代高性能Java框架—Quarkus
Posted TECH flower
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生时代高性能Java框架—Quarkus相关的知识,希望对你有一定的参考价值。
——— 构建Quarkus本地镜像、容器化部署Quarkus项目
Quarkus系列博文
Quarkus&GraalVM介绍、创建并启动第一个项目
构建Quarkus本地镜像、容器化部署Quarkus项目
...
概览
上一篇文章主要介绍了Quarkus以及给Quarkus提供“神力”的Java虚拟机GraalVM,并演示了如何安装GraalVM以及Quarkus的初步用法。本文将主要指向Quarkus的“亮点”——本地化应用程序。
以下是本文的两个目标:
将Quarkus开发的Java应用程序编译成本地可执行文件。
将本地可执行文件打包到容器中。
注:在本文中本地可执行文件又称本地镜像,二者意思相同。
环境准备
以下为本文所演示时的环境配置
Intellij IDEA
Maven
GraalVM 20.1.0
Docker
接下来需要安装GraalVM的一个扩展——“native-image“,此扩展用于将Java程序编译成本地可执行文件,我们执行以下命令:
gu install native-image
运行以下命令,查看扩展是否已安装:
$ native-image --version
生成本地可执行文件
生成本地可执行文件的步骤如下图:
IDEA打开上一篇文章创建的项目,并打开控制台,执行maven命令:
./mvnw package -Pnative
控制台输出以下内容:
[INFO] Scanning for projects...
...
[INFO] Building untitled 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
...
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.example.ExampleResourceTest
2020-07-19 22:24:08,962 INFO [io.quarkus] (main) Quarkus 1.6.0.Final on JVM started in 1.085s. Listening on: http://0.0.0.0:8081
...
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
...
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] Running Quarkus native-image plugin on GraalVM Version 20.1.0 (Java Version 11.0.7)
...
[INFO] [io.quarkus.deployment.QuarkusAugmentor] Quarkus augmentation completed in 93802ms
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:45 min
[INFO] Finished at: 2020-07-19T22:25:44+08:00
[INFO] ------------------------------------------------------------------------
打开项目中的target文件夹
可以看到其中有个重要的文件:XXX-runner,它是一个对JVM不依赖的本地可执行文件,我们可以运行他来启动应用程序。
$ ./target/untitled-1.0-SNAPSHOT-runner
成功启动应用程序,并且启动速度非常快
以上是关于云原生时代高性能Java框架—Quarkus的主要内容,如果未能解决你的问题,请参考以下文章