IDEA中Quarkus框架(3.13版本)开发、调试、部署、打包等

该文章已生成可运行项目,

code-with-quarkus

code-with-quarkus 是使用官网生成的demo项目
这个项目使用Quarkus(使用3.13.0版本,该版本支持JDK21),超音速亚原子Java框架。

官网地址: https://quarkus.io/.

环境要求

OS: Windows 10.0 +
jdk 11+
maven 3.9+
IntelliJ IDEA 2024.1 (Community Edition)

一、准备工作

1、在IDEA中,给目标项目配置JDK(11+)

在这里插入图片描述

2、Debug模式启动项目:
mvn compile quarkus:dev 命令启动时,会自动监听5005端口进入调试模式, 只需要在IEDA中添加调试器(Attach debugger), 即可断点调试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

二、开发模式启动项目

命令:

./mvnw compile quarkus:dev

NOTE: Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/.

三、打包项目

命令:

./mvnw package

它在“target/quarkus-app/”目录中生成“quarkus-run.jar”文件。
请注意,它不是一个_über-jar_,因为依赖项被复制到“target/quarkus-app/lib/”目录中。
该应用程序现在可以使用java-jar target/quarkus-app/quarkus-run.jar运行。
如果要构建_über-jar_,请执行以下命令:

./mvnw package -Dquarkus.package.jar.type=uber-jar

该应用程序打包为_über-jar_,现在可以使用java-jar target/*-runer.jar运行。

四、创建可执行文件、部署

打包命令:

cd quarkus-helloworld
./mvnw package -Dnative

如果本地未安装GraalVM ,您可以使用以下命令在容器中运行原生可执行构建包**(需要先安装Docker)**:

cd quarkus-helloworld
./mvnw package -Dnative -Dquarkus.native.container-build=true

参数说明:
-Dquarkus.native.container-build=true 表示使用容器把jar构建成镜像,而不是用本地GraalVM
-Dquarkus.native.container-runtime=docker 表示使用Docker构建,也可以使用Podman。默认就是docker,此参数可以忽略。

在这里插入图片描述

查看docker镜像,已生成了应用的镜像文件(jar包模式):
在这里插入图片描述

运行方式一:根据镜像(jar包模式)启动应用:

docker run -id -p 8080:8080 --name code-with-quarkus 004183/code-with-quarkus:1.0.0-SNAPSHOT

在这里插入图片描述

运行方式二: linux系统中直接运行可执行文件

也可以在linux系统中给(./target/code-with-quarkus-1.0.0-SNAPSHOT-runner)你的原生可执行包赋权,并运行。
在这里插入图片描述

可以看出,直接运行可执行文件来启动时,运行速度相当快。

运行方式三: 把原生可执行包 做成 docker镜像 并启动

cd quarkus-helloworld
docker build -f src/main/docker/Dockerfile.native -t quarkus/code-with-quarkus .

在这里插入图片描述

docker run -id -p 8081:8080 --name code-with-quarkus-native quarkus/code-with-quarkus

在这里插入图片描述
如果您想了解有关构建本机可执行文件的更多信息,请咨询https://quarkus.io/guides/maven-tooling

简单结论:

一、从占用服务器内存资源的角度分析

  • jar包的应用占用的180M内存,docker容器中运行原生包占用28.21M内存,有将近6倍内存资源占用的差距。

二、从启动速度上角度分析:

  • jar包启动时间通常随着包体积的增大而变长,docker容器中运行原生包启动速度非常快,通常是毫秒级启动

三、从服务扩容的快速响应速度分析:

  • jar包启动后,需要一定的预热时间、预热的内存,在高并发、流量浪涌的场景中,无法快速响应。
  • docker容器中运行原生包启动,预热时间极短、预热内存极少,可以快速响应高并发、流量浪涌的业务场景。

Quarkus框架学习的第二部分,请访问

IDEA中Quarkus框架(3.13版本)容器编排、压测与调优、注意事项等

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值