一款云原生时代的高性能 Java 框架

在国内 Spring 绝对是 Java 应用系统领域的首选框架,我们都是面向 Spring 开发,随着云原生时代的到来,Java 生态系统也要适应云原生开发趋势。

今天了不起给大家推荐一款 云原生时代的 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 上自动伸缩微服务,而低内存利用率有助于优化微服务体系结构部署中的容器密度。同时,它还提供了更小的应用程序和容器镜像空间占用。