Spring Boot 和 Quarkus 的区别

Spring Boot 和 Quarkus 都是非常重要的微服务。Spring Boot 是一个由 Pivotal 团队开发和管理的开源项目。而且,Quarkus 也是由红帽工程师开发并由红帽管理的开源产品。在这篇学习Spring Boot系列的文章中,我们将根据核心框架能力、内存消耗、云就绪、易于开发、性能等几个参数来讨论Spring Boot Vs Quarkus。

在深入探讨该主题之前,让我们快速浏览一下这两种技术:

什么是 Spring Boot?

Spring Boot 是一个用于开发基于 Java 的企业应用程序的 Java 框架。它使用一些广泛的功能(例如自动配置、启动器等)提供生产就绪的应用程序。我们可以使用 Spring Boot 创建具有一个类的成熟的 Spring 应用程序。由于其特性,Spring Boot 是创建微服务的最佳技术之一。

阅读有关什么是 Spring Boot 的更多信息。

什么是夸库斯

Quarkus 也是一个为 JVM 设计的 Java 框架,它承诺提供小型工件、快速启动时间和更短的首次请求时间。它是适用于无服务器、云和 Kubernetes 环境的有效平台。

它旨在与流行的 Java 框架、标准和库(例如 Eclipse MicroProfile 和 Spring、Apache Kafka、Hibernate、Camel 等)一起使用。

Quarkus 提供依赖注入,它基于 CDI(上下文和依赖注入)。它是一个广泛的框架,用于配置、启动和集成到您的应用程序中。

它还为 GraalVM 提供了正确的信息,用于应用程序的本地编译。GraamVM 是一个通用虚拟机,用于运行以多种语言编写的应用程序,包括 Java 和 JavaScript。

让我们根据不同的参数和性能来比较这两个框架:

自举

要使用这两个框架创建应用程序,我们不需要任何服务器/容器。我们可以使用所需的工具(例如 IDE、已安装的 Java 版本等)轻松引导我们的应用程序。

让我们看看两者的引导选项:

弹簧靴:

