云原生应用构建:基于OpenShift
上QQ阅读APP看书,第一时间看更新

3.3 Quarkus的架构

Quarkus被称为“超音速亚原子Java”。Quarkus优化了Java框架,使其更具模块化,减少了框架本身的依赖性。Quarkus基于GraalVM,也支持JVM。GraalVM是一套通用型虚拟机,能执行各类高性能与互操作性任务,并在无须额外成本的前提下允许用户构建多语言应用程序,如图3-13所示。

图3-13 GraalVM架构

在传统的JVM中运行应用启动速度会比较慢。GraalVM可以为现有基于JVM的应用创建Native Image的功能(即本机可执行二进制文件)。生成的本机二进制文件以机器代码形式包含整个程序,可以直接运行。

正是由于Quarkus本身针对传统Java进行了优化,同时它可以运行在GraalVM上,因此它的启动速度很快、运行时消耗的内存很小(与Java EE和Spring Boot应用相比)。针对Quarkus的特点,总结如下。

·容器优先:最小的Java应用程序,最适合在容器中运行。

·Cloud Native:符合微服务12要素架构。

·统一命令式和响应式:在一种编程模型下实现非阻塞式和命令式开发风格。

·基于标准:支持多种标准和框架(RESTEasy、Hibernate、Netty、Eclipse Vert.x、Apache Camel)。

·微服务优先:缩短了启动时间,使Java应用程序可以执行代码转换。

接下来,我们通过实验的方式,验证基于Quarkus的特性。