今天了不起给大家推荐一款 云原生时代的 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复制https://github.com/quarkusio/quarkus
总结
Quarkus 可以快速启动,支持在容器和 Kubernetes 上自动伸缩微服务,而低内存利用率有助于优化微服务体系结构部署中的容器密度。同时,它还提供了更小的应用程序和容器镜像空间占用。