使用互联网了解的两个月里_我两个月来对Quarkus的了解
使用互聯網了解的兩個月里
又一年,另一個來臨,我很榮幸再次開啟圍繞Java,語言,生態系統和朋友的24篇精彩博客文章的統治,這些博客文章將我們所有人帶入了今年最安靜的假期。 這已經是第五年了(我只錯過了2016年),我現在感覺真的很老。🙂但是相反的是,這些年來發生了很多事情,Java仍在努力并使我們所有人的生產年復一年。
長期從事該行業還使我向所有讀者保證,一個話題是永恒的:終身學習。 當我開始開發眾多的第一個企業應用程序時,有一個復雜的平臺(J2EE)得到了最初的一些想法的支持,如何使它變得可用(Spring),并且我們都在將近二十年的生產力和簡化工作中徘徊。開發人員和運營。 這導致我們將輕量級的Microprofile,容器和Kubernetes作為基礎架構流程的基礎。
膨脹的規范和運行時的時代和痛苦似乎已經過去了。 但是變革帶來了挑戰。 意識到沒有什么比經過驗證和建立的API更好的了,我們已經看到許多解決方案推動了幾乎合適的概念。 但并不完全。 JonasBonér創造了術語“微型”,并用它精美地描述了分布式微型服務在大多數項目中的使用方式。 他們成長了,基本上變成了與同伴對接的更小的整體。 不管是否有運氣,在擊敗成千上萬個青少年服務的復雜性的同時,該概念又重新引入了啟動時間挑戰和擴展問題。
盡管有人一直說真正的分布式應用程序只需要其他編程模型,但作為一個行業,我們一直在努力保持API知識的活力,并創建運行時來幫助我們彌合必要與可能之間的鴻溝。 最具創新性的方法稱為Quarkus 。 (是的,我仍然為他們拼錯我的名字而感到生氣;)。自從我重新加入Red Hat以來,過去兩個月來我一直在不斷地研究這種新穎而閃亮的東西。 這就是我學到的。 一篇博客文章中都有很多指針和鏈接,因此您可以同樣很好地了解Quarkus。
所有世界中最好的集合在一處。
該網站將Quarkus描述為:
專為OpenJDK HotSpot和GraalVM量身定制的Kubernetes本機Java堆棧,采用最佳Java庫和標準精制而成。
實際上,這已經是對其功能的很好描述。 好的,這里有兩個時髦的詞,但讓我們從頂部開始。
從一開始,Quarkus就圍繞容器優先理念進行設計。 這實際上意味著Quarkus已針對低內存使用量和快速啟動時間進行了優化。 從一開始,對Graal / SubstrateVM的支持就一直是Quarkus設計的重要組成部分。 當將應用程序編譯為本地映像時,它的啟動速度更快,并且可以以比標準JVM小得多的堆運行。 在構建時會進行盡可能多的處理,因此您的應用程序將僅包含運行時實際需要的類。 在傳統模型中,執行初始應用程序部署所需的所有類都在應用程序的生命周期內徘徊,即使它們僅使用一次。 使用Quarkus,它們甚至都不會加載到生產JVM中。 由于所有元數據處理已完成,因此這將減少內存使用量,并縮短啟動時間。 所有這些以及更多使Quarkus成為容器化Java應用程序的理想選擇。 您可以在Quarkus指南中快速了解如何使用Maven來構建,運行和打包應用程序 。
多年來,客戶端-服務器體系結構已成為構建應用程序的實際標準。 但是發生了重大變化。 一個模型統治著他們所有年齡的結束。 已經出現了一系列新的應用程序和體系結構樣式,它們影響著代碼的編寫方式以及應用程序的部署和執行方式。 HTTP微服務,響應式應用程序,消息驅動的微服務和無服務器現在已成為現代系統中的核心角色。
Quarkus在設計時就考慮到了這個新世界,并為這些不同的范例提供了一流的支持。 Quarkus開發模型可以變形以適應您正在開發的應用程序類型。 如果要公開一個簡單的RESTful端點,則可以依賴于眾所周知的標準,例如JAX-RS,JPA和MicroProfile Rest Client。 如果您需要幾毫秒的響應時間,100%的正常運行時間,更低的延遲,推送數據而不是拉取,更高的吞吐量和彈性,那么Quarkus也為您提供了Reactive編程的先行一步。 您可以找到更多示例, 了解有關其背后的編程范例的信息 。
最后但并非最不重要的一點是標準。 沒有人希望您花時間學習新技術。 相反,Quarkus編程模型建立在成熟的標準之上。 可以是Eclipse MicroProfile等官方標準,也可以是Eclipse Vert.x等特定領域的領先框架。
依賴項注入解決方案基于CDI。 您可以使用JAX-RS批注定義REST端點。 您可以使用JPA批注來映射您的持久實體,并使用JTA批注來聲明事務邊界。 您可以使用Eclipse MicroProfile來配置和監視您的應用程序。 您可以使用Vert.x,Apache Camel及其更多功能。 您甚至可以編寫自己的擴展名 。
為了發展的喜悅
Quarkus不僅對編寫Web應用程序或微服務非常有用。 它關注的不僅僅是功能集。 通過專注于簡單性和預配置的默認值,它使您能夠以最直觀的方式完成日常工作。 開發簡單的事物變得容易,而開發更復雜的事物則變得容易。 Quarkus Tools for Visual Studio Code支持所有這些,它提供了Gradle支持,輸入驗證,屬性支持等。 但是快樂仍在繼續。 作為Spring Boot開發人員,您在構建Quarkus應用程序時還可以對Spring Data,Web和Dependency Injection使用眾所周知的Spring批注。 使用這些API的現有知識和熟悉程度,Spring開發人員可以快速提高Quarkus的生產力。 這個15分鐘的小教程可以讓您看到現場直播和實際運行。 需要明確的是,Quarkus中的Spring API兼容性并不是要成為重新托管現有Spring應用程序的完整Spring平臺。
目的是提供足夠的Spring API兼容性,使使用Quarkus開發新應用程序成為自然的入門經驗。 與預優化的擴展結合使用時,Quarkus為微服務開發提供了驚人的功能。 綜上所述 ,開發人員已成功將Spring應用程序遷移到Quarkus 。 如果您喜歡觀看視頻,那么我只能推薦Devoxx Belgium的錄制,Georgios Andrianakis在Quarkus上談論Kubernetes Native Spring應用程序 。
還有更多的樂趣。 Kubernetes不僅是Docker容器的運行時平臺。 可以使用特定于應用程序的自定義資源定義(CRD)擴展其API,并且您可以實現自己的控制器,以使應用程序動態地適應集群中的更改。 直到最近,大多數操作員都是用Go語言編寫的,重復使用了內置Kubernetes控制器中的代碼。 現在,有了Quarkus和fabric8 Kubernetes客戶端,我們為在Java中實現運算符奠定了良好的基礎,從而使我們能夠將現有代碼庫與Kubernetes API擴展的功能集成在一起。 觀看FabianSt?bler在比利時Devoxx上談論它 。
一個講習班–我想要代碼
有一個很棒的動手實驗室 ,它為與會者提供了與Quarkus的入門級動手實踐,從第一行代碼到提供服務,再到使用它們,最后到在一個統一的系統中組裝所有內容。 它由Emmanuel Bernard,Clement Escoffier和Antonio Goncalves開發。 它以簡單的逐步指導結構引導您完成所有必要的操作。 該研討會將為您提供有關Quarkus的實用介紹。 您將安裝所有必需的工具,然后將經典的HTTP微服務和基于事件的微服務混合在一起,以開發整個微服務體系結構。 您將通過擴展Quarkus的功能來完成,并了解有關創建本機可執行文件的更多信息。
quarkus.io上的入門指南也是了解Quarkus知識的好地方。
最后但并非最不重要的一點–它是開源的
我們可能很少再考慮這個問題了,但是自然地,作為Red Hat贊助的項目,Quarkus獲得Apache 2.0許可,并在GitHub上有一個主頁 。 隨意加注標,分叉,貢獻,提交問題以及發送拉式請求,以幫助我們做得更好。 您也可以在Twitter上關注@QuarkusIo , 在論壇上發貼或與社區聊天 。
希望您喜歡12月的這篇第一篇文章,它可以縮短直到您的假期的等待時間。 祝愿您和您的親人在一段寧靜祥和的日子里來臨,并非常期待與您成為更廣泛的Java社區的一員,參與即將到來的2020年活動。
翻譯自: https://www.javacodegeeks.com/2019/12/what-i-learned-about-quarkus-in-two-months.html
使用互聯網了解的兩個月里
總結
以上是生活随笔為你收集整理的使用互联网了解的两个月里_我两个月来对Quarkus的了解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java \t怎么从头开始_通过这些简单
- 下一篇: 使用阿里巴巴json映射_使用JSON模