成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用于微服務和云原生開發的六大 Java 框架

譯文
開發 前端
本文將和您討論六種適合Java開發者的微服務框架,并分享一些配套的在線教程、以協助您理解和運用這些框架。

作為Java程序員,您在使用Java進行微服務和云原生開發時,是否考慮過該采用哪些框架、庫和技術,來協助創建下一代的Java應用呢?雖然您可能已經知道了Spring Boot和Spring Cloud是用Java開發微服務應用的領先框架,但實際上我們還有著諸如MicroNaut、DropWizard、以及Quarkus IO等更多的選擇。我將和您討論六種適合Java開發者的微服務框架。

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

什么是微服務?

在討論微服務之前,讓我們試著了解一下應用架構的演變,以及是什么導致了微服務在軟件開發領域的發展。

很久以前,我們只需要維護一個應用程序、一個基于代碼的應用程序、一個被部署到每臺機器上的應用程序。例如,跑在Windows上的Word軟件、以及其他PC游戲等。當我們需要更多的功能時,只能不斷地將新的功能組件添加到源代碼中。此舉不但會使得代碼庫變得臃腫和龐大,而且一旦要添加或更改某項功能時,就需要進行大量的回歸測試。顯然,這不僅拖慢了軟件產品的交付時間,而且增加了開發的工作量。

對此,人們開始將代碼劃分為不同的模塊,以便程序員可以獨立地開發、測試和部署每一個模塊。Web應用就此誕生。Web應用的好處在于,我們不需要將整個應用程序部署到客戶端的主機上,而只需要有一個瀏覽器,客戶端就可以連接到服務器上,以獲取所需的任何功能。至此,我們不再需要在同一臺機器上部署客戶端和服務器端了。

當然,這種演變還在服務器端繼續進行。人們開始將一個大型的單體應用程序(Monolithic application),分解為多個獨立的小型應用程序。這就產生了微應用。各個微應用可以分別專注于授權、身份驗證、服務發現、以及負載均衡等服務。我們也可以將它們稱為微服務。

當我們將多個提供不同服務的微應用,連接到每個應用上,以便作為某個應用程序執行時,此類架構便稱為微服務架構。那么它有什么好處呢?顯然,與單體應用相比,這些微服務非常小巧,可以便捷地被快速且獨立地開發、測試和部署,進而改進了產品的交付和發布周期。

同時,它還構建了一個分布式的架構,您可以在其中將微服務部署在不同的主機(當然也可以是同一主機)上,以便更好地利用服務器端的CPU、內存和存儲等資源。此外,它還有助于提高可擴展性,以滿足快速增加并生成新的服務實例的需求。

我們可以參考一下亞馬遜的Prime Day。當有大量客戶同時在線購物,并導致亞馬遜網站的流量激增時,您需要通過創建新的實例,來處置這些并發的請求。當然,您并不需要擴展諸如產品索引等,與主要結算業務無關的其他服務。

下圖展示了微服務和單體架構之間的主要區別:

圖片來源-https://www.educative.io/courses/introduction-microservice-principles-concepts?affiliate_id=5073518643380224

了解了什么是微服務、以及它的優勢之后,讓我們來討論六種可用于微服務和云原生開發的Java框架。

1.??Spring Boot + Spring Cloud??

毋庸置疑,Spring Boot與Spring Cloud的結合使用,是通過Java來開發微服務的最佳選擇之一。Spring Cloud提供了許多開箱即用的特性,例如:服務發現和負載均衡等,都是微服務架構中必需的。同時,它還能夠遵循Netflix的微服務架構。而作為成熟且經過反復測試的框架,當您遇到困難時,可以通過其對應的大型技術社區,來尋求支持與幫助。

除了其自帶的、最新且全面的文檔,您還可以通過各種在線資源,例如Udemy上的Spring Boot微服務相關課程等,來深入學習Spring Boot和Spring Cloud,進而實現產品的快速交付。在此,我強烈推薦您使用在In28Minutes(一個GitHub站點)上由Ranga Karnam提供的??《用Spring Boot和Spring Cloud玩轉微服務》??課程。這個19.5小時的課程是學習如何使用Spring Boot去構建微服務的絕佳資源,非常適合初學者和中級Java開發人員。

還有我們51CTO學堂的這門??《Spring Boot教程:開發小而完整Web項目》??課程,非常值得推薦!

2.??Quarkus??

作為一個全棧式的Kubernetes原生Java框架,Quarkus專為Java虛擬機(JVM)和原生編譯而設計。通過提供針對容器優化的Java,它已經成為了無服務器、云服務和Kubernetes環境的高效服務平臺。

由于得到了Redhat的支持,因此Quarkus在創建高性能、可擴展的Java應用程序方面,正在迅速地取得進展。基于Quarkus的應用通常能夠快速啟動,這是一個普遍的關鍵特性。

許多Java程序員正在嘗試著將Quarkus運用到快速和反應式微服務中。如果您想著手學習Quarkus,我強烈建議您查看由Udemy上的Quarkus先驅之一--Antonio Goncalves提供的??《Quarkus入門》??課程。對于任何愿意學習Quarkus的Java開發人員來說,這個3.5小時的課程是一個絕好的起點。

3.??MicroNaut??

這是另一個基于JVM的現代化全棧框架,可用于構建模塊化、易于測試的微服務和無服務器應用。MicroNaut是由OCI創建的。值得一提的是,這家公司創建的另一款產品是Grails,是一個備受Groovy開發人員喜愛的流行Web開發框架。目前,Micronaut得到了Java社區的廣泛認可。而隨著Oracle和JetBrains等大公司的持續支持,MicroNaut可能在不久的將來,成為Spring Boot和Spring Cloud的有力??競爭者??。

