快速讀懂分佈式和微服務

微服務是架構設計方式,分佈式是系統部署方式,兩者概念不同。
-> 分佈式是什麼

分佈式服務:服務是分散部署在不同的機器上的,一個服務負責一個或幾個功能,是一種面向SOA架構【1】的,服務之間也是通過RPC【2】來交互或者是webService【3】來交互的。

在邏輯架構設計完後就該做物理架構設計,系統應用部署在超過一臺服務器或虛擬機上,且各分開部署的部分彼此通過各種通訊協議交互信息,就可算作分佈式部署。

注:

【1】SOA(面向服務的架構)是一個組件模型,它將應用程序的不同功能單元(稱爲服務)進行拆分,並通過這些服務之間定義良好的接口和協議聯繫起來。

【2】RPC(Remote Procedure Call)遠程過程調用,簡單的理解是一個節點請求另一個節點提供的服務。

【3】webService就是一個部署在Web服務器上的,它向外界暴露出一個能夠通過Web進行調用的API。簡單來說就是自己不寫,而是去調用別人的服務,調別人的天氣預報,地圖信息等。

-> 微服務是什麼

微服務,就是很小的服務,小到一個服務只對應一個單一的功能,只做一件事。這個服務可以單獨部署運行,服務之間可以通過RPC【2】來相互交互。(可能每個微服務都是由獨立的小團隊開發,測試,部署,上線,負責它的整個生命週期。)

-> 小結

微服務相比分佈式服務來說,它的粒度更小,服務之間耦合度更低,由於每個微服務都由獨立的小團隊負責,因此它敏捷性更高。(有一種說法,分佈式服務最後都會向微服務架構演化。 )不過服務微服務化後帶來的挑戰也是顯而易見的,例如服務粒度小,數量大,後期運維將會很難

生產環境下的微服務肯定是分佈式部署的,分佈式部署的應用不一定是微服務架構的。(比如集羣部署,它是把相同應用複製到不同服務器上,但是邏輯功能上還是單體應用。)

-> 補充:微服務架構又是什麼

在做架構設計的時候,先做邏輯架構,再做物理架構,當你拿到需求後,估算過最大用戶量和併發量後,計算單個應用服務器能否滿足需求,如果用戶量只有幾百人的小應用,單體應用就能搞定,即所有應用部署在一個應用服務器裏,如果是很大用戶量,且某些功能會被頻繁訪問,或者某些功能計算量很大,建議將應用拆解爲多個子系統,各自負責各自功能,這就是微服務架構。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章