编程语言
首页 > 编程语言> > Java云原生崛起微服务框架Quarkus入门实践

Java云原生崛起微服务框架Quarkus入门实践

作者:互联网

GraalVM简介

GraalVM是Oracle开发的高性能的多语言运行时JDK,提高Java应用程序的性能,同时消耗更少的资源。GraalVM提供了两种运行Java应用程序的方法:在HotSpot JVM上使用Graal即时(JIT)编译器,或者作为预先(AOT)编译的本机可执行文件。除了Java,它还提供了JavaScript、Ruby、Python和其他一些流行语言的运行时。GraalVM的多语言功能使得在一个应用程序中混合编程语言成为可能,同时消除了任何外语调用成本。目前最新版本为22.2。

image-20221017140108485

为何使用

相信使用SpringBoot的快速开发企业级应用微服务启动慢,从一个应用从启动到服务可用,一般是数秒,在对CPU核数和内存严格限制的情况下,花数十秒启动的情况也屡见不鲜,这样的问题无法适应需要快速重启或快速扩容的场景;而且内存消耗也很大如内存,如果限制在1G时FullGC频率变大,且经常触发OMM后Kill导致pod重启,并且启动时间也会变长,而相比之下,集群中使用go语言开发的应用则配置128M内存也可正常使用。以JVM模式运行的Java应用,并不太适合于云原生应用的开发,而拥抱云原生则是未来技术的大趋势。

特性

官方性能

image-20221017103848610

从图中可以看出,使用Quarkus和 GraalVM的简单的REST应用的启动时间仅为16毫秒,占用内存仅12MB。如果使用传统的基于Java虚拟机实现,应用的启动时间需要4.3秒,占用内存为136MB。

实战

入门示例

步骤

安装GraalVM

了解GraalVM的最新版本22.2的使用可以查阅GraalVM官方文档:https://www.graalvm.org/22.2/docs/ ,先从GitHub下载GraalVM,https://github.com/graalvm/graalvm-ce-builds/releases ,这里先以下载windows版本为例,下载后的文件graalvm-ce-java11-windows-amd64-22.2.0.zip,解压到本地磁盘目录,查看版本信息如下

image-20221018104434628

# windows
PATH环境变量增加路径:D:\Program Files\Java\graalvm-ce-java11-22.2.0\bin
JAVA_HOME配置环境变量:D:\Program Files\Java\graalvm-ce-java11-22.2.0

# linux
wget https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.2.0/graalvm-ce-java17-linux-amd64-22.2.0.tar.gz
tar -xvf graalvm-ce-java17-linux-amd64-22.2.0.tar.gz

export GRAALVM_HOME=/home/commons/graalvm-ce-java17-22.2.0
export PATH=$PATH:$GRAALVM_HOME/bin
export JAVA_HOME=${GRAALVM_HOME}
export PATH=$PATH:$JAVA_HOME/bin
export MAVEN_HOME=/home/commons/apache-maven-3.8.6
export PATH=$PATH:$MAVEN_HOME/bin

创建quarkus工程

万丈高楼平地起,首先是创建quarkus项目,与SpringBoot类似,Quarkus为我们提供了多种方式创建quarkus工程,下面介绍3种:

image-20221017162511656

mvn io.quarkus:quarkus-maven-plugin:create -DprojectGroupId=cn.itxs -DprojectArtifactId=quarkus-web-demo-m -DprojectVersion=1.0-SNAPSHOT -DclassName=FirstResource -Dpath=actions

标签:Java,Quarkus,JavaScript,编译器,执行文件,虚拟机
来源: