Spring Cloud和Dubbo的區(qū)別及各自的優(yōu)缺點

我們先從 Nginx 說起,了解為什么需要微服務笔横。最初的服務化解決方案是給相同服務提供一個統(tǒng)一的域名约计,然后服務調用者向這個域發(fā)送 HTTP 請求,由 Nginx 負責請求的分發(fā)和跳轉木张。

這種架構存在很多問題:Nginx 作為中間層众辨,在配置文件中耦合了服務調用的邏輯,這削弱了微服務的完整性窟哺,也使得 Nginx 在一定程度上變成了一個重量級的 ESB泻轰。圖 1 標識出了 Nginx 的轉發(fā)信息流走向。

圖 1 Nginx 轉發(fā)的信息流

服務的信息分散在各個系統(tǒng)且轨,無法統(tǒng)一管理和維護浮声。每一次的服務調用都是一次嘗試,服務消費方并不知道有哪些實例在給他們提供服務旋奢。這帶來了一些問題:

  • 無法直觀地看到服務提供方和服務消費方當前的運行狀況與通信頻率泳挥;
  • 消費方的失敗重發(fā)、負載均衡等都沒有統(tǒng)一策略至朗,這加大了開發(fā)每個服務的難度屉符,不利于快速演化。

為了解決上面的問題,我們需要一個現成的中心組件對服務進行整合矗钟,將每個服務的信息匯總唆香,包括服務的組件名稱、地址吨艇、數量等躬它。

服務的調用方在請求某項服務時首先通過中心組件獲取提供服務的實例信息(IP、端口等)东涡,再通過默認或自定義的策略選擇該服務的某一提供方直接進行訪問冯吓,所以考慮引入 Dubbo。

Dubbo 是阿里開源的一個 SOA 服務治理解決方案疮跑,文檔豐富组贺,在國內的使用度非常高。圖 2 為 Dubbo 的基本架構圖祖娘,使用 Dubbo 構建的微服務已經可以較好地解決上面提到的問題失尖。

圖 2 Dubbo 的基本架構圖

從圖 2 中,可以看出以下幾點:

  • 調用中間層變成了可選組件贿条,消費方可以直接訪問服務提供方雹仿;
  • 服務信息被集中到 Registry 中,形成了服務治理的中心組件整以;
  • 通過 Monitor 監(jiān)控系統(tǒng)胧辽,可以直觀地展示服務調用的統(tǒng)計信息;
  • 服務消費者可以進行負載均衡公黑、服務降級的選擇邑商。

但是對于微服務架構而言,Dubbo 并不是十全十美的凡蚜,也有一些缺陷人断,比如:

  • Registry 嚴重依賴第三方組件(ZooKeeper 或者 Redis),當這些組件出現問題時朝蜘,服務調用很快就會中斷恶迈。
  • Dubbo 只支持 RPC 調用。這使得服務提供方與調用方在代碼上產生了強依賴谱醇,服務提供方需要不斷將包含公共代碼的 Jar 包打包出來供消費方使用暇仲。一旦打包出現問題,就會導致服務調用出錯副渴。

筆者認為奈附,Dubbo 和 Spring Cloud 并不是完全的競爭關系,兩者所解決的問題域并不一樣煮剧。

Dubbo 的定位始終是一款 RPC 框架斥滤,而 Spring Cloud 的目標是微服務架構下的一站式解決方案将鸵。如果非要比較的話,Dubbo 可以類比到 Netflix OSS 技術棧佑颇,而 Spring Cloud 集成了 Netflix OSS 作為分布式服務治理解決方案顶掉,但除此之外 Spring Cloud 還提供了配置、消息漩符、安全一喘、調用鏈跟蹤等分布式問題解決方案。

當前由于 RPC 協(xié)議嗜暴、注冊中心元數據不匹配等問題,在面臨微服務基礎框架選型時 Dubbo 與 Spring Cloud 只能二選一议蟆,這也是大家總是拿 Dubbo 和 Spring Cloud 做對比的原因之一闷沥。

Dubbo 已經適配到 Spring Cloud 生態(tài),比如作為 Spring Cloud 的二進制通信方案來發(fā)揮 Dubbo 的性能優(yōu)勢咐容,Dubbo 通過模塊化以及對 HTTP 的支持適配到 Spring Cloud舆逃。

