Quarkus实践指南:构建新一代的Kubernetes原生Java微服务
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 Quarkus 的适用场景、目标用户和竞争对手

1.Quarkus 的适用场景

Quarkus 的适用场景主要有5个方面。

(1)全新构建微服务架构:Quarkus 支持多种微服务架构,对于全新构建微服务体系,可以采用Quarkus 技术栈来实现落地。

(2)构建 Serverless 架构:Quarkus 应用程序可以瞬间启动,其将 Java 成功地引入了Function-as-a-Service (FaaS)运行时的行列。由于 Serverless 架构的整个技术栈都包含在Quarkus 内,因此Quarkus 具备在Serverless环境中实现任何类型的业务逻辑所需的功能。

(3)响应式系统:由于 Quarkus 的基础架构设计就是基于响应式模式和响应式编程的,因此其非常适合编写处理异步事件和内置事件总线的应用。

(4)物联网:Quarkus 占用空间小,这样其在物联网应用程序和系统中才占有优势。

(5)单体应用转为微服务:在单体应用被拆分为微服务的情况下,无论是运行在服务器上的应用或Spring Boot应用,都会占用很多的内存,启动时间很长。将这些应用迁移到Quarkus 框架上会是一个解决问题的好选择。

2.Quarkus 的目标用户

Quarkus 的目标用户主要是有下列特征的公司和开发者。

■ 那些使用Red Hat®JBoss®企业应用平台(JBoss EAP)或在OpenShift®上运行Spring Boot的抱怨内存占用过多的用户。

■ 那些希望实现数字化和现代化转型的用户。

■ 那些由于某种原因想放弃Java语言而转向Go或Python语言的用户。

■ 那些提供很少被调用但需要一直维护且不能间断的应用服务的用户。

■ 那些正在寻找替代Netflix OSS容错能力方案的用户。

■ 那些希望构建无服务功能(如部署Serverless集成逻辑)的用户。

■ 那些希望使用轻量级连接器集成Kafka的用户。

■ 那些想用Java开发集成路由,需要用到JavaScript或Groovy语言,同时需要快速启动和低内存消耗的用户。

■ 那些正在寻找基于BPMN和DMN的、运行时轻量级开发微服务的、实现行之有效的决策和自动化业务逻辑的用户。

3.Quarkus 的竞争对手

按照微服务体系的划分,Quarkus 框架应该归属于微服务开发框架。微服务开发框架的主要目标是推进微服务化、平台化的发展,结合服务治理规范,开发和实现便于管理服务、可降低开发成本的软件开发框架。微服务开发框架的功能应包括两方面。一方面,为了降低微服务的开发成本,微服务开发框架平台应该对服务框架集成、服务定义、服务通信、服务持续交付、服务生命周期管理等通用和重复的工作进行封装,减轻开发者的学习负担,减少重复劳动,提高复用水平,提升开发效率。另一方面,为了满足微服务治理规范等统一的服务管理能力,根据微服务化和服务治理规范,结合微服务基础设施,支持平台化开发的服务框架和工具。

在 Java 应用领域中,Quarkus 的竞争对手包括 Spring Boot、Micronaut、Payara Micro 和Helidon MP等。其中,Spring Boot框架基于Spring体系,Spring体系是在2003年面世的,目标是应对旧时代Java企业级开发的复杂性。Spring以依赖注入和面向切面编程为核心,逐渐演进成一个易用的开发框架。Spring 有着非常多的文档、广泛的用户基础和丰富的开发库,可以让开发者高效地创建和维护应用程序,并且提供了平滑的学习曲线。Micronaut 是一个现代化的微服务开发框架,其目标是使应用程序更快速地启动和拥有更低的内存开销。这一切都发生在编译期间而非运行时,使用了Java Annotation处理器执行依赖注入,创建面向切面的代理,配置应用程序。Payara Micro是一种起源于GlassFish的Jakarta企业级服务器,是MicroProfile的实现之一。Helidon MP 则是一个运行时平台,由 Oracle 公司于 2018 年发起,提供了对MicroProfile规范的实现。

在开发语言层面上,Quarkus 框架代表新一代 Java语言与 Go、C#、JavaScript、Python、PHP等语言在微服务开发领域展开竞争。