共计 2447 个字符,预计需要花费 7 分钟才能阅读完成。
简介
Quarkus
是相似于 Spring Boot
的框架,能够不便大家进行 Java 开发。利用 GraalVM
的魔力,能更好的适应云原生的场景,极快的启动速度。
创立我的项目
在 IDEA 就间接有创立 Quarkus 我的项目的初始化工具,间接依据本人须要填好即可,十分不便:
抉择本人须要的一些组件和依赖,我这里只抉择 Web Reactive。这跟 Spring Boot 挺像的。
生成的 Java 代码就一个文件,很简略玲珑:
编译运行
创立胜利后,把编译指标改为 11,因为我用的是 JDK11。通过 mvn clean package
尝试打包,下载依赖包。编译胜利后,IDEA 反对间接跑 Quarkus 程序,如下:
启动胜利如下:
Quarkus 在首页提供了一些开发信息和工具,如下:
拜访服务如下:
间接批改 Java 代码:
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {return "Hello from pkslow.com";}
不必重启就能够失效:
在 Docker 上运行
打包成 Native 的 Docker 镜像,命令如下:
$ mvn clean package -Dnative -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=docker
第一次可能比拟长时间,须要下载镜像。但这种打镜像的办法是把文件放在镜像里面。通过 -v
的形式来运行。
所以咱们再通过上面命令来生成镜像:
$ docker build -f src/main/docker/Dockerfile.native -t pkslow/quarkus-quickstart .
Sending build context to Docker daemon 55.41MB
Step 1/7 : FROM registry.access.redhat.com/ubi8/ubi-minimal:8.6
8.6: Pulling from ubi8/ubi-minimal
a6577091999b: Pull complete
Digest: sha256:33931dce809712888d1a8061bfa676963f517daca993984afed3251bc1fb5987
Status: Downloaded newer image for registry.access.redhat.com/ubi8/ubi-minimal:8.6
---> abb1ba1bceab
Step 2/7 : WORKDIR /work/
---> Running in b1f6c5c33919
Removing intermediate container b1f6c5c33919
---> 44961ddcb521
Step 3/7 : RUN chown 1001 /work && chmod "g+rwX" /work && chown 1001:root /work
---> Running in e1c1a83e964f
Removing intermediate container e1c1a83e964f
---> 225868ceda2c
Step 4/7 : COPY --chown=1001:root target/*-runner /work/application
---> 55b2bba61da1
Step 5/7 : EXPOSE 8080
---> Running in 9b90514423eb
Removing intermediate container 9b90514423eb
---> 00f981b47b0e
Step 6/7 : USER 1001
---> Running in bd5d1b723784
Removing intermediate container bd5d1b723784
---> 14d55159d2d9
Step 7/7 : CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]
---> Running in c60a96727644
Removing intermediate container c60a96727644
---> 77fdda464a6a
Successfully built 77fdda464a6a
Successfully tagged pkslow/quarkus-quickstart:latest
通过 Docker 来启动:
$ docker run -i --rm -p 8080:8080 pkslow/quarkus-quickstart
__ ____ __ _____ ___ __ ____ ______
--/ __ \/ / / / _ | / _ \/ //_/ / / / __/
-/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
2022-11-01 07:36:38,557 INFO [io.quarkus] (main) quarkus-quickstart 1.0-SNAPSHOT native (powered by Quarkus 2.13.3.Final) started in 0.022s. Listening on: http://0.0.0.0:8080
2022-11-01 07:36:38,558 INFO [io.quarkus] (main) Profile prod activated.
2022-11-01 07:36:38,558 INFO [io.quarkus] (main) Installed features: [cdi, resteasy-reactive, smallrye-context-propagation, vertx]
能够看出启动相当快,才用了 22ms。拜访对应的网页和接口也是失常的。
代码
代码请看 GitHub: https://github.com/LarryDpk/p…
References:
CREATING YOUR FIRST APPLICATION
BUILDING A NATIVE EXECUTABLE
正文完