国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Quarkus技術(shù)系列】打造基于Quarkus的云原生微服務(wù)框架實(shí)踐(1)

這篇具有很好參考價(jià)值的文章主要介紹了【Quarkus技術(shù)系列】打造基于Quarkus的云原生微服務(wù)框架實(shí)踐(1)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前提介紹

本系列文章主要講解如何基于Quarkus技術(shù)搭建和開發(fā)"專為Kubernetes而優(yōu)化的Java微服務(wù)框架"的入門和實(shí)踐,你將會(huì)學(xué)習(xí)到如何搭建Quarkus微服務(wù)腳環(huán)境及腳手架,開發(fā)Quarkus的端點(diǎn)服務(wù),系統(tǒng)和應(yīng)用層級的配置介紹與Quarkus的編程模型分析,創(chuàng)建Quarkus的應(yīng)用Uber-jar文件以及集成到Kubernetes的環(huán)境中。

  1. 學(xué)習(xí)Quarkus的云原生微服務(wù)的零基礎(chǔ)搭建和開發(fā)實(shí)踐
  2. 分析Quarkus的編程模型以及與Kubernetes環(huán)境進(jìn)行集成

面向的人群

Java軟件開發(fā)人員、系統(tǒng)架構(gòu)師、微服務(wù)開發(fā)愛好者、運(yùn)維部署人員等。

目前的狀況

近幾年由于云原生技術(shù)的普及,越來越多的用戶開始使用容器來運(yùn)行微服務(wù)應(yīng)用,隨著微服務(wù)的快速發(fā)展,spring全家桶已然成為了java框架的事實(shí)標(biāo)準(zhǔn),包括單體應(yīng)用使用的spring Framework和springboot,微服務(wù)間服務(wù)治理框架spring cloud,生態(tài)系統(tǒng)完善,各種組件層出不窮。

Java云原生化痛點(diǎn)

  • 輕量化容器技術(shù)的誕生促使JVM服務(wù)變得更加臃腫
    • 微服務(wù)架構(gòu)的引入,使我們的服務(wù)顆粒度變得越來越小,輕量且能快速啟動(dòng)的應(yīng)用能夠更好的適應(yīng)容器化環(huán)境。 以我們目前常規(guī)的Spring Boot應(yīng)用來說,一般Restful服務(wù)的jar包大概是30M左右,如果我們將JDK以及相關(guān)應(yīng)用打包成docker鏡像文件大概是140M左右。
    • 常規(guī)的Go語言的可執(zhí)行程序生成鏡像包一般不會(huì)超過50M。如何讓臃腫的Java應(yīng)用瘦身使他易于容器化,成為Java應(yīng)用云原生化需要解決的問題。
  • 輕量化容器技術(shù)的誕生促使JVM服務(wù)內(nèi)容使用量變得過大
    • JVM對于內(nèi)存的使用量變的越來越大,會(huì)促使FullGC的過多甚至OOM。
  • SpringBoot的微服務(wù)應(yīng)用啟動(dòng)的速度越來越慢(JVM啟動(dòng)速度)
    • 從JVM啟動(dòng)到真的應(yīng)用程序執(zhí)行需要經(jīng)歷VM加載,字節(jié)碼文件加載,以及JVM為了提升效率,借助JIT(just in time)及時(shí)編譯技術(shù)對解釋執(zhí)行的字節(jié)碼進(jìn)行局部優(yōu)化,通過編譯器生成本地執(zhí)行代碼的過程,同時(shí)還需要加上了JVM內(nèi)部垃圾回收所耗費(fèi)的時(shí)間。【Quarkus技術(shù)系列】打造基于Quarkus的云原生微服務(wù)框架實(shí)踐(1),分布式&微服務(wù)技術(shù)體系,云原生,微服務(wù),架構(gòu)

