vlambda博客
学习文章列表

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

导读:本文介绍一款名为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 命令式


@InjectSayService say;

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



3 反应式


@Inject @Channel("kafka")Publisher<String> reactiveSay;@GET@Produces(MediaType.SERVER_SENT_EVENTS)public Publisher<String> 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


编译:场长


相关阅读:






关于21CTO

21CTO.com是中国互联网第一技术社交与学习平台。为CTO、技术总监,技术专家,架构师、技术经理,高级研发工程师、PM等提供学习成长,教育培训,工作机会、人脉影响力等产品,同时为企业提供人才招聘,企业培训,软件研发等服务。