新聞中心
由于這些框架大多數(shù)比較新,而且除了配套的文檔和教程外,沒有太多有關如何使用它們,進行產(chǎn)品級別微服務開發(fā)的資源,因此我也會分享一些諸如在線課程、教程、以及書籍等資源,來協(xié)助您理解和運用這些框架。

公司主營業(yè)務:成都網(wǎng)站建設、網(wǎng)站設計、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出漳縣免費做網(wǎng)站回饋大家。
什么是微服務?
在討論微服務之前,讓我們試著了解一下應用架構的演變,以及是什么導致了微服務在軟件開發(fā)領域的發(fā)展。
很久以前,我們只需要維護一個應用程序、一個基于代碼的應用程序、一個被部署到每臺機器上的應用程序。例如,跑在Windows上的Word軟件、以及其他PC游戲等。當我們需要更多的功能時,只能不斷地將新的功能組件添加到源代碼中。此舉不但會使得代碼庫變得臃腫和龐大,而且一旦要添加或更改某項功能時,就需要進行大量的回歸測試。顯然,這不僅拖慢了軟件產(chǎn)品的交付時間,而且增加了開發(fā)的工作量。
對此,人們開始將代碼劃分為不同的模塊,以便程序員可以獨立地開發(fā)、測試和部署每一個模塊。Web應用就此誕生。Web應用的好處在于,我們不需要將整個應用程序部署到客戶端的主機上,而只需要有一個瀏覽器,客戶端就可以連接到服務器上,以獲取所需的任何功能。至此,我們不再需要在同一臺機器上部署客戶端和服務器端了。
當然,這種演變還在服務器端繼續(xù)進行。人們開始將一個大型的單體應用程序(Monolithic application),分解為多個獨立的小型應用程序。這就產(chǎn)生了微應用。各個微應用可以分別專注于授權、身份驗證、服務發(fā)現(xiàn)、以及負載均衡等服務。我們也可以將它們稱為微服務。
當我們將多個提供不同服務的微應用,連接到每個應用上,以便作為某個應用程序執(zhí)行時,此類架構便稱為微服務架構。那么它有什么好處呢?顯然,與單體應用相比,這些微服務非常小巧,可以便捷地被快速且獨立地開發(fā)、測試和部署,進而改進了產(chǎn)品的交付和發(fā)布周期。
同時,它還構建了一個分布式的架構,您可以在其中將微服務部署在不同的主機(當然也可以是同一主機)上,以便更好地利用服務器端的CPU、內(nèi)存和存儲等資源。此外,它還有助于提高可擴展性,以滿足快速增加并生成新的服務實例的需求。
我們可以參考一下亞馬遜的Prime Day。當有大量客戶同時在線購物,并導致亞馬遜網(wǎng)站的流量激增時,您需要通過創(chuàng)建新的實例,來處置這些并發(fā)的請求。當然,您并不需要擴展諸如產(chǎn)品索引等,與主要結算業(yè)務無關的其他服務。
下圖展示了微服務和單體架構之間的主要區(qū)別:
圖片來源-https://www.educative.io/courses/introduction-microservice-principles-concepts?affiliate_id=5073518643380224
了解了什么是微服務、以及它的優(yōu)勢之后,讓我們來討論六種可用于微服務和云原生開發(fā)的Java框架。
1.??Spring Boot + Spring Cloud??
毋庸置疑,Spring Boot與Spring Cloud的結合使用,是通過Java來開發(fā)微服務的最佳選擇之一。Spring Cloud提供了許多開箱即用的特性,例如:服務發(fā)現(xiàn)和負載均衡等,都是微服務架構中必需的。同時,它還能夠遵循Netflix的微服務架構。而作為成熟且經(jīng)過反復測試的框架,當您遇到困難時,可以通過其對應的大型技術社區(qū),來尋求支持與幫助。
除了其自帶的、最新且全面的文檔,您還可以通過各種在線資源,例如Udemy上的Spring Boot微服務相關課程等,來深入學習Spring Boot和Spring Cloud,進而實現(xiàn)產(chǎn)品的快速交付。在此,我強烈推薦您使用在In28Minutes(一個GitHub站點)上由Ranga Karnam提供的??《用Spring Boot和Spring Cloud玩轉微服務》??課程。這個19.5小時的課程是學習如何使用Spring Boot去構建微服務的絕佳資源,非常適合初學者和中級Java開發(fā)人員。
還有我們學堂的這門??《Spring Boot教程:開發(fā)小而完整Web項目》??課程,非常值得推薦!
2.??Quarkus??
作為一個全棧式的Kubernetes原生Java框架,Quarkus專為Java虛擬機(JVM)和原生編譯而設計。通過提供針對容器優(yōu)化的Java,它已經(jīng)成為了無服務器、云服務和Kubernetes環(huán)境的高效服務平臺。
由于得到了Redhat的支持,因此Quarkus在創(chuàng)建高性能、可擴展的Java應用程序方面,正在迅速地取得進展?;赒uarkus的應用通常能夠快速啟動,這是一個普遍的關鍵特性。
許多Java程序員正在嘗試著將Quarkus運用到快速和反應式微服務中。如果您想著手學習Quarkus,我強烈建議您查看由Udemy上的Quarkus先驅之一--Antonio Goncalves提供的??《Quarkus入門》??課程。對于任何愿意學習Quarkus的Java開發(fā)人員來說,這個3.5小時的課程是一個絕好的起點。
3.??MicroNaut??
這是另一個基于JVM的現(xiàn)代化全??蚣?,可用于構建模塊化、易于測試的微服務和無服務器應用。MicroNaut是由OCI創(chuàng)建的。值得一提的是,這家公司創(chuàng)建的另一款產(chǎn)品是Grails,是一個備受Groovy開發(fā)人員喜愛的流行Web開發(fā)框架。目前,Micronaut得到了Java社區(qū)的廣泛認可。而隨著Oracle和JetBrains等大公司的持續(xù)支持,MicroNaut可能在不久的將來,成為Spring Boot和Spring Cloud的有力??競爭者??。
在技術方面,MicroaNaut和Spring Framework有著本質上的區(qū)別。Spring完全依賴運行時(runtime)的反射和各種代理,而Micronaut使用編譯時(compile-time)的數(shù)據(jù)來實現(xiàn)依賴性注入。
MicroNaut的目前版本為2.5。它支持Gradle 6.5和增量編譯,并為微服務提供更好的響應式代碼庫。如果您想學習MicroNaut并需要相關資源的話,我建議您在Udemy上查看由Daniel Prinz提供的??《學習使用Micronaut構建Java類型的云原生微服務》??課程。這個6.5小時的課程會引導您從頭開始學習MicroNaut的各種豐富資源。
4.??DropWizard??
作為另一個可用于創(chuàng)建RESTful Web服務和微服務的強大框架,DropWizard使用諸如Jetty、Jackson和Jersey等流行Java庫,來更快捷、更輕松地創(chuàng)建高性能的Java應用。DropWizard的優(yōu)勢在于它為配置、監(jiān)控各項指標和操作任務,提供了內(nèi)置的支持。
不過,目前可供學習DropWizard的書籍和在線課程并不多。您往往需要查看其配套文檔。在此,我給您推薦Udemy上的??《Dropwizard入門》??課程。該教程雖然不是最好的,但足以讓您熟悉和上手DropWizard。
5.??MicroProfile??
Eclipse的MicroProfile是一項針對微服務架構,優(yōu)化JavaEE的舉措。它旨在提供一種獨立于任何供應商的規(guī)范,并通過利用JavaEE來創(chuàng)建微服務架構。由于該規(guī)范是由專家創(chuàng)建的,并得到了IBM、RedHat和Oracle等組織的支持,因此非常適合于微服務的開發(fā)和部署。
6.??EclipseVert.x??
同樣由Eclipse提供的Vert.x,是另一個用于開發(fā)反應式微服務的輕量級框架。它不但支持非阻塞(non-blocking)和異步式開發(fā)模型,而且允許用戶在Java虛擬機上運行分布式應用程序。
與提供單一解決方案的Spring Boot不同,Vert.x并不提供一體化的解決方案,而是提供工具包和構建塊,來方便用戶自行構建組件。也正是因為它是一個工具包,因此它提供了既可以被獨立使用,又能夠被嵌入到Spring本身的靈活性。
事實上,以QuarkusIO為代表的許多微服務框架,都會使用Vert.x來滿足TCP和HTTP等低端不安全的調用需求。如果您想學習Vertx并查找其相關資源的話,那么我還是建議您在Udemy上的查看由Daniel Prinz提供的??《學習使用Vert.x來構建反應式Java微服務》??課程。這個9.5小時的課程資源會從Vert.x的基本概念開始,引導您進行反應式微服務的開發(fā)與實踐。
小結
綜上所述,雖然大多數(shù)組織都會選擇使用Spring Boot和Spring Cloud,來創(chuàng)建他們的RESTful Web服務和微服務,但您也可以根據(jù)自己的實際項目需求,選用并學習諸如QuarkusIO和Micronaut等更新的替代方案。如您所見,上文也針對每一種框架,為您提供了學習它們的實用在線資源。最后,我既歡迎您通過發(fā)表評論的方式,添加更多您認為更為實用的Java微服務框架,也請與朋友和同事分享本文,并留下寶貴意見。
原文標題:Top 6 Java Frameworks for Microservices and Cloud-Native Development,作者:Javin Paul
網(wǎng)頁名稱:用于微服務和云原生開發(fā)的六大 Java 框架
文章轉載:http://m.5511xx.com/article/coijojp.html


咨詢
建站咨詢
