【經(jīng)驗(yàn)】2. 15種微服務(wù)架構(gòu)框架[JVAV/GO]

這幾年來豆胸,微服務(wù)這個(gè)概念越來越火了奥洼,火到什么程度呢?2019年有一個(gè)統(tǒng)計(jì)說晚胡,兩千家企業(yè)里,45%在使用微服務(wù)嚼沿,16%在實(shí)驗(yàn)開發(fā)和測(cè)試微服務(wù)架構(gòu)估盘,24%在學(xué)習(xí)微服務(wù)準(zhǔn)備轉(zhuǎn)型,只有剩下的15%的企業(yè)沒有使用微服務(wù)骡尽。

微服務(wù)到底有什么好呢遣妥?微服務(wù)在2013年才被提出,短短幾年就有這么快速的發(fā)展攀细。微服務(wù)架構(gòu)能夠?qū)崿F(xiàn)由小型自主服務(wù)組成一個(gè)整體應(yīng)用箫踩,各個(gè)組成部分之間是松耦合的,復(fù)雜性低谭贪,各個(gè)部分可以獨(dú)立部署境钟,修復(fù)bug或者引入新特性更容易,能夠獨(dú)立擴(kuò)展俭识,不同技術(shù)棧之間可以使用不同框架慨削、不同版本庫(kù)甚至不同的操作系統(tǒng)平臺(tái)。

對(duì)于中大型架構(gòu)系統(tǒng)來說,微服務(wù)更加便捷缚态,微服務(wù)成為很多企業(yè)架構(gòu)重構(gòu)的方向磁椒,同時(shí)也對(duì)架構(gòu)師提出更高的挑戰(zhàn)。目前有很多常用于微服務(wù)構(gòu)建的框架玫芦,對(duì)于構(gòu)建微服務(wù)架構(gòu)能夠帶來一些幫助浆熔。

1,Java語(yǔ)言相關(guān)微服務(wù)框架

Spring Boot

Spring Boot的設(shè)計(jì)目的是簡(jiǎn)化新Spring應(yīng)用初始搭建以及開發(fā)過程桥帆,2017年有64.4%的受訪者決定使用Spring Boot医增,可以說是最受歡迎的微服務(wù)開發(fā)框架。利用Spring Boot開發(fā)的便捷度簡(jiǎn)化分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā)环葵,比如像配置中心调窍、注冊(cè)、負(fù)載均衡等方面都可以做到一鍵啟動(dòng)和一鍵部署张遭。

Spring Cloud

Spring Cloud是一個(gè)系列框架的合計(jì)邓萨,基于HTTP(s)的RETS服務(wù)構(gòu)建服務(wù)體系,Spring Cloud能夠幫助架構(gòu)師構(gòu)建一整套完整的微服務(wù)架構(gòu)技術(shù)生態(tài)鏈菊卷。

Dubbo

Dubbo是由阿里巴巴開源的分布式服務(wù)化治理框架缔恳,通過RPC請(qǐng)求方式訪問。Dubbo是在阿里巴巴的電商平臺(tái)中逐漸探索演進(jìn)所形成的洁闰,經(jīng)歷過復(fù)雜業(yè)務(wù)的高并發(fā)挑戰(zhàn)歉甚,比Spring Cloud的開源時(shí)間還要早。目前阿里扑眉、京東纸泄、當(dāng)當(dāng)、攜程腰素、去哪等一些企業(yè)都在使用Dubbo聘裁。

Dropwizard

Dropwizard將Java生態(tài)系統(tǒng)中各個(gè)問題域里最好的組建集成于一身,能夠快速打造一個(gè)Rest風(fēng)格的后臺(tái)弓千,還可以整合Dropwizard核心以外的項(xiàng)目衡便。國(guó)內(nèi)現(xiàn)在使用Dropwizard還很少,資源也不多洋访,但是與Spring Boot相比镣陕,Dropwizard在輕量化上更有優(yōu)勢(shì),同時(shí)如果用過Spring姻政,那么基本也會(huì)使用Spring Boot呆抑。

Akka

Akka是一個(gè)用Scala編寫的庫(kù),可以用在有簡(jiǎn)化編寫容錯(cuò)扶歪、高可伸縮性的Java和Scala的Actor模型理肺,使用Akka能夠?qū)崿F(xiàn)微服務(wù)集群摄闸。

Vert.x/Lagom/ReactiveX/Spring 5

這四種框架主要用于響應(yīng)式微服務(wù)開發(fā),響應(yīng)式本身和微服務(wù)沒有關(guān)系妹萨,更多用于提升性能上年枕,但是可以和微服務(wù)相結(jié)合,也可以提升性能乎完。

2熏兄,Go相關(guān)微服務(wù)框架

istio

項(xiàng)目簡(jiǎn)介:Istio是由Google、IBM和Lyft開源的微服務(wù)管理树姨、保護(hù)和監(jiān)控框架摩桶。使用istio可以很簡(jiǎn)單的創(chuàng)建具有負(fù)載均衡、服務(wù)間認(rèn)證帽揪、監(jiān)控等功能的服務(wù)網(wǎng)絡(luò)硝清,而不需要對(duì)服務(wù)的代碼進(jìn)行任何修改。

倉(cāng)庫(kù)地址:https://github.com/istio(25.9K)

官方文檔地址:https://istio.io/latest/docs/

Go-kit

項(xiàng)目簡(jiǎn)介:這是一個(gè)工具包的集合转晰,可以幫助攻城獅構(gòu)建強(qiáng)大芦拿、可靠和可維護(hù)的微服務(wù)。提供了用于實(shí)現(xiàn)系統(tǒng)監(jiān)控和彈性模式組件的庫(kù)查邢,例如日志蔗崎、跟蹤、限流扰藕、熔斷等缓苛。
基于這個(gè)框架的應(yīng)用程序架構(gòu)由三個(gè)主要的部分組成:

傳輸層:用于網(wǎng)絡(luò)通信,服務(wù)通常使用HTTP或者gRPC等網(wǎng)絡(luò)傳輸協(xié)議邓深,或者使用NATS等發(fā)布訂閱系統(tǒng)相互通信未桥。
接口層:是服務(wù)器和客戶端的基本構(gòu)建塊。每個(gè)對(duì)外提供的接口方法都會(huì)定義為一個(gè)Endpoint芥备,一遍在服務(wù)器和客戶端之間進(jìn)行網(wǎng)絡(luò)通信钢属,每個(gè)端點(diǎn)使用傳輸層通過HTTP或gRPC等具體通信模式對(duì)外提供服務(wù)
服務(wù)成:具體的業(yè)務(wù)邏輯實(shí)現(xiàn)

倉(cāng)庫(kù)地址:https://github.com/go-kit/kit/(19.1K)

官方文檔地址:https://gokit.io/

Kratos

項(xiàng)目簡(jiǎn)介:Kratos是嗶哩嗶哩開源的一套Go微服務(wù)框架,包含大量微服務(wù)相關(guān)框架及工具门躯。

倉(cāng)庫(kù)地址:https://github.com/go-kratos/kratos(11.5K)

官方文檔地址:https://go-kratos.dev/docs/

Go-micro【推薦】

項(xiàng)目簡(jiǎn)介:這是一個(gè)基于Go語(yǔ)言實(shí)現(xiàn)的插件化RPC微服務(wù)框架。提供了服務(wù)發(fā)現(xiàn)酷师、負(fù)載均衡讶凉、同步傳輸、異步通信以及事件驅(qū)動(dòng)等機(jī)制山孔,嘗試簡(jiǎn)化分布式系統(tǒng)之間的通信懂讯,讓開發(fā)者更專注于自身業(yè)務(wù)邏輯的開發(fā)。