典型的Java應(yīng)用加載時(shí)間一般都是秒級起步,如果遇到比較大的應(yīng)用初始花費(fèi)幾分鐘都是正常的。 以往由于我們很少重新啟動(dòng)Java應(yīng)用,Java應(yīng)用啟動(dòng)時(shí)間長的問題一般很少暴露出來。

  • 但是在云原生應(yīng)用場景下,隨著粒度變的非常細(xì),所以導(dǎo)致部署頻率過于頻繁
    • 我們會(huì)經(jīng)常不斷重啟應(yīng)用來實(shí)現(xiàn)滾動(dòng)升級或者無服務(wù)應(yīng)用場景。 Java應(yīng)用啟動(dòng)時(shí)間長的問題就變成了Java應(yīng)用云原生化亟待解決的問題。

Quarkus的介紹

  • Quarkus定位為GraalVM和OpenJDK HotSpot量身定制的Kubernetes Native Java框架。
  • Quarkus是紅帽開源的項(xiàng)目,借助開源社區(qū)的力量,通過對業(yè)界廣泛使用的框架進(jìn)行了適配,并結(jié)合云原生應(yīng)用的特點(diǎn),提供了一套端到端的Java云原生應(yīng)用解決方案。
  • 雖然開源時(shí)間較短,但是生態(tài)方面也已經(jīng)達(dá)到可用的狀態(tài),自身包含擴(kuò)展框架,已經(jīng)支持像Netty、Undertow、Hibernate、JWT等框架,足以用于開發(fā)企業(yè)級應(yīng)用,用戶也可以基于擴(kuò)展框架自行擴(kuò)展。

【Quarkus技術(shù)系列】打造基于Quarkus的云原生微服務(wù)框架實(shí)踐(1),分布式&微服務(wù)技術(shù)體系,云原生,微服務(wù),架構(gòu)

向原生邁進(jìn)

對需要長時(shí)間運(yùn)行的應(yīng)用來說,由于經(jīng)過充分預(yù)熱,熱點(diǎn)代碼會(huì)被HotSpot的探測機(jī)制準(zhǔn)確定位捕獲,并將其編譯為物理硬件可直接執(zhí)行的機(jī)器碼,在這類應(yīng)用中Java的運(yùn)行效率很大程度上是取決于即時(shí)編譯器所輸出的代碼質(zhì)量。

HotSpot虛擬機(jī)中包含有兩個(gè)即時(shí)編譯器,分別是編譯時(shí)間較短但輸出代碼優(yōu)化程度較低的客戶端編譯器(簡稱為C1)以及編譯耗時(shí)長但輸出代碼優(yōu)化質(zhì)量也更高的服務(wù)端編譯器(簡稱為C2),通常它們會(huì)在分層編譯機(jī)制下與解釋器互相配合來共同構(gòu)成HotSpot虛擬機(jī)的執(zhí)行子系統(tǒng)的。

【Quarkus技術(shù)系列】打造基于Quarkus的云原生微服務(wù)框架實(shí)踐(1),分布式&微服務(wù)技術(shù)體系,云原生,微服務(wù),架構(gòu)

新一代即時(shí)編譯器(Graal VM)

自JDK 10起,HotSpot中又加入了一個(gè)全新的即時(shí)編譯器:Graal編譯器,看名字就可以聯(lián)想到它是來自于前一節(jié)提到的Graal VM,Graal編譯器是作為C2編譯器替代者的角色登場的。

C2編譯器的問題

C2的歷史已經(jīng)非常長了,可以追溯到Cliff Click大神讀博士期間的作品,這個(gè)由C++寫成的編譯器盡管目前依然效果拔群,但已經(jīng)復(fù)雜到連Cliff Click本人都不愿意繼續(xù)維護(hù)的程度。

Graal編譯器本身就是由Java語言寫成,實(shí)現(xiàn)時(shí)又刻意與C2采用了同一種名為"Sea-of-Nodes"的高級中間表示(High IR)形式,使其能夠更容易借鑒C2的優(yōu)點(diǎn)。

Graal編譯器比C2編譯器晚了足足二十年面世,有著極其充沛的后發(fā)優(yōu)勢,在保持能輸出相近質(zhì)量的編譯代碼的同時(shí),開發(fā)效率和擴(kuò)展性上都要顯著優(yōu)于C2編譯器,這決定了C2編譯器中優(yōu)秀的代碼優(yōu)化技術(shù)可以輕易地移植到Graal編譯器上,但是反過來Graal編譯器中行之有效的優(yōu)化在C2編譯器里實(shí)現(xiàn)起來則異常艱難。

