ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

谁才是微服务赢家:Quarkus 与 Spring Boot

2022-02-20 13:31:46  阅读:497  来源: 互联网

标签:容器 Spring Boot 应用程序 echo Quarkus Docker quarkus


在容器时代(“Docker 时代”)Java 仍然处于领先地位,但哪个更好?Spring Boot 还是 Quarkus?

谁会最先进的?Spring Boot 或 Quarkus。

在容器时代(“ Docker 时代”),无论您是否在使用它,都不可否定java的活力。Java 在性能方面一直比较有优势,主要是因为代码和真实机器之间的抽象层,多平台的成本(一次编写,随处运行 - 还记得吗?),其中包含 JVM -between(JVM:模拟真实机器所做的软件机器)。

如今,使用微服务架构,也没有任何优势,为总是在同一个地方和平台上运行的东西(Docker 容器 - Linux) 环境构建多平台(解释)的东西。可移植性现在不那么重要了(可能比以往任何时候都重要),那些额外的抽象级别并不重要。

话虽如此,让我们对在Java中生成微服务的两种替代方案进行简单而原始的比较:非常知名的Spring Boot和不太知名的(尚未)Quarkus

反对者

Quarkus是什么?

一套适用于GraalVM和 HotSpot的开源技术 ,用于编写 Java 应用程序。它提供(承诺)超快的启动时间和更低的内存占用。这使其成为容器和无服务器工作负载的理想选择。它使用 Eclipse 微配置文件(JAX-RS、CDI、JSON-P),这是 Java EE 的一个子集来构建微服务。

GraalVM 是一个通用的多语言虚拟机JavaScript、Python、Ruby、R、Java、Scala、Kotlin)。 GraalVM (特别是 Substrate VM)使提前(AOT)编译成为可能,将字节码转换为本地机器码,从而生成可以本地执行的二进制文件。

请记住,并非所有功能都可以在本机执行中使用,AOT 编译有其局限性。注意这句话(引用 GraalVM 团队):

我们运行需要一个封闭世界假设的激进静态分析,这意味着在运行时可访问的所有类和所有字节码必须在构建时已知。

因此,例如,反射和 Java 本机接口 (JNI) 将不起作用,至少是开箱即用的(需要一些额外的工作)。您可以在本机图像 Java 限制文档中找到限制列表。

Spring Boot是什么?

这是真的吗?好吧,我只想说一句(请随意跳过),一句话:Spring Boot构建在 Spring Framework 事实上,是一个开源框架,它提供了一种更简单的方式来构建、配置和运行基于 Web 的 Java 应用程序. 使其成为微服务的良好候选者。

战斗准备——创建 Docker 镜像

Quarkus镜像

让我们创建 Quarkus 应用程序,以便稍后将其包装在 Docker 映像中。基本上,我们将做与 Quarkus入门教程相同的事情。

使用 Quarkus maven 原型创建项目:

mvn io.quarkus:quarkus-maven-plugin:1.0.0.CR2:create
   -DprojectGroupId=ujr.combat.quarkus 
   -DprojectArtifactId=quarkus-echo
   -DclassName="ujr.combat.quarkus.EchoResource" 
   -Dpath="/echo"

这将导致我们项目的结构,如下所示:

请注意,还创建了两个示例Dockerfile (src/main/docker):一个用于普通JVM App Image,另一个用于Native App Image

在生成的代码中,我们只需要更改一件事,添加下面的依赖项,因为我们要生成 JSON 内容。

<dependency> 
   <groupId>io.quarkus</groupId>
   <artifactId>quarkus-resteasy-jsonb</artifactId> 
</dependency>

Quarkus 在整个 RESTEasy 项目实现中使用 JAX-RS 规范。

这是我们的“整个”应用程序:

这就是全部,使用下一个命令我们可以看到应用程序正在运行:

mvn clean compile quarkus:dev

在这种模式下,我们也开启了热部署,后台编译。让我们做一个简单的测试来看看:

curl -sw "\n\n" http://localhost:8080/echo/ualter | jq .

现在我们看到它正在工作,让我们创建 Docker 映像。从这里下载 GraalVM:https

标签:容器,Spring,Boot,应用程序,echo,Quarkus,Docker,quarkus
来源: https://www.cnblogs.com/microstone123/p/15915330.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有