閱讀353 返回首頁    go 阿裏雲 go 技術社區[雲棲]


圖解微服務架構演進

圖解服務化架構演進

前言

來自dubbo的用戶手冊中的一句話:
隨著互聯網的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,分布式服務架構以及流動計算架構勢在必行,亟需一個治理係統確保架構有條不紊的演進。

常規的垂直應用架構就相當於傳統的那種,現階段傳統垂直架構改造的核心就是對應用做服務化改造,服務話改造使用的核心技術架構就是分布式服務框架。

其實這篇是概念上的總結,技術概念軟文,紀錄此文讓自己更明白什麼是微服務化架構。

服務化架構演進

請看下圖,也來自dubbo的用戶手冊,圖中恰恰少了微服務架構的圖。
image

那什麼是微服務架構呢?
先從第一個圖中第一個說起吧。

1.orm – 單一應用架構

我認為是一個高內聚版本,所有功能部署在一起。數據訪問框架(orm)成為關鍵。這個架構很少被人使用,幾乎接近滅絕了吧。

優點:成本低,適合功能少又簡單 缺點:很多,比如無法適應高流量,二次開發難,部署成本高

2.mvc架構 - 垂直應用架構

當訪問量漸漸增大,慢慢演化成用的很多的mvc架構。雖然還是所有的功能都是部署在同一個進程中,但是可以通過雙機或者前置負載均衡來實現負載分流。這樣應用也可以拆分成不同的幾個應用,以提升性能和效率。

此時,mvc架構用於分離前後端邏輯。一方麵,有一定的模塊化。另一方麵,加速和方便了開發。

3.rpc架構 - 分布式服務架構

當mvc垂直應用分成不同應用時,越來越多的情況下。不可避免的事應用a與應用b之間的交互。此時將核心和公共的 業務功能抽出來,作為單獨的服務,並實現前後端邏輯分離。

此時則就需要提高業務的複用及整合的分布式rpc框架。

4.soa架構 - 流動計算架構

當rpc架構中的服務越來越多時,服務的生命周期的管控,容量的評估等各種問題會出現,使服務化成為瓶頸。需要增加一個調度中心來進行對服務管控,監督等。

然後,提到關鍵的 --

5.微服務架構

問:什麼是微服務架構?

答:它就是將功能分散到各個離散的服務中然後實現對方案的解耦。服務更原子,自治更小,然後高密度部署服務。

下麵是對微服務架構的圖解:

image

小結

伴隨敏捷開發,持續交付,DevOps,Docker等高速發展,微服務必然是未來演進方向。加油~ 多了解吧。

最後更新:2017-05-19 17:32:01

  上一篇:go  Akka簡單性能分析
  下一篇:go  《Spark 官方文檔》Spark獨立模式