Graal編譯器

Graal的編譯效果短短幾年間迅速追平了C2,甚至某些測試項(xiàng)中開始逐漸反超C2編譯器。

Graal能夠做比C2更加復(fù)雜的優(yōu)化,如"部分逃逸分析"(Partial Escape Analysis),也擁有比C2更容易使用"激進(jìn)預(yù)測性優(yōu)化"(Aggressive Speculative Optimization)的策略,支持自定義的預(yù)測性假設(shè)等等。

【Quarkus技術(shù)系列】打造基于Quarkus的云原生微服務(wù)框架實(shí)踐(1),分布式&微服務(wù)技術(shù)體系,云原生,微服務(wù),架構(gòu)

Graal編譯器尚且年幼,還未經(jīng)過足夠多的實(shí)踐驗(yàn)證,所以仍然帶著"實(shí)驗(yàn)狀態(tài)"的標(biāo)簽,需要用開關(guān)參數(shù)去激活,這讓筆者不禁聯(lián)想起JDK 1.3時(shí)代,HotSpot虛擬機(jī)剛剛橫空出世時(shí)的場景,同樣也是需要用開關(guān)激活,也是作為Classic虛擬機(jī)的替代品的一段歷史。

Graal編譯器未來的前途可期,作為Java虛擬機(jī)執(zhí)行代碼的最新引擎,它的持續(xù)改進(jìn),會(huì)同時(shí)為HotSpot與Graal VM注入更快更強(qiáng)的驅(qū)動(dòng)力。

【Quarkus技術(shù)系列】打造基于Quarkus的云原生微服務(wù)框架實(shí)踐(1),分布式&微服務(wù)技術(shù)體系,云原生,微服務(wù),架構(gòu)

GraalVM的總結(jié)分析

GraalVM:JVM為了提升效率,借助JIT及時(shí)編譯技術(shù)對解釋執(zhí)行的字節(jié)碼進(jìn)行局部優(yōu)化,通過編譯器生成本地執(zhí)行代碼提升應(yīng)用執(zhí)行效率。

GraalVM是Oracle實(shí)驗(yàn)室開發(fā)的新一代的面向多種語言的JVM即時(shí)編譯器,在性能以及多語言互操作性上有比較好的表現(xiàn)。與Java HotSpot VM相比,Graal借助內(nèi)聯(lián),逃逸分析以及推出優(yōu)化技術(shù)可以提升2至5倍的性能提升。

GraalVM提供的靜態(tài)編譯功能,只能針對其編譯時(shí)能夠看得的封閉世界進(jìn)行優(yōu)化,對于那些使用了反射、動(dòng)態(tài)加載、以及動(dòng)態(tài)代理的代碼是無能為力的。

  • 為了能讓我們?nèi)粘5腏ava應(yīng)用能夠正常運(yùn)行起來,需要我們對應(yīng)用所使用到的框架和類庫進(jìn)行相關(guān)修改適配。
  • 由于Java代碼所使用的類庫很多,這部分的工作量還是相當(dāng)巨大的,雖然GraalVM已經(jīng)推出超過一年多的時(shí)間,但是還是很少見到大規(guī)模Java應(yīng)用轉(zhuǎn)移到這個(gè)平臺之上。

分享資源

【Quarkus技術(shù)系列】打造基于Quarkus的云原生微服務(wù)框架實(shí)踐(1),分布式&微服務(wù)技術(shù)體系,云原生,微服務(wù),架構(gòu)
獲取以上資源請?jiān)L問開源項(xiàng)目 點(diǎn)擊跳轉(zhuǎn)文章來源地址http://www.zghlxwxcb.cn/news/detail-646270.html

