首页IT科技quark网盘(Quarkus入门体验,22ms启动一个Web服务)

quark网盘(Quarkus入门体验,22ms启动一个Web服务)

时间2025-05-05 12:23:05分类IT科技浏览3218
导读:简介 Quarkus是类似于Spring Boot的框架,可以方便大家进行Java开发。利用GraalVM的魔力,能更好的适应云原生的场景,极快的启动速度。...

简介

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/pkslow-samples

References:

CREATING YOUR FIRST APPLICATION

BUILDING A NATIVE EXECUTABLE

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
thymeleaf算前后端分离吗(thymeleaf实现前后端数据交换) gpt3写小说(怎么用gpt写文章批量写文章-gpt3写原创文章)