九周九分布式服務-架構演進

博客原文

自從《序》發表之后20多天了,新項目總算忙過去了,回家過年順便休個假,茶余飯后繼續我們的九周九分布式服務系列文章。根據預告中的順序,今天寫第一篇《架構演進》,書歸正傳。

00 概述

隨著業務的發展,項目的規模不斷擴大,為了方便快速的構建迭代應用,應用的架構也在不斷的演進,發展的核心問題是,服務化改造和服務治理。這種架構設計是,對復雜的應用進行水平拆分和服務化改造,將服務的消費者和服務的提供者解耦,增加復用性,減少公共模塊的重復開發。系統可靠性和團隊的協作能力也會有所提高。

應用架構的歷史演進過程是這樣的,下圖展示了整個過程。

架構演進
  1. 垂直煙囪式架構:這類架構一般是一個war包搞定一切 [All in One]。
  2. RPC架構:這類架構實現了前后端分離,這里不是指頁面(html等)和后臺代碼(java等)的分離,是指邏輯上的前后端分離,前端邏輯和后端邏輯的分離,前端邏輯由Spring MVC框架完成,后端通過RPC框架完成業務邏輯接口的封裝和暴露。
  3. SOA架構:隨著暴露接口的增多,在RPC架構中接口的管理和配置工作隨之增加,這時對應用的架構提出了更高的要求,服務自動發現自帶負載均衡,服務自治,服務可編排等高級特性。這就是面向服務的架構設計(SOA)出現的歷史原因。
  4. 微服務架構:與SOA架構沒有本質上的區別,是SOA架構進化出來的一種服務設計風格,特點是服務拆分粒度小、服務量大、真正實現敏捷交付、踐行DevOps思想。

01 垂直架構

這種架構設計一般出現在業務發展初期,業務功能單一,業務量小。 在垂直的架構中一般采用經典的MVC三層架構模型:


mvc架構模型

垂直的mvc三層架構,最前端的是視圖展示層,是用戶與之交互的界面;中間的控制層主要負責web請求的分發;第三層為應用模型層,這是業務邏輯的主要實現部分。

它的部署方式一般是如下形式:

垂直架構的部署方式

特點:
維護成本高,部署效率低,團隊協作效率差,導致系統可靠性變差(在一個進程里面,一旦有一個接口出現故障,內存泄漏,會影響整個節點的宕機),新功能上線周期變長(耦合太多)。

02 RPC架構

RPC全稱是Remote Procedure Call,是一種進程間通信方式,允許像調用本地服務一樣的調用遠程服務,一定程度上做到了公共服務的重用。支撐這種架構的框架就是RPC框架,業界流行的開源的RPC框架主要有:

  1. FaceBook主導開發 Apache Thrift
  2. Hadoop子項目 Avro-RPC
  3. Caucho提供的Hessian
  4. Google開源的gRPC(HTTP/2、protobuf)

在java的語言環境中,實現原理中用的主要技術包括序列化、socket通信、動態代理、反射機制。其實徒手實現一個簡單RPC框架也是不復雜的,主要是由三個部分組成:

  • 服務提供者:運行在服務端,負責服務接口的定義和實現。
  • 服務發布者:運行在RPC服務端,負責將本地服務發布成可遠程調用的服務。
  • 本地服務代理:運行RPC客戶端,負責通過代理調用遠程服務,將返回結果封裝好供本地消費者使用。

RPC架構一般的部署方式:

RPC架構的部署方式

RPC框架的特點:簡單、高效、通用,是SOA架構發展的底層技術支撐。

RPC架構的特點:一定程度上提高了服務的重用性,但是消費者調用服務提供者配置管理困難,并且消費者無負載均衡控制,調用關系梳理困難。

03 SOA架構

SOA是面向服務架構,是一種粗粒度的、以服務為中心的架構。業界流行的框架:

  1. Dubbo/Dubbox(阿里/當當開源)
  2. HSF(阿里商業版)
  3. DSF(華為商業版)
  4. Coral Service(亞馬遜內部)
  5. Spring Cloud(pivotal開源/商業版)

在上述框架中大家最熟悉的應該是Dubbo框架,Dubbo框架的官方文檔寫的非常好,學習分布式服務框架必讀文檔。

SOA架構的應用部署方式:

SOA架構的應用部署方式

與上面RPC架構的圖相比,其中多了兩個翅膀,不要小看這兩個翅膀,它們為我們的服務開發和運維工作提供了很多便利,起到了為應用保駕護航的作用。

特點:
在服務注冊中心的協助下實現了,服務自動發現、統一配置、可配置的服務路由、可配置的集群容錯機制、服務治理等;服務治理也是依賴服務注冊中心實現的,和具體的服務消費者和提供者是松耦合的,服務治理包括:服務運行態管控、服務生命周期管理、服務監控、服務安全、服務故障快速定位等功能;為運維工作提供了極大的便利。

04 微服務架構

微服務架構是一種服務化的架構風格,對服務的拆分粒度更細。微服務架構誕生肩負了更多的責任,最大限度的利用IT資源,容器化部署,敏捷交付以及自動化運維等。

微服務架構

上面一張ppt基本概括了微服務的一切,應該是蓋住了。。。

結束語:第一篇寫于家中文章,回頭看看還可以,本文主要寫的是一個發展過程,還是宏觀的東西多一點,循序漸進,后面會慢慢深入進去。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,517評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,087評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,521評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,493評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,207評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,603評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,624評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,813評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,364評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,110評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,305評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,874評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,532評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,953評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,209評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,033評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,268評論 2 375

推薦閱讀更多精彩內容