到了這里,關(guān)于【Quarkus技術(shù)系列】打造基于Quarkus的云原生微服務(wù)框架實(shí)踐(1)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 打造個(gè)人的云技術(shù)樂園

    打造個(gè)人的云技術(shù)樂園

    作為一個(gè)技術(shù)人,我愿意把技術(shù)作為一種樂趣,也將積極進(jìn)行實(shí)踐。 以下是長期探索后,較為靠譜的一種個(gè)人持續(xù)學(xué)習(xí)的靠譜路徑。 優(yōu)點(diǎn) 依托開源技術(shù),不存在技術(shù)壁壘,具有學(xué)習(xí)深度的自由性。 這是起點(diǎn),也是最重要的一點(diǎn); 依托云產(chǎn)品,免費(fèi),穩(wěn)定,安全性高(包括公司

    2024年02月05日
    瀏覽(27)
  • 服務(wù)網(wǎng)格實(shí)施周期縮短 50%,麗迅物流基于阿里云 ACK 和 ASM 的云原生應(yīng)用管理實(shí)踐

    服務(wù)網(wǎng)格實(shí)施周期縮短 50%,麗迅物流基于阿里云 ACK 和 ASM 的云原生應(yīng)用管理實(shí)踐

    作者:王夕寧、 劉強(qiáng)、 華相 麗迅物流是百麗旗下專注于時(shí)尚產(chǎn)業(yè)、為企業(yè)提供專業(yè)物流及供應(yīng)鏈解決方案的服務(wù)商。其產(chǎn)品服務(wù)主要包括城市落地配、倉配一體、干線運(yùn)輸及定制化解決方案。通過自研智能化物流管理平臺,全面助力企業(yè)合作集約化發(fā)展。目前,麗迅物流已

    2024年02月10日
    瀏覽(15)
  • 企業(yè)出海打造爆款游戲,需要什么樣的云服務(wù)?

    企業(yè)出海打造爆款游戲,需要什么樣的云服務(wù)?

    伴隨著云計(jì)算、大數(shù)據(jù)、人工智能等新興技術(shù)的飛速發(fā)展,廣大游戲開發(fā)者也迎來了整個(gè)行業(yè)的轉(zhuǎn)型和重塑。 為了解決團(tuán)隊(duì)、成本和基礎(chǔ)設(shè)施等方面的各種問題,給客戶提供更好的游戲體驗(yàn),游戲公司需要更加高效、穩(wěn)定、安全、彈性的服務(wù)和解決方案。 亞馬遜云科技最新

    2024年02月03日
    瀏覽(13)
  • 構(gòu)建新一代的K8s原生Java微服務(wù)+Quarkus實(shí)戰(zhàn)

    構(gòu)建新一代的K8s原生Java微服務(wù)+Quarkus實(shí)戰(zhàn)

    送書第一期 《用戶畫像:平臺構(gòu)建與業(yè)務(wù)實(shí)踐》 送書活動(dòng)之抽獎(jiǎng)工具的打造 《獲取博客評論用戶抽取幸運(yùn)中獎(jiǎng)?wù)摺?送書第二期 《Spring Cloud Alibaba核心技術(shù)與實(shí)戰(zhàn)案例》 送書第三期 《深入淺出Java虛擬機(jī)》 送書第四期 《AI時(shí)代項(xiàng)目經(jīng)理成長之道》 送書第五期 《Kubernetes原生

    2024年02月08日
    瀏覽(26)
  • 某制造企業(yè)基于 KubeSphere 的云原生實(shí)踐

    某制造企業(yè)基于 KubeSphere 的云原生實(shí)踐

    隨著業(yè)務(wù)升級改造與軟件產(chǎn)品專案的增多,常規(guī)的物理機(jī)和虛擬機(jī)方式逐漸暴露出一些問題: 大量服務(wù)部署在虛擬機(jī)上,資源預(yù)估和硬件浪費(fèi)較大; 大量服務(wù)部署在虛擬機(jī)上,部署時(shí)間和難度較大,自動(dòng)化程度較低; 開發(fā)人員和運(yùn)維人員,由于開發(fā)和部署服務(wù)環(huán)境不同,服

    2024年02月15日
    瀏覽(23)
  • 極光筆記|極光消息推送服務(wù)的云原生實(shí)踐

    極光筆記|極光消息推送服務(wù)的云原生實(shí)踐

    極光始終秉承“以開發(fā)者為中心”的戰(zhàn)略導(dǎo)向 ,極光推送(JPush)是國內(nèi)領(lǐng)先的消息推送服務(wù)。極光推送(JPush)本質(zhì)上是一種軟件付費(fèi)應(yīng)用程序,結(jié)合當(dāng)前主流云廠商基礎(chǔ)施設(shè),逐漸演進(jìn)成了云上SaaS服務(wù)。作為SaaS服務(wù),必然要考慮云原生架構(gòu)。因此,在極光推送(JPush)日

    2024年03月25日
    瀏覽(16)
  • 微服務(wù)架構(gòu)的未來:跨邊界的云原生整合

    微服務(wù)架構(gòu)的未來:跨邊界的云原生整合

    ??歡迎來到架構(gòu)設(shè)計(jì)專欄~微服務(wù)架構(gòu)的未來:跨邊界的云原生整合 ☆* o(≧▽≦)o *☆嗨~我是IT·陳寒?? ?博客主頁:IT·陳寒的博客 ??該系列文章專欄:架構(gòu)設(shè)計(jì) ??其他專欄:Java學(xué)習(xí)路線 Java面試技巧 Java實(shí)戰(zhàn)項(xiàng)目 AIGC人工智能 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí) ??文章作者技術(shù)和水平有限,

    2024年02月08日
    瀏覽(17)
  • 某物聯(lián)網(wǎng)數(shù)智化園區(qū)行業(yè)基于 KubeSphere 的云原生實(shí)踐

    某物聯(lián)網(wǎng)數(shù)智化園區(qū)行業(yè)基于 KubeSphere 的云原生實(shí)踐

    作為物聯(lián)網(wǎng) + 數(shù)智化園區(qū)一體化解決方案提供商,我們致力于為大中型園區(qū)、停車場提供軟硬件平臺,幫助園區(qū)運(yùn)營者實(shí)現(xiàn)數(shù)字化、智能化運(yùn)營。 在使用 K8s 之前我們使用傳統(tǒng)的方式部署上線,使用 spug(一款輕量級無 Agent 的自動(dòng)化運(yùn)維平臺) 自動(dòng)化在單節(jié)點(diǎn)完成代碼部署上

    2024年02月09日
    瀏覽(21)
  • K8sGPT,基于 AI 的云原生終極工具

    K8sGPT,基于 AI 的云原生終極工具

    隨著人工智能和機(jī)器學(xué)習(xí)的興起,企業(yè)和組織越來越多地尋找創(chuàng)新方法來利用這些技術(shù)來獲得競爭優(yōu)勢。?該領(lǐng)域最強(qiáng)大的工具之一便是 K8sGPT,即基于 Kubernetes 的 GPT,它將 Kubernetes 編排的優(yōu)勢與 GPT 模型的高級自然語言處理能力結(jié)合在一起。 毫不夸張的說,K8sGPT 是一種 改變

    2024年02月07日
    瀏覽(18)
  • Spark內(nèi)容分享(二十七):阿里云基于 Spark 的云原生數(shù)據(jù)湖分析實(shí)踐

    Spark內(nèi)容分享(二十七):阿里云基于 Spark 的云原生數(shù)據(jù)湖分析實(shí)踐

    目錄 Spark 與云原生的結(jié)合 1. 傳統(tǒng) Spark 集群的痛點(diǎn) 2. Spark 與云原生結(jié)合的優(yōu)勢 Spark on K8s 原理介紹 1. Spark 的集群部署模式 2. Spark on K8s 的部署架構(gòu) 3. Spark on K8s 部署架構(gòu)——對比 4. Spark on K8s 社區(qū)進(jìn)展 5. Spark 3.3 新特性介紹 Spark on K8s 在阿里云 EMR 上的實(shí)踐 1. EMR Spark on ACK 2. 充分

    2024年01月15日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包