Spring Cloud 好在哪里

作為新一代的服務框架,Spring Cloud 提出的口號是開發(fā)“面向云的應用程序”戳粒,它為微服務架構提供了更加全面的技術支持路狮。結合我們一開始提到的微服務的訴求,參見表 1蔚约,把Spring Cloud 與 Dubbo 進行一番對比奄妨。

Spring Cloud 拋棄了 Dubbo 的 RPC 通信,采用的是基于 HTTP 的 REST 方式苹祟。嚴格來說砸抛,這兩種方式各有優(yōu)劣。雖然從一定程度上來說树枫,后者犧牲了服務調用的性能直焙,但也避免了上面提到的原生 RPC 帶來的問題。而且 REST 相比 RPC 更為靈活砂轻,服務提供方和調用方奔誓,不存在代碼級別的強依賴,這在強調快速演化的微服務環(huán)境下顯得更加合適搔涝。

很明顯厨喂,Spring Cloud 的功能比 Dubbo 更加強大,涵蓋面更廣体谒,而且作為 Spring 的拳頭項目杯聚,它也能夠與 Spring Framework、Spring Boot抒痒、Spring Data幌绍、Spring Batch 等其他 Spring 項目完美融合,這些對于微服務而言是至關重要的。

前面提到傀广,微服務背后一個重要的理念就是持續(xù)集成颁独、快速交付伪冰,而在服務內部使用一個統(tǒng)一的技術框架,顯然比將分散的技術組合到一起更有效率贮聂。

更重要的是,相比于 Dubbo吓懈,它是一個正在持續(xù)維護的歼冰、社區(qū)更加火熱的開源項目耻警,這就可以保證使用它構建的系統(tǒng)持續(xù)地得到開源力量的支持。

下面列舉 Spring Cloud 的幾個優(yōu)勢甘穿。

  • Spring Cloud 來源于 Spring,質量温兼、穩(wěn)定性秸滴、持續(xù)性都可以得到保證妨托。
  • Spirng Cloud 天然支持 Spring Boot,更加便于業(yè)務落地兰伤。
  • Spring Cloud 發(fā)展得非常快敦腔,從開始接觸時的相關組件版本為 1.x,到現在將要發(fā)布 2.x 系列符衔。
  • Spring Cloud 是 java領域最適合做微服務的框架找前。
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末判族,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子形帮,更是在濱河造成了極大的恐慌周叮,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件界斜,死亡現場離奇詭異仿耽,居然都是意外死亡,警方通過查閱死者的電腦和手機各薇,發(fā)現死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門项贺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人峭判,你說我怎么就攤上這事开缎。” “怎么了林螃?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵啥箭,是天一觀的道長。 經常有香客問我治宣,道長,這世上最難降的妖魔是什么砌滞? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任侮邀,我火速辦了婚禮,結果婚禮上贝润,老公的妹妹穿的比我還像新娘绊茧。我一直安慰自己,他們只是感情好打掘,可當我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布华畏。 她就那樣靜靜地躺著,像睡著了一般尊蚁。 火紅的嫁衣襯著肌膚如雪亡笑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天横朋,我揣著相機與錄音仑乌,去河邊找鬼。 笑死琴锭,一個胖子當著我的面吹牛晰甚,可吹牛的內容都是我干的。 我是一名探鬼主播决帖,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼厕九,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了地回?” 一聲冷哼從身側響起扁远,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤俊鱼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后穿香,有當地人在樹林里發(fā)現了一具尸體亭引,經...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年皮获,在試婚紗的時候發(fā)現自己被綠了焙蚓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡洒宝,死狀恐怖购公,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情宏浩,我是刑警寧澤靠瞎,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站佳窑,受9級特大地震影響父能,放射性物質發(fā)生泄漏。R本人自食惡果不足惜溉委,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一爱榕、第九天 我趴在偏房一處隱蔽的房頂上張望瓣喊。 院中可真熱鬧型宝,春花似錦絮爷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽指巡。三九已至隶垮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間勉耀,已是汗流浹背蹋偏。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留枢纠,地道東北人黎棠。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓脓斩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親俭厚。 傳聞我的和親對象是個殘疾皇子挪挤,可洞房花燭夜當晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內容