GoMicro的設(shè)計(jì)哲學(xué)是可插拔的架構(gòu)理念台颠,提供了可快速構(gòu)建系統(tǒng)的組件褐望,并且可以根據(jù)自身的需求對(duì)GoMicro提供的默認(rèn)實(shí)現(xiàn)進(jìn)行定制勒庄。

倉(cāng)庫(kù)地址:https://github.com/micro/micro(9.5K)

官方文檔地址:https://micro.mu/

5.Goa

項(xiàng)目簡(jiǎn)介:Goa 是一款用 Go 用于構(gòu)建微服務(wù)的框架,采用獨(dú)特的設(shè)計(jì)優(yōu)先的方法

倉(cāng)庫(kù)地址:https://github.com/goadesign/goa(4.1K)

官方文檔地址:https://goa.design/

6.fabio

項(xiàng)目簡(jiǎn)介:fabio 是 ebay 團(tuán)隊(duì)用 golang 開發(fā)的一個(gè)快速瘫里、簡(jiǎn)單零配置能夠讓 consul 部署的應(yīng)用快速支持 http(s) 的負(fù)載均衡路由器实蔽。

倉(cāng)庫(kù)地址:https://github.com/fabiolb/fabio(4.1K)

官方文檔地址:https://fabiolb.net/

7.gizmo

項(xiàng)目簡(jiǎn)介:gizmo是紐約時(shí)報(bào)開源的go微服務(wù)工具,提供如下特性:標(biāo)準(zhǔn)化配置和日志;可配置策略的狀態(tài)監(jiān)測(cè)端點(diǎn);用于管理 pprof 端點(diǎn)和日志級(jí)別的配置;結(jié)構(gòu)化日志谨读,提供基本請(qǐng)求信息;端點(diǎn)的有用度量;優(yōu)雅的停止服務(wù); 定義期待和詞匯的基本接口局装。

倉(cāng)庫(kù)地址:https://github.com/nytimes/gizmo(3.3K)

8.Tars-go

項(xiàng)目簡(jiǎn)介:騰訊系,Tarsgo是基于Golang編程語(yǔ)言使用Tars協(xié)議的高性能RPC框架

倉(cāng)庫(kù)地址:https://github.com/TarsCloud/TarsGo(2.7K)

官方文檔地址:https://tarscloud.github.io/TarsDocs/SUMMARY.html#TarsGo

9.Jupiter

項(xiàng)目簡(jiǎn)介:Jupiter 是斗魚開源的一套微服務(wù)治理框架劳殖,提供豐富的后臺(tái)功能铐尚,管理應(yīng)用的資源、配置哆姻,應(yīng)用的性能宣增、配置等可視化。

倉(cāng)庫(kù)地址:https://github.com/douyu/jupiter

官方文檔地址:http://jupiter.douyu.com/(2.7K)

10.Dubbo-go

項(xiàng)目簡(jiǎn)介:阿里系矛缨,由Apache 軟件基金會(huì)官方發(fā)布Go 語(yǔ)言加入 Dubbo 生態(tài)爹脾,架構(gòu)是基于dubbo的extension模塊和分層的代碼設(shè)計(jì),主要解決 Go 項(xiàng)目與 Java & Dubbo 項(xiàng)目的互通問題劳景,同時(shí)也為 Go 項(xiàng)目提供了一種 RPC 與微服務(wù)

倉(cāng)庫(kù)地址:https://github.com/apache/dubbo-go(2.6K)

官方文檔地址:https://dubbogo.github.io/dubbo-go-website/zh-cn/

3.Net相關(guān)微服務(wù)框架

.NET Core

.NET Core是專門針對(duì)模塊化微服務(wù)架構(gòu)設(shè)計(jì)的誉简,是跨平臺(tái)應(yīng)用程序開發(fā)框架,是微軟開發(fā)的第一個(gè)官方版本盟广。

Service Fabric

