我們[1]評選出2023年度的十大微服務(wù)框架土榴。這些前沿技術(shù)可以賦能你的工程并具有無縫的擴展性锦积。
微服務(wù)(microservices)是面向服務(wù)架構(gòu)(service-oriented architecture , SOA)的其中一種。用于開發(fā)多功能和復(fù)雜的應(yīng)用程序瞬捕。軟件可由多個更小的可部署服務(wù)單元組成鞍历。
是否在困惑該選用何種框架來構(gòu)建微服務(wù)應(yīng)用程序?可以先去了解一下最新框架都提供什么能力肪虎,然后決定使用其中的一種劣砍,再聘請專門的開發(fā)人員來構(gòu)建高性能、可擴展的應(yīng)用程序扇救。
微服務(wù)是將單個專門用途應(yīng)用程序分解為更小部分的一種方法刑枝。一個成功的項目始于正確的框架選擇香嗓,這是項目成功的關(guān)鍵。了解2023年最受歡迎的微服務(wù)框架装畅,為您的需求選擇合適的框架靠娱。
原文標(biāo)題: Top 10 Microservices Frameworks
作者:by Albert Smith
日期:Aug. 16, 23
提示:翻譯中盡量對原文保持原文含義,并對一些詞匯做了前后文的統(tǒng)一掠兄∠裨疲縮寫詞做了引用。 我要吐槽蚂夕,原文多處描述很隨意苫费,一句話反復(fù)說,不嚴(yán)謹(jǐn)双抽。
如果覺得費解,可以直接看末尾譯注筆者整理好的表格闲礼。
What Are Microservices?
使用微服務(wù)架構(gòu)牍汹,開發(fā)人員將工作分解到各個模塊或服務(wù),組合后形成大型應(yīng)用程序柬泽。每個模塊執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定業(yè)務(wù)目標(biāo)慎菲,模塊之間通過簡單、明確定義的接口(API锨并,應(yīng)用程序可編程接口)互通露该。
開發(fā)高質(zhì)量可擴展應(yīng)用程序的十大引人注目的微服務(wù)框架
開發(fā)一個穩(wěn)健強大的應(yīng)用程序需要軟件開發(fā)商找到一個能方便使用且的框架。
而且第煮,這些框架還會直接影響整體成本解幼、開發(fā)用時和維護(hù)成本。以下是主要微服務(wù)框架的列表包警,包括框架的簡要說明和典型特性撵摆,并幫助您選擇適合您業(yè)務(wù)的框架。
Spring Boot
可能是最容易用來建微服務(wù)的Java框架害晦。開源特铝、功能豐富,幾乎可以在任何平臺安裝運行壹瘟。有堅實的支持鲫剿,還有一個龐大的使用者社群,響應(yīng)時效一流稻轨。具備快速應(yīng)用開發(fā)的各種特點:安全灵莲、自動配置、自動依賴關(guān)系解析澄者,以及其他笆呆。
Features
- Spring Boot可以同時監(jiān)控多個組件请琳。
- 使用負(fù)載均衡將流量分塊成很小,達(dá)到最大的吞吐量赠幕。
- 內(nèi)建分布式消息傳遞系統(tǒng)俄精,支持發(fā)布/訂閱(發(fā)布-訂閱)模式。
Oracle Helidon
由Oracle牽頭管理的榕堰,名為Helidon的Java微服務(wù)框架最近已經(jīng)發(fā)布竖慧,有兩種版本:MP(MicroProfile Edition)版 和SE(Stream Edition) 版 。盡管項目比較新逆屡,文檔不夠豐富圾旨,但它們已經(jīng)被證明是許多項目的不錯選擇。
Helidon MP版遵守MicroProfile 規(guī)范魏蔗,因而也是Java EE開發(fā)人員的理想選擇砍的。Helidon SE版則提供了一些新鮮功能,像是GraalVM原生鏡像以及函數(shù)式和異步編程莺治。
Features
- 快速啟動廓鞠,最快的啟動時間可以達(dá)到0.09秒和2.03秒之間。
- 包含一個完整的云環(huán)境谣旁,其中包含所有必要和流行技術(shù)床佳。
- 提供兩種編程風(fēng)格的版本。
Golang
由Google支持的Go編程語言在微服務(wù)開發(fā)人員中已變得流行榄审。使用專門為創(chuàng)建微服務(wù)而設(shè)計的GoKit2 和GoMicro3 砌们,可以輕松地用Golang編寫微服務(wù)。您可以在此框架中構(gòu)建支持REST和gRPC的微服務(wù)搁进。
使用GoMicro浪感,您可以輕松使用Go語言創(chuàng)建微服務(wù)。這個PRC庫為您提供了創(chuàng)建微服務(wù)所需的所有基礎(chǔ)模塊拷获。
Features
- 框架可減少應(yīng)用程序部署中的難度篮撑,并促進(jìn)互操作性。
- 可擴展的工具包用以創(chuàng)建應(yīng)用匆瓜。
- 使用預(yù)定義的模板輕松入門赢笨。
Quarkus
Quarkus非常適合使用了Kubernetes的項目!Red Hat牽頭設(shè)計了這個用于Kubernetes環(huán)境的 Java框架驮吱,能夠與OpenJDK HotSpot茧妒、GraalVM一起工作。提供命令式或響應(yīng)式編程模型來應(yīng)對不同微服務(wù)架構(gòu)的挑戰(zhàn)左冬。
Quarkus框架旨在最小化內(nèi)存消耗并最大限度地提速程序的啟動時間(幾十毫秒)桐筏。極快的啟動時間使得微服務(wù)在容器或Kubernetes中易于擴容。
Features
- 它綜合了各種各樣的技術(shù)拇砰、庫和API梅忌,使其簡單和易學(xué)易用狰腌。
- 使用該平臺,您可以提前優(yōu)化JVM或底層代碼牧氮,以改善應(yīng)用程序性能琼腔。
- 該框架擁有比其他框架更快的啟動時間。
Moleculer
Molecular框架為微服務(wù)開發(fā)提供了另一種方法踱葛。隨著NodeJS日益普及丹莲,JavaScript開發(fā)人員能夠從這個框架中受益。Moleculer是一個快速尸诽、動態(tài)且功能強大的NodeJS微服務(wù)框架甥材。能夠創(chuàng)建高效、可靠且易于訪問的服務(wù)性含。
Features
- 支持事件驅(qū)動式開發(fā)
- 內(nèi)置服務(wù)注冊和發(fā)現(xiàn)功能
- 內(nèi)置負(fù)載均衡
Lightbend Lagom
Lagom[4]的底層所使用的Akka和Play已經(jīng)用于不少的應(yīng)用程序中洲赵。您可以使用Java或Scala編寫微服務(wù)程序
使用Lagom的統(tǒng)一開發(fā)生態(tài)系統(tǒng)解決業(yè)務(wù)問題要比連接服務(wù)簡單的多。在一次性操作中創(chuàng)建項目商蕴、啟動您的微服務(wù)并啟動Lagom板鬓。每當(dāng)構(gòu)建發(fā)生更改時,它都會自動重新加載究恤。
Features
- 職責(zé)明晰
- 降低風(fēng)險,提高開發(fā)頻率后德,縮短開發(fā)周期
- 具備響應(yīng)性部宿、穩(wěn)健性、適應(yīng)性和靈活性等特性瓢湃。
Ballerina
您可以使用Ballerina創(chuàng)建分布式系統(tǒng)理张,而無需使用傳統(tǒng)的微服務(wù)框架。它是一種云原生編程語言绵患,是開源的雾叭。它還是一種結(jié)構(gòu)化語言,開發(fā)人員能夠在其程序中定義服務(wù)接口和靜態(tài)類型落蝙。
使用Ballerina织狐,開發(fā)人員可以從頭開始構(gòu)建一個解耦的系統(tǒng),因為它具有圖形化筏勒、面向數(shù)據(jù)和并發(fā)性的特點移迫。您還可以設(shè)計用于提供網(wǎng)絡(luò)服務(wù)的軟件和應(yīng)用程序。
Features
- 是一種容易學(xué)習(xí)管行、友好厨埋、開源的編程語言。
- 使用可視化表示以更容易理解捐顷。
- 整個集成均可以使用流程圖表達(dá)(可視化編輯)荡陷。
Eclipse Vert.x
Eclipse牽頭管理的框架雨效,非常適合在Java虛擬機(JVM)上開發(fā)響應(yīng)式應(yīng)用程序。Vert.x還為受限制的運行環(huán)境(例如虛擬機和容器)提供了完美的解決方案废赞。此外徽龟,Vert.x工具包為構(gòu)建任何模塊提供了很高的靈活性和準(zhǔn)確性。
Vert.x讓你用常見的工具創(chuàng)建任何服務(wù)模塊蛹头,讓項目開發(fā)增添趣味顿肺。
Features
- 多語言API允許開發(fā)人員使用多種語言編寫異步網(wǎng)絡(luò)應(yīng)用程序。
- 作為單線程應(yīng)用程序渣蜗,開發(fā)人員可以使用vert.x使用I/O線程模型編寫代碼屠尊。
- 使用內(nèi)核線程,處理并發(fā)操作耕拷,資源消耗低讼昆,中小型硬件即可。
Micronaut
Micronaut是一個領(lǐng)先的構(gòu)建模塊化和微服務(wù)式的應(yīng)用程序的Java框架骚烧。為踐行微服務(wù)架構(gòu)設(shè)計浸赫,創(chuàng)始人專注于構(gòu)建一個全棧的環(huán)境,而不是集成適當(dāng)?shù)墓ぞ甙?/p>
Micronauts最好的一點是赃绊,它們在啟動和占用內(nèi)存方面不依賴于代碼庫的大小既峡,因此具有極快的啟動時間、高吞吐量和很少的內(nèi)存占用碧查。
Features
- 支持GraalVM运敢,應(yīng)用程序可以在幾毫秒內(nèi)啟動。
- 為新開發(fā)人員提供通用編碼標(biāo)準(zhǔn)忠售,較為平滑的學(xué)習(xí)曲線传惠。
- 通過開源技術(shù)改善內(nèi)存利用率和運行時調(diào)優(yōu)。
AxonIQ
Axon是用Java語言開發(fā)的框架稻扬。Axon包括一個可直接用于企業(yè)業(yè)務(wù)軟件開發(fā)的軟件系統(tǒng)和架構(gòu)卦方。框架和服務(wù)器分別提供架構(gòu)和模型泰佳。而且免費盼砍。
Features
- 通過分層存儲提高生產(chǎn)力和降低成本
- 災(zāi)難恢復(fù)選項,包括手動和輔助選項
- 所有系統(tǒng)更改只附加視圖上下文
小結(jié)
微服務(wù)之所以重要逝她,是因為當(dāng)前應(yīng)用程序開發(fā)對效率衬廷、生產(chǎn)力、交付速度和速度要求在不斷提高汽绢。選擇適合的框架本就是個有難度的事情吗跋,而逐個候選項去嘗試則成本更高,一定要仔細(xì)甄別框架所說聲稱的功能和預(yù)期效果。
譯注
譯者整理的框架資料
名字和網(wǎng)址 | 牽頭組織 | 編程語言 | 標(biāo)語 |
---|---|---|---|
Spring Boot https://spring.io/projects/spring-boot | VMware | Java(和其他JVM語言跌宛,下同) | Spring makes Java Simple, modern, productive, reactive, cloud-ready |
Helidon https://helidon.io/ | Oracle | Java | Lightweight. Fast. Crafted for Microservices. |
Golang https://go.dev/ | Go | ||
Quarkus https://quarkus.io | Red Hat | Java | SUPERSONIC SUBATOMIC JAVA. A Kubernetes Native Java stack tailored for OpenJDK HotSpot and GraalVM, crafted from the best of breed Java libraries and standards. |
Molecular https://moleculer.services/ | MoleculerJS | JavaScript | Molecular Progressive microservices framework for Node.js. |
Lagom https://www.lagomframework.com/ | Lightbend | Java酗宋,Scala | The opinionated microservices framework for moving away from the monolith Lagom helps you decompose your legacy monolith and build, test, and deploy entire systems of Reactive microservices |
Ballerina https://ballerina.io/ | WSO2 LLC | Ballerina | Flexible, Powerful, Beautiful Integrations as Code with Ballerina |
Vert.x https://vertx.io/ | Eclipse | Java | Eclipse Vert.x? Reactive applications on the JVM |
Micronaut https://micronaut.io/ | Micronaut foundation | Java | A modern, jvm-based, full-stack framework for building modular, easily testable microservice and serverless applications |
AxonIQ https://www.axoniq.io/ | AxonIQ | Java | Evolutionary microservices beyond event-driven |
[1]: 指作者Albert Smith 和他所在的公司 Hidden Brains https://www.hiddenbrains.com/
[4]: Lagom is Approaching EOL. This project will only receive security patches until July 1, 2024