Quarkus 初见
- 作者:DecaMinCow
- 博客:http://blog.youkuaiyun.com/m0_37567301
- 邮箱:decamincow#gmail.com (#->@)
一、背景
JIT VS AOT
优点 | 缺点 | |
---|---|---|
JIT | 运行期优化 | 包大、占内存大、启动慢 |
AOT | 包小、占内存小、启动快 | 不能支持 java 所有特性 |
Native Image 运行机制
二、动手把玩
环境
- MacOS
- IntelliJ IDEA
- GraalVM
- Apache Maven 3.6.2+
- 下载 AOT 编译器
gu install native-image
快速拉起一个 greeting 应用
mvn io.quarkus:quarkus-maven-plugin:1.13.0.Final:create \
-DprojectGroupId=org.acme \
-DprojectArtifactId=getting-started \
-DclassName="org.acme.getting.started.GreetingResource" \
-Dpath="/hello"
cd getting-started
编译
生成一个可执行程序
./mvnw package -Pnative
生成一个容器友好的可执行程序
./mvnw package -Dnative -Dquarkus.native.container-build=true
执行程序
./target/getting-started-1.0.0-SNAPSHOT-runner
制作 docker 镜像并启动
docker build -f src/main/docker/Dockerfile.native -t quarkus/getting-started .
docker run -i --rm -p 8080:8080 quarkus/getting-started