在技術方面,MicroaNaut和Spring Framework有著本質上的區別。Spring完全依賴運行時(runtime)的反射和各種代理,而Micronaut使用編譯時(compile-time)的數據來實現依賴性注入。

MicroNaut的目前版本為2.5。它支持Gradle 6.5和增量編譯,并為微服務提供更好的響應式代碼庫。如果您想學習MicroNaut并需要相關資源的話,我建議您在Udemy上查看由Daniel Prinz提供的??《學習使用Micronaut構建Java類型的云原生微服務》??課程。這個6.5小時的課程會引導您從頭開始學習MicroNaut的各種豐富資源。

4.??DropWizard??

作為另一個可用于創建RESTful Web服務和微服務的強大框架,DropWizard使用諸如Jetty、Jackson和Jersey等流行Java庫,來更快捷、更輕松地創建高性能的Java應用。DropWizard的優勢在于它為配置、監控各項指標和操作任務,提供了內置的支持。

不過,目前可供學習DropWizard的書籍和在線課程并不多。您往往需要查看其配套文檔。在此,我給您推薦Udemy上的??《Dropwizard入門》??課程。該教程雖然不是最好的,但足以讓您熟悉和上手DropWizard。

5.??MicroProfile??

Eclipse的MicroProfile是一項針對微服務架構,優化JavaEE的舉措。它旨在提供一種獨立于任何供應商的規范,并通過利用JavaEE來創建微服務架構。由于該規范是由專家創建的,并得到了IBM、RedHat和Oracle等組織的支持,因此非常適合于微服務的開發和部署。

6.??EclipseVert.x??

同樣由Eclipse提供的Vert.x,是另一個用于開發反應式微服務的輕量級框架。它不但支持非阻塞(non-blocking)和異步式開發模型,而且允許用戶在Java虛擬機上運行分布式應用程序。

與提供單一解決方案的Spring Boot不同,Vert.x并不提供一體化的解決方案,而是提供工具包和構建塊,來方便用戶自行構建組件。也正是因為它是一個工具包,因此它提供了既可以被獨立使用,又能夠被嵌入到Spring本身的靈活性。

事實上,以QuarkusIO為代表的許多微服務框架,都會使用Vert.x來滿足TCP和HTTP等低端不安全的調用需求。如果您想學習Vertx并查找其相關資源的話,那么我還是建議您在Udemy上的查看由Daniel Prinz提供的??《學習使用Vert.x來構建反應式Java微服務》??課程。這個9.5小時的課程資源會從Vert.x的基本概念開始,引導您進行反應式微服務的開發與實踐。

小結

綜上所述,雖然大多數組織都會選擇使用Spring Boot和Spring Cloud,來創建他們的RESTful Web服務和微服務,但您也可以根據自己的實際項目需求,選用并學習諸如QuarkusIO和Micronaut等更新的替代方案。如您所見,上文也針對每一種框架,為您提供了學習它們的實用在線資源。最后,我既歡迎您通過發表評論的方式,添加更多您認為更為實用的Java微服務框架,也請與朋友和同事分享本文,并留下寶貴意見。

原文標題:Top 6 Java Frameworks for Microservices and Cloud-Native Development,作者:Javin Paul

責任編輯:華軒 來源: 51CTO
相關推薦

2020-03-26 07:56:34

云原生容器

2015-06-23 09:13:51

2013-07-26 10:54:40

BaaS后端即服務云存儲

2022-05-31 21:08:41

云原生容器

2022-05-01 12:19:33

云原生公有云云計算

2025-03-27 00:25:55

微服務架構技術

2020-04-28 08:34:08

KubernetesDocker開源工具

2015-08-20 09:15:04

移動開發JS框架javascript

2010-08-16 10:14:23

云計算誤區

2012-02-07 13:29:25

云計算HP

2023-08-22 13:38:13

云成本優化公有云

2018-10-24 10:47:30

云計算IT網絡

2022-10-11 23:53:08

組件架構開發

2022-02-25 20:44:28

框架深度學習架構

2023-05-05 18:32:04

React開發工具

2021-04-01 14:54:12

云計算邊緣計算物聯網

2017-07-05 16:30:10

IT云趨勢云計算

2019-08-28 06:37:58

云服務公有云云計算

2010-10-19 14:57:25

谷歌云計算

2022-07-05 08:00:00

云原生Java開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜网 | 日本在线视频一区二区 | 黄色欧美在线 | 精品欧美一区二区三区精品久久 | 欧美性a视频 | 啪啪精品 | 奇米久久久 | 久久久久久久久久爱 | 中文字幕在线视频免费视频 | 亚洲一区二区三区在线播放 | 日韩在线中文字幕 | 日韩在线观看视频一区 | 国产精品视频偷伦精品视频 | 日韩伦理一区二区三区 | 欧美激情精品久久久久 | 午夜久草| 超碰在线免费av | 国产激情在线观看 | 成人在线一区二区三区 | 久久久精品一区二区三区 | 在线天堂免费中文字幕视频 | 婷婷福利视频导航 | 久草网址| 91偷拍精品一区二区三区 | 天天操天天干天天曰 | 91高清免费观看 | 日韩av一区二区在线观看 | www..99re| 一级黄a| 亚洲国产91 | 国产一区二区精品在线观看 | 九九综合九九 | 国产激情精品 | 欧美性生活一区二区三区 | 成人久草 | 亚洲欧洲国产视频 | 99久久99久久精品国产片果冰 | 国产成人小视频 | 亚洲精品久久久一区二区三区 | 毛片网站在线观看视频 | 亚洲视频一区在线 |