云原生时代高性能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

生成本地可执行文件

生成本地可执行文件的步骤如下图:

云原生时代高性能Java框架—Quarkus(二)

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文件夹

云原生时代高性能Java框架—Quarkus(二)

可以看到其中有个重要的文件:XXX-runner,它是一个对JVM不依赖的本地可执行文件,我们可以运行他来启动应用程序。

$ ./target/untitled-1.0-SNAPSHOT-runner
云原生时代高性能Java框架—Quarkus(二)

成功启动应用程序,并且启动速度非常快

以上是关于云原生时代高性能Java框架—Quarkus的主要内容,如果未能解决你的问题,请参考以下文章

Quarkus技术系列「云原生架构原理」在云原生时代下的Java“拯救者”是Quarkus,那云原生是什么呢?

为云原生而生,Java微服务框架之-quarkus

为云原生而生,Java微服务框架之-quarkus

Quarkus:面向Java开发人员的云原生开源框架

Quarkus:面向Java开发人员的云原生开源框架

Java 云原生微服务框架 Quarkus 入门实践