NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

好記憶不如爛筆頭,能記下點東西,就記下點,有時間拿出來看看,也會發覺不一樣的感受。

一、概述

說起微服務,在程式界,可算是當下相對火爆的詞,那麼微服務到底是什麼?與傳統的服務有什麼區別,為什麼要使用微服務吶?

需要指出的是:微服務架構並不是為了拆分而拆分,真正的目的是通過對微服務進行水平擴 展解決傳統的單體應用在業務急劇增長時遇到的問題,而且由於拆分的微服務系統中專業的人做 專業的事,人員和專案的職責單一、低藕合、高內聚,所以產生問題的概率就會降到最小。

二、微服務架構描述

先看看微服務的架構圖,看看當前火的微服務架構圖:

從圖得出如下結論:
· 微服務把每一個職責單一的功能放在一個獨立的服務中 。
· 每個服務執行在一個單獨的程序中。
· 每個服務有多個例項在執行,每個例項可以執行在容器化平臺內,達到平滑伸縮的效 果。
· 每個服務有自己的資料儲存,實際上,每個服務應該有自己獨享的資料庫、快取、訊息 佇列等資源。
· 每個服務應該有自己的運營平臺,以及獨享的運營人員,這包括技術運維和業務運營人 員:每個服務都高度自治,內部的變化對外透明。
· 每個服務都可根據效能需求獨立地進行水平伸縮 。

三、傳統架構描述

先看看傳統架構圖,粗略看看傳統架構的實現方式:

從上圖可以得到如下結論:

·傳統單體架構將所有模組化元件混合後執行在同一個服務 口而4 程序中 。
· 可對包含多個模組化元件的整體 川島f 程序進行水平擴充套件,而無法對某個模組化元件進 行水平擴充套件。
· 某個模組化元件發生變化時,需要所有的模組化元件進行編譯、打包和上線 。

· 久而久之,模組間的依賴將會不清晰,互相糯合、互相依賴成為家常便飯。

通過對比來看,微服務架構更靈活並且可水平伸縮,可以讓專業的人來做專業的事。

四、微服務架構與 SOA 服務化的對比

我們看到微服務架構的一些特點與 SOA 服務化架構相似, 事實上微服務架構與 SOA 服務 化架構並不衝突,它們一脈相承,微服務架構是服務化架構響應特定歷史時期的使用場景的延 續,是服務化進行昇華井落地的一種實現方式。 SOA 服務化的理念在微服務架構中仍然有效,微服務在 S OA 服務化的基礎上進行了演進和疊加,形成了適合現代化應用場景的一個方法論。微服務架構與 S OA 服務化雖然一脈相承,卻略有不同,如下所述。

1. 目的不同
• SOA 服務化涉及的範圍更廣一些,強調不同的異構服務之間的協作和契約 ,並強調有 效整合、業務流程編排、歷史應用整合等,典型代表為 Web Service 和 ESB 。

·微服務使用 一系列的微小服務來實現整體的業務流程,目的是有效地拆分應用,實現敏 捷開發和部署,在每個微小服務的團隊裡,減少了跨團隊的溝通,讓專業的人做專業 的事,縮小變更和法代影響的範圍,並達到單一微服務更容易水平擴充套件的目的。

2 . 部署萬式不同

· 微服務將完整的應用拆分成多個細小的服務,通常使用敏捷擴容、縮容的 Docker 技術 來實現自動化的容器管理 , 每個微服務執行在單一 的程序內,微服務中的部署互相獨 立、 互不影響。
• SOA 服務化通常將多個業務服務通過元件化模組方式打包在一個 War 包裡,然後統一 部署在一個應用伺服器上。

3. 服務植度不同

· 微服務倡導將服務拆分成更細的粒度,通過多個服務組合來實現業務流程的處理,拆分 到職責單一 , 甚至小到不能再進行拆分。

• SOA 對粒度沒有要求 , 在實踐中服務通常是粗粒度的,強調介面契約的規範化,內部 實現可以更粗粒度。

由此可見,微服務和傳統服務的架構特點差別還是很大的,而微服務的特點也更加的突出,再我們選擇系統架構的時候,還是要拋棄傳統的架構模式,選擇向微服務靠攏,從而實現更加靈活多變的系統。

歡迎拍磚!

相關文章

程式語言 最新文章