在这个数字第一的时代,技术发展更快。它帮助技术人员开发和部署更快、更面向性能、更高效和更低内存消耗的应用程序。Quarkus是RedHat的一项此类计划。它是由RedHat设计和开发的,考虑到cloud-native、serverless和容器化应用程序的未来。
根据RedHat的定义:“Quarkus是一个完整的堆栈,Kubernetes原生Java框架,用于Java虚拟机(JVM)和本机编译,专门为容器优化Java,使其成为serverless无服务器、云和Kubernetes环境的有效平台。”
为什么是Quarkus
在今天的数字生态系统中,云应用的使用每天都在增加。构建无服务器和容器化应用程序的需求也呈指数级增长。现有的Java框架(如SpringBoot)在设计时没有考虑到serverless无服务器和容器化。因此,Java开发人员面临着为最新的云模型构建这些应用程序的挑战。
Quarkus框架的构建考虑到Kubernetes本机和serverless无服务器,并支持现有Java库和框架的完整堆栈。
Quarkus是如何工作的?
Quarkus通过减小Java应用程序和容器映像的大小,专门为Kubernetes优化Java。它消除了编译时不需要或不必要的java类/JAR。其他框架通常不会在构建运行时映像时删除许多不需要的Java类/JAR。Quarkus使用预编译的现代虚拟机,如GraalVM和HotSpot。开发人员可以选择在GraalVM或JVM上运行Quarkus应用程序。
Quarkus使用GraalVM虚拟机以提前编译方法编译Java应用程序,并生成高效的Kubernetes本机可执行文件。该文件包含应用程序代码、所需的Java库以及运行时JVM所需的最少Java类。因此,它有助于尽可能减少运行时Java部分。
1. 对GraalVM的支持
GraalVM为Java应用程序提供高性能运行时。它使用提前编译技术来提高应用程序的性能和吞吐量。由于GraalVM的支持,Quarkus编译为本机映像的应用程序只使用所需的库。因此,它的启动速度要快得多,并且可以使用比标准JVM小得多的堆运行。
2. 本机预引导容器映像
Quarkus尽可能预引导本机映像,并减少运行时环境中映像的负担。Quarkus创建的映像在创建可执行文件之前已经运行了大部分启动代码。这样可以更快地启动映像。这反过来又支持更快地扩展Java应用程序。
3. 很少或没有反射用法
Quarkus尽量避免使用反射等重处理。它极大地提高了启动时间和内存使用率。
4. 缩短了构建时间元数据处理
在传统模型或其他JVM应用程序中,执行初始应用程序部署所需的所有类都会在应用程序的整个生命周期中保留。即使它们在整个应用程序生命周期中只使用一次。使用Quarkus,这些不需要的类甚至不会加载到生产JVM中。它会导致非常低的内存利用率,而且启动时间也更快,因为所有元数据处理都已由Quarkus完成。
Quarkus的内存消耗
在一个典型场景中,QuarkUs消耗的内存少于其他Java/Spring Boot应用程序的4到10倍,并且速度要快得多。下面的快照显示了使用Quarkus构建的Java应用程序与传统Java堆栈框架(如SpringBoot)相比所消耗的内存。它还强调了QuarkUs在使用GraalVM和不使用GraalVM时的内存消耗。
Quarkus现在也是Red Hat运行时的一部分。RedHat提供了一个中间件,该中间件包括产品、工具和组件,用于通过使用轻量级运行时和用于高度分布式云架构(包括微服务)的框架来开发和维护云本地应用程序。
Quarkus的好处
Java开发人员生产力的显著提高
Quarkus可用于几乎所有流行的Java标准、框架和库。它还消除了学习新API或切换到任何其他编程语言或IDE的需要。
Quarkus提供了一些新功能,如实时编码和统一配置,以便在开发过程中加快迭代。在实时编码中,更改会自动并立即反映在正在运行的应用程序中。许多开发人员将实时编码列为快速开发和测试应用程序的关键要求之一。
提高运营效率和成本
Quarkus专为docker化、Kubernetes原生开发堆栈定制,使组织能够更快地构建和交付。这有助于组织更有效地实现其业务目标,并在市场上保持竞争优势。
Quarkus的最大优势之一是内存消耗低,启动时间快。这直接导致更好的资源利用率和更短的响应时间。更好地利用资源可进一步节省大量成本。响应时间越短,最终用户体验越好。
提高恢复力
大多数Quarkus应用程序都是容器化的、有弹性的、可扩展的,能够满足不断变化的需求,从而形成更可靠、更具弹性的系统。Quarkus docker图像加载速度极快。这不仅有助于在短时间内扩展业务应用程序,而且在故障切换情况下切换到其他映像时也非常有用。
结论
Quarkus有着光明的未来,因为它直接帮助技术专家解决Kubernetes内容器的可扩展性和更快引导的当前和未来需求。它还帮助开发人员利用实时编码功能。因此,开发人员可以使用Quarkus更快地构建应用程序并变得更高效。
原文地址:https://blog.knoldus.com/quarkus-supersonic-subatomic-java/
除特别注明外,本站所有文章均为老K的Java博客原创,转载请注明出处来自https://javakk.com/2227.html
暂无评论