Quarkus:面向Java开发人员的云原生开源框架

2023年 7月 26日 40.0k 0

导读:本文介绍一款名为Quarkus的云原生开源框架。

Quarkus是为OpenJDK HotSpot和GraalVM量身定制的Kubernetes原生Java技术栈。

Quarkus于2020年7月发布第一个稳定版。

Quarkus框架是Red Hat Runtimes的一部分,该系列产品是可以开发和维护云原生应用程序的一系列产品、工具和组件。

Quarkus是开源的,占用空间很少,仅需要很少内存就可以快速加载,从而使得Quarkus成为基于同样精简的Red Hat的分布式云架构平台的理想选择。

作为一种全栈技术,Quarkus在服务器和客户端级别均可使用。

该环境基于Java虚拟机(JVM)开发,可以利用Java利用Kubernetes对虚拟化的应用程序组件进行编程。

Quarkus专门针对容器编译和优化本机Java代码,使其成为Serverles,云和Kubernetes环境占主导地位的世界的高效平台。

Quarkus还可以优化未编译的Java技术栈,能够在本地使用OpenJDK的情况下(即在非编译环境中)也可确保性能提高。

 

开发者易于配置

 

Quarkus不是即插即用技术,但不需要很复杂就可以配置并快速应用。该平台提供实时编码功能,开发者可以立即查看代码更改后的影响、实时修复Bug。

在设置Quarkus时,开发人员可以为可以在JVM模式下运行,也可以在本机模式下编译并运行的应用程序,选择自己喜欢的Java框架。

Quarkus基于著名的Java库,团阶是经验丰富的Java开发者,沉淀了二十多年的标准,事实上也说明了Java开发人员对该框架高度认可。

对于Java专业人员来说,使用Quarkus的学习曲线很小。即使Quarkus本身是一个框架:Kubernetes原生Java堆栈也与大多数框架和实用程序能够紧密合作。

 

反应式与命令式编程

 

Quarkus联合创始人Jason Greene曾担任Red Hat高级工程师兼经理,他希望用Quarkus让Java成为Kubernetes和Servless环境中的领先平台。

Greene希望为开发人员提供一个反应式和命令式的编程模型,以便能够解决更广泛的分布式应用程序体系结构。

传统的命令式编程将仍然是可预见的未来的中心基础,而现代的响应式开发则能够处理异步,非顺序的数据事件,是开发可扩展和动态云应用程序的理想补充。

反应式编程的一个很好的例子是NodeJS和AWS在Lambda上流行的无服务器计算的使用。AWS拥有适当的反应模型业务逻辑,但不必使用内存。而是,在需要时将实例带入实时生产环境就足够了。

 

1 Native方式

$mv package -Pnative

或者:

./gradlew buildNative

2 命令式

@Inject
SayService say;


@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello(){
  return say.hello();
}

3 反应式

@Inject @Channel("kafka")
Publisher reactiveSay;
@GET
@Produces(MediaType.SERVER_SENT_EVENTS)
public Publisher stream(){
  return reactiveSay;
}

Quarkus与OpenShift集成

 

Quarkus是基于开源容器应用程序平台Red Hat OpenShift 4.6的一部分,自2020年11月以来向开发者提供。

 

数据调查显示,五分之一的使用云的Java开发人员已经在考虑使用Quarkus。由于Quarkus是Kubernetes原生的,因此从一开始就能够将技术与OpenShift结合使用是具备更多意义的。

 

为了方便开发者开始使用Quarkus,Red Hat已更新了“应用程序迁移工具包”。该工具包已经实践了很多年,可以帮助将各种应用程序迁移到不同的平台(例如,从Oracle的WebLogic切换到Red Hat EAP)。通过将工具包与Quarkus集成,开发人员可以得到系统提供的建议,实现无需完全代码重构即可实现集成。

Red Hat为开发人员使用Quarkus铺平了道路,支持他们将框架集成到自己的环境中-从数据中心到外部设备,物联网和边缘计算,从而遍及整个公有云。

这意味Quarkus的世界没有障碍。

 

相关引用:

https://quarkus.io/

https://www.openshift.com/blog/red-hat-openshift-4.6-is-now-available

https://www.redhat.com/en/products/application-runtimes

 

 

编译:场长

相关文章

KubeSphere 部署向量数据库 Milvus 实战指南
探索 Kubernetes 持久化存储之 Longhorn 初窥门径
征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
那些年在 Terraform 上吃到的糖和踩过的坑
无需 Kubernetes 测试 Kubernetes 网络实现
Kubernetes v1.31 中的移除和主要变更

发布评论