简介

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.41MBStep 1/7 : FROM registry.access.redhat.com/ubi8/ubi-minimal:8.68.6: Pulling from ubi8/ubi-minimala6577091999b: Pull complete Digest: sha256:33931dce809712888d1a8061bfa676963f517daca993984afed3251bc1fb5987Status: Downloaded newer image for registry.access.redhat.com/ubi8/ubi-minimal:8.6 ---> abb1ba1bceabStep 2/7 : WORKDIR /work/ ---> Running in b1f6c5c33919Removing intermediate container b1f6c5c33919 ---> 44961ddcb521Step 3/7 : RUN chown 1001 /work     && chmod "g+rwX" /work     && chown 1001:root /work ---> Running in e1c1a83e964fRemoving intermediate container e1c1a83e964f ---> 225868ceda2cStep 4/7 : COPY --chown=1001:root target/*-runner /work/application ---> 55b2bba61da1Step 5/7 : EXPOSE 8080 ---> Running in 9b90514423ebRemoving intermediate container 9b90514423eb ---> 00f981b47b0eStep 6/7 : USER 1001 ---> Running in bd5d1b723784Removing intermediate container bd5d1b723784 ---> 14d55159d2d9Step 7/7 : CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] ---> Running in c60a96727644Removing intermediate container c60a96727644 ---> 77fdda464a6aSuccessfully built 77fdda464a6aSuccessfully 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:80802022-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