Service Fabric是微軟開發(fā)的一個(gè)微服務(wù)框架闷串,基于Service Fabric構(gòu)建的很多云服務(wù)被用在了Azure上。

Surging

Surging是基于RPC協(xié)議的分布式微服務(wù)技術(shù)框架筋量,基于.NET Core而來烹吵。

Microdot Framework

Microdot Framework用于編寫定義服務(wù)邏輯代碼,不需要解決開發(fā)分布式系統(tǒng)的挑戰(zhàn)桨武,能夠很方便的進(jìn)行MicrosoftOrleans集成肋拔。

4,Node.js相關(guān)微服務(wù)框架

Seneca

Seneca是Node.js的微服務(wù)框架開發(fā)工具呀酸,可以用于編寫可用于產(chǎn)品環(huán)境的代碼凉蜂。

Hapi/Restify/LoopBack

這三種框架的分工不同,前兩種更適合開發(fā)簡(jiǎn)單的微服務(wù)后端系統(tǒng)性誉,第三種更適合用在大型復(fù)雜應(yīng)用開發(fā)窿吩,還可以用在現(xiàn)有微服務(wù)上的構(gòu)建。

5. Python相關(guān)微服務(wù)框架

Python相關(guān)的微服務(wù)框架非常少错览,用的比較多的是Nameko纫雁。Nameko讓實(shí)現(xiàn)微服務(wù)變得更簡(jiǎn)單,同時(shí)也提供了很豐富的功能倾哺,比如支持負(fù)載均衡轧邪、服務(wù)發(fā)現(xiàn)還支持依賴自動(dòng)注入等刽脖,使用起來很方便,但是有限速忌愚、超時(shí)和權(quán)限機(jī)制不完善等缺點(diǎn)曲管。

6. 總結(jié)

微服務(wù)已經(jīng)成為很多大型互聯(lián)網(wǎng)公司的選擇,對(duì)于架構(gòu)師和想要成為架構(gòu)師的工程師來說菜循,掌握微服務(wù)不僅要學(xué)會(huì)使用相關(guān)框架來實(shí)現(xiàn)翘地,還要掌握具體用法,在具體的實(shí)踐中仍然要避開很多坑癌幕。

原文鏈接:https://juejin.im/post/5e6786f0f265da571a39e108衙耕,作者:風(fēng)平浪靜如碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市勺远,隨后出現(xiàn)的幾起案子橙喘,更是在濱河造成了極大的恐慌,老刑警劉巖胶逢,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厅瞎,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡初坠,警方通過查閱死者的電腦和手機(jī)和簸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碟刺,“玉大人锁保,你說我怎么就攤上這事“牍粒” “怎么了爽柒?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)者填。 經(jīng)常有香客問我浩村,道長(zhǎng),這世上最難降的妖魔是什么占哟? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任心墅,我火速辦了婚禮,結(jié)果婚禮上榨乎,老公的妹妹穿的比我還像新娘嗓化。我一直安慰自己,他們只是感情好谬哀,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著严肪,像睡著了一般史煎。 火紅的嫁衣襯著肌膚如雪谦屑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天篇梭,我揣著相機(jī)與錄音氢橙,去河邊找鬼。 笑死恬偷,一個(gè)胖子當(dāng)著我的面吹牛悍手,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播袍患,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼坦康,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了诡延?” 一聲冷哼從身側(cè)響起滞欠,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎肆良,沒想到半個(gè)月后筛璧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惹恃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年夭谤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片巫糙。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡朗儒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出曲秉,到底是詐尸還是另有隱情采蚀,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布承二,位于F島的核電站榆鼠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏亥鸠。R本人自食惡果不足惜妆够,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望负蚊。 院中可真熱鬧神妹,春花似錦、人聲如沸家妆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)伤极。三九已至蛹找,卻和暖如春姨伤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背庸疾。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工乍楚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人届慈。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓徒溪,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親金顿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子臊泌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

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