首頁 > 軟體

Quarkus雲原生開篇java框架簡介

2022-02-23 13:02:04

前言

Quarkus 是小紅帽開源的專門針對雲容器環境優化的雲原生java框架,目前已迭代到1.6.0版本,已完成了大部分的框架庫的整合擴充套件,為了讓你低成本遷移到Quarkus來,它相容主流的框架開發模式api,如spring web。

Quarkus已具備企業級應用開發能力。而且未來容器雲肯定是主流了,可以預見,未來的軟體都是執行在k8s這樣的容器叢集裡。而容器環境需要應用具備啟動速度快,資源佔用小,響應時間短等特性,Quarkus就是順應這種趨勢而生的。

github專案地址:https://github.com/quarkusio/quarkus

官網地址:https://quarkus.io/

下面是小紅帽官方對Quarkus的介紹:

什麼是quarkus?

Quarkus 是一個為 Java 虛擬機器器(JVM)和原生編譯而設計的全堆疊 Kubernetes 原生 Java 框架,用於專門針對容器優化 Java,並使其成為無伺服器、雲和 Kubernetes 環境的高效平臺。

Quarkus 可與常用 Java 標準、框架和庫協同工作,例如 Eclipse MicroProfile、Apache Kafka、RESTEasy(JAX-RS)、Hibernate ORM(JPA)、Spring、Infinispan、Camel 等。

 Quarkus 的依賴注入解決方案基於 CDI(上下文和依賴注入),且包含一個擴充套件框架來擴充套件功能並將其設定、引導並整合到您的應用中。新增擴充套件就像新增依賴項一樣容易;或者,您可以使用 Quarkus 工具。此外,它還向 GraalVM(一種通用虛擬機器器,用於執行以多種語言(包括 Java 和 JavaScript)編寫的應用)提供正確資訊,以便對應用進行原生編譯。

為什麼用quarkus?

專為開發人員而設計

1、Quarkus 的設計從一開始就立足於簡單易用,其功能幾乎不需要設定即可正常使用。

2、開發人員可以為其應用選擇所需的 Java 框架,而這些應用可以在 JVM 模式下執行,也可以在原生模式下進行編譯和執行。 

3、為了方便開發人員的工作,Quarkus 還包含以下功能:

  • 實時編碼,旨在讓開發人員能夠即時檢查程式碼更改的影響並快速進行故障排除
  • 帶有嵌入式託管事件匯流排的統一命令式和響應式程式設計
  • 統一設定
  • 簡單的原生可執行檔案生成

容器優先

無論是將應用託管在公共雲上還是內部託管的 Kubernetes 叢集中,快速啟動和低記憶體消耗等特性對於降低總體主機成本來說都至關重要。

Quarkus 的開發遵從了容器優先的原則,這意味著它已通過以下方式針對降低記憶體使用和加快啟動時間進行了優化:

  • 鼎力支援 Graal/SubstrateVM
  • 構建時後設資料處理
  • 減少反射的使用
  • 本機映像預啟動

因此,Quarkus 構建的應用其記憶體消耗只有傳統 Java 的 1/10,而且啟動時間更快(快了 300 倍),這些都大大降低了雲資源的成本。 

命令式和響應式程式碼

1、在設計上,Quarkus 能夠在開發應用時無縫地結合熟悉的命令式程式碼和非阻塞、響應式樣式。 這對於習慣使用命令式模型而不想切換風格的 Java 開發人員以及使用雲原生/響應式方法的開發人員都非常有用。 Quarkus 開發模型可以適應您正在開發的任何應用。

2、對於在新的無伺服器架構、微服務、容器、Kubernetes、功能即服務(FaaS)和雲環境中執行 Java 而言,Quarkus 堪稱是一個有效的解決方案,因為在建立它時就充分考慮了所有這些因素。 

結語

紅帽官方介紹的這些特性指標,除了Graal的native image沒體驗到外(windows環境支援不友好,折騰了很久都沒成功),基本上都體驗了一番,相比於spring boot,記憶體確實佔用的更少、啟動速度也更快了,但是沒有宣傳的快了300倍這麼誇張。但是有一個特性是博主體驗後在也忘不掉的,Quarkus的實時編碼功能,無論你怎麼改動你的程式,在下次請求到來時時,總能自動編譯載入到最新的程式碼,而且速度非常快,感受不到重新編譯的過程。就像開發php一樣的體驗。這種感覺很爽,大大的提升了開發效率。總而言之,java開發生態中,在spring boot大行其道下,Quarkus這些優秀特性還是值得一試的。

以上就是Quarkus雲原生開篇java框架簡介的詳細內容,更多關於Quarkus雲原生java框架的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com