今天了不起给大家推荐一款 云原生时代的 Java 框架 -- Quarkus。
项目简介
Quarkus 是一个为 Java 虚拟机(OpenJDK HotSpot)和原生编译而设计的全堆栈 Kubernetes 原生 Java 框架,用于专门针对容器优化 Java,并使其成为无服务器、云和 Kubernetes 环境的高效平台。
Quarkus的主要特点包括:
- 极快的启动时间和低内存消耗
- 支持将Java应用程序打包为本机可执行文件
- 提供了大量的扩展来支持各种技术栈,例如RESTful Web服务、Kafka、Hibernate等
- 支持微服务和Serverless应用程序开发
- 提供了开发工具和插件来简化开发过程
开始使用
准备环境:
- JDK 11+
- Apache Maven 3.9.3
使用Maven方式搭建
代码语言:javascript
复制
mvn io.quarkus.platform:quarkus-maven-plugin:3.3.3:create -DprojectGroupId=org.acme -DprojectArtifactId=getting-started
maven 使用阿里云镜像在拉取依赖时可能会存在某些依赖下载不了的问题,可以使用默认仓库,或者选用其他仓库使用。等待maven构建完成即可。
命令行方式启动
代码语言:javascript
复制
mvn compilie quarkus:dev
编写接口
代码语言:javascript
复制
@Path("/hello") public class GreetingResource {
@GET @Produces(MediaType.TEXT_PLAIN) public String hello() { return "hello"; }
}
也可以直接通过 IDEA 直接构建项目,这里就不赘述了。
构建 NATIVE IMAGE
quarkus 的特色就是可以构建云原生应用,直接 Native 编译,运行速度大小等都比jar包要快,但是编译时间确实很长。
代码语言:javascript
复制
mvn package -Pnative -Dquarkus.native.container-build=true
创建容器
代码语言:javascript
复制
./mvnw package -Dnative -Dquarkus.native.container-build=true -Dquarkus.container-image.build=true
quarkus.native.container-build=true
允许在不安装 GraalVM 的情况下创建 Linux 可执行文件。
使用远程的Docker 守护进程,quarkus.native.container-build=true``quarkus.native.remote-container-build=true
Spring Boot 和 Quarkus 对比
项目地址
代码语言:javascript
复制
总结
Quarkus 可以快速启动,支持在容器和 Kubernetes 上自动伸缩微服务,而低内存利用率有助于优化微服务体系结构部署中的容器密度。同时,它还提供了更小的应用程序和容器镜像空间占用。