java云框架_java云原生-Quarkus框架笔记

前言

在鼓吹云原生的时代 java也在与时俱进

衍生出适合云原生时代的框架技术

quarkus是开源的基于vert.x等框架开发的一种应用层框架 可以利用graalvm来做native image 提升执行效率官网: https://quarkus.io/

graalVM oracle开源的一个强力的跨语言 vm 可以将多种语言编译成native image

此处记录笔记 方便后续查询使用

示例此处使用maven手工搭建 可以使用官方cli 或者官网进行搭建 跟spring-boot-cli 和start.spring.io 差不多

maven配置

利用quarkus maven插件 来完整的初始化项目script1

2

3

4

5

6#创建一个quarkus项目 只有一个path class

mvn io.quarkus:quarkus-maven-plugin:1.0.0.CR1:create \

-DprojectGroupId=com.ming \

-DprojectArtifactId=quarkus \

-DclassName="com.ming.Hello" \

-Dpath="/hello"

使用

利用quarkus maven插件 启动项目script1

2#在生成的项目根目录执行 启动当前项目

mvn io.quarkus:quarkus-maven-plugin:1.0.0.CR1:dev

运行日志:1

2

3

4

52019-11-20 13:53:14,057 INFO [io.qua.dep.QuarkusAugmentor] (main) Beginning quarkus augmentation

2019-11-20 13:53:15,194 INFO [io.qua.dep.QuarkusAugmentor] (main) Quarkus augmentation completed in 1137ms

2019-11-20 13:53:15,505 INFO [io.quarkus] (main) Quarkus 1.0.0.CR1 started in 1.575s. Listening on: http://0.0.0.0:8080

2019-11-20 13:53:15,507 INFO [io.quarkus] (main) Profile dev activated. Live Coding activated.

2019-11-20 13:53:15,507 INFO [io.quarkus] (main) Installed features: [cdi, resteasy]

测试使用:script1

2curl http://127.0.0.1:8080/hello

#返回hello

打包

使用quarkus 插件的build功能script1

2

3

4#刷新依赖配置

mvn -DskipTests clean install

#使用插件build

mvn io.quarkus:quarkus-maven-plugin:1.0.0.CR1:build

运行jar:script1

2#示例jar不一定是这个名字 具体的在target文件目录找

java -jar ./target/quarkus-1.0-SNAPSHOT-runner.jar

运行日志:1

2

3

4ming@ming:~/workspaces/tmp/quarkus$ java -jar ./target/quarkus-1.0-SNAPSHOT-runner.jar

2019-11-20 14:05:50,993 INFO [io.quarkus] (main) quarkus 1.0-SNAPSHOT (running on Quarkus 1.0.0.CR1) started in 0.900s. Listening on: http://0.0.0.0:8080

2019-11-20 14:05:51,013 INFO [io.quarkus] (main) Profile prod activated.

2019-11-20 14:05:51,014 INFO [io.quarkus] (main) Installed features: [cdi, resteasy]

使用graalvm 构建native image

先安装graalvmscript1sdk install java 19.2.1-grl

使用quarkus插件构建 native image

script1mvn io.quarkus:quarkus-maven-plugin:1.0.0.CR1:native-image

使用容器运行graalvm构建的native image

查看/src/main/docker/Dockerfile.native dockerfile 打包到镜像的时候 直接用这个dockerfile即可

在项目根目录执行如下shell 演示使用自带的dockerfile 打包和运行 demo

script1

2docker build -f src/main/docker/Dockerfile.native -t ming/quarkus:1.0.0 .

dockerk run -d -p 8080:8080 ming/quarkus:1.0.0

总结

quarkus 怎么说呢 把java中的一些比较厉害的框架组合起来形成一种一站式开发框架 从创建项目 到构建镜像 都可以一套插件搞定

有点不好的地方 就是跟原本熟悉spring全家桶的java开发来说 写法和习惯都有一些不同

二个上了graalvm的车 说不好后面这个东西 能不能用

你可能感兴趣的:(java云框架)