【翻譯】10個微服務(wù)框架

我們[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/ Google 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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市疆拘,隨后出現(xiàn)的幾起案子蜕猫,更是在濱河造成了極大的恐慌,老刑警劉巖哎迄,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件回右,死亡現(xiàn)場離奇詭異,居然都是意外死亡漱挚,警方通過查閱死者的電腦和手機翔烁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來旨涝,“玉大人蹬屹,你說我怎么就攤上這事“谆” “怎么了慨默?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長弧腥。 經(jīng)常有香客問我厦取,道長,這世上最難降的妖魔是什么管搪? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任蒜胖,我火速辦了婚禮,結(jié)果婚禮上抛蚤,老公的妹妹穿的比我還像新娘。我一直安慰自己寻狂,他們只是感情好岁经,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蛇券,像睡著了一般缀壤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纠亚,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天塘慕,我揣著相機與錄音,去河邊找鬼蒂胞。 笑死图呢,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蛤织,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼赴叹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了指蚜?” 一聲冷哼從身側(cè)響起乞巧,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎摊鸡,沒想到半個月后绽媒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡免猾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年是辕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掸刊。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡免糕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出忧侧,到底是詐尸還是另有隱情石窑,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布蚓炬,位于F島的核電站松逊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏肯夏。R本人自食惡果不足惜经宏,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望驯击。 院中可真熱鬧烁兰,春花似錦、人聲如沸徊都。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽暇矫。三九已至主之,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間李根,已是汗流浹背槽奕。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留房轿,地道東北人粤攒。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓所森,卻偏偏與公主長得像,于是被迫代替她去往敵國和親琼讽。 傳聞我的和親對象是個殘疾皇子必峰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容