要开始使用 Spring Boot,我们有多种选择,例如:

  • 在线初始化程序(https://start.spring.io/)。
  • Spring 命令行界面
  • 您最喜欢的 IDE 的插件,例如Eclipse、IntelliJ、Visual Studio 或STS IDE(最有利的选择)

要使用 Spring Boot 创建项目,请导航到https://start.spring.io/并填写项目详细信息。考虑以下 Spring 入门页面的快照:

Spring Boot 和 Quarkus 的区别_第1张图片

单击 Generate 选项以生成 Spring Boot 项目。现在,在你喜欢的 IDE 中导入这个项目(推荐使用 STS)

夸库斯:

要开始使用 Quarkus,我们有多种选择,例如:

  • Maven 和 Gradle 插件
  • 在线启动工具(https://code.quarkus.io/)(用于从云端引导您的项目)
  • 使用您喜欢的 IDE 的插件,例如 IntelliJ、JBoss Tools for Eclipse、Visual Studio、Eclipse Che 等。

要使用 Quarkus 创建项目,请导航到Quarkus - Start coding with code.quarkus.io并填写项目详细信息。考虑以下 quarkus 起始页的快照:

填写详细信息后,单击Generate your application并选择Download as a zip选项。它将开始下载项目并弹出以下窗口:

Spring Boot 和 Quarkus 的区别_第2张图片

现在,选择关闭并解压缩 Zip 文件。

现在,我们可以将这个项目导入到我们的 IDE 中。

因此,我们可以使用 Spring Boot 和 Quarkus 轻松创建项目。这两个框架的入门都非常简单。

先说一下它的性能:

内存利用率

Quarkus 项目比 Spring Boot 项目需要更少的内存。Quarkus 在构建应用程序时使用了提前编译技术,这带来了仅加载有助于启动应用程序的必要类的好处。

依赖和 REST 端点

这两个项目具有相同的依赖项和 REST 端点。

开机时间

Quarkus 的 Boot-time 比 Spring Boot 稍快。

Quarkus 的优点和缺点

两种工具之间的比较不仅限于它们的功能。我们必须看到他们的优缺点,也要看他们解决了什么问题。

让我们讨论一下 Quarkus 的一些明显优缺点:

  • Quarkus 被大量记录。Quarkus 的网站上有很多简单的文档。它还有几个社区可以帮助开发人员。但是,社区对 Spring Boot 的支持是无与伦比的。
  • Graal VM 安装相当复杂。我们需要验证特定于操作系统的二进制文件和包,这绝对不是小菜一碟。
  • 它推销自己的主要优势之一是应用程序启动时间比其他框架快得多它通过使用内置元数据处理机制和使用 Graal 或 Substrate VM 构建独立的本机映像来提供更快的启动时间。
  • 它的社区论坛并没有提供您在 Quarkus 中可能遇到的问题的所有解决方案。
  • 它适用于AWS lambda 等无服务器环境。
  • 它的启动时间可以极大地帮助您降低执行的总体成本
  • 它建立在JAX-RS 等已知企业标准之上
  • 它为使用可执行文件或使用 Java 运行时环境的应用程序提供优化的运行时。
  • 它提供比 Spring Boot更快的热重载。
  • 它提供了非常有趣和最新的路线图

Spring Boot 的优缺点

Spring Boot 的一些明显优缺点如下:

  • Spring Boot 项目可能需要很长时间才能启动
  • 很大程度上依赖于启动模块
  • 它包含很多依赖项
  • 由于它包含多个依赖项,因此可能会影响项目的启动时间和整体性能。
  • 它比 Quarkus 需要更多的内存。
  • 它被大量记录
  • 它提供了出色的社区支持。您可以在其社区中找到几乎所有解决方案。
  • Spring Boot 提供更快的 I/O 操作
  • 它提供了一个模板设计模式,这意味着我们可以在 pom.xml 文件中包含我们的依赖项。
  • 它借助其广泛的功能(例如自动配置、YAML 支持等)减少了开发人员的工作量。
  • 它是安全的。

查看Spring Boot 的所有优点。

Spring Boot 和 Quarkus 之间的头对头比较

请考虑下表,了解 Spring Boot 和 Quarkus 之间的主要差异:

比较  夸库斯 弹簧靴
微服务 它包含 由高度活跃和响应迅速的社区驱动的Microprofile API 。它是创新的,纯粹由开发人员驱动。   Spring Bot 支持 自己的模块 来开发具有相同目标的现代微服务架构。
前端开发 很容易包含基本的内置前端选项(Servlet)和一些实验性的(Qute)。 它基于 Spring MVC 的坚实基础, 包括成熟的模板,例如 ThymeLeaf。
到期 这是一个新的框架。文档和社区不如 Spring Boot 活跃。但它提供了一个生产就绪的 Java 应用程序。 比 Quarkus 成熟得多,Quarkus是一个开源、功能丰富的框架。它提供了出色的文档和巨大的社区支持。
反应式应用 它提供了传统(命令式)编程模型和基于事件的最先进的组合 。 它提供了一个项目 Reactor  ,它是一个完全无阻塞的基础,包括背压支持
依赖注入 它使用 CDI。目前,仅实现了 CDI 功能的一个子集 它使用其 强大的依赖注入容器
数据持久化 Quarkus 使用开发人员熟悉的框架(Hibernate ORM),可以通过 Panache 进一步加速。它更具创新性。 Spring Boot 基于 Spring Data 抽象,提供了更多的成熟度
速度 它提供更快的启动时间,这是它的主要营销功能。 它提供比 Quarkus 更慢的引导时间。由于来自 Spring 框架顶部的抽象,它通常比从 Java Enterprise API 派生的项目慢。

结论

正如我们已经讨论了这两个框架的几乎所有基础知识和引导。但是您可能仍然有一个问题,即哪一个对您学习和您的项目有好处。我们一定会通过我们的最后说明清除您。

首先应该考虑您的要求。现在,想想哪一个能满足你的要求。

这两个框架无疑都是用于开发和部署基于 Java 的企业应用程序的非常广泛的框架。

Quarkus 是一个新框架,但比 Spring Boot 更具创新性。Quarkus 框架的主要问题是社区支持较少。如果您在工作中遇到困难,那么您的工作可能会遇到困难。GitHub 上有几个 Quarkus 快速入门项目。强烈建议在开始之前先查看它们。

相比之下,Spring Boot 是一个众所周知的名字。它有一个强大的开发模块和 Spring 强大的技术。它是一个可靠且稳定的框架。您可以在 Web 上找到与 Spring Boot 相关的大量文档和社区支持。在使用 Spring Boot 时,它对您有很大帮助。

现在一切都取决于您,您更喜欢哪种技术。

到这里,我们就完成了这篇 Spring Boot Vs Quarkus 的文章。请分享您的想法。

你可能感兴趣的:(java,spring,boot,spring)