1. 程式人生 > 其它 >分散式和微服務

分散式和微服務

轉載於:https://blog.csdn.net/zhonglunsheng/article/details/83153451

簡單的說,微服務是架構設計方式,分散式是系統部署方式,兩者概念不同

微服務是啥?

這裡不引用書本上的複雜概論了,簡單來說微服務就是很小的服務,小到一個服務只對應一個單一的功能,只做一件事。這個服務可以單獨部署執行,服務之間可以通過RPC來相互互動,每個微服務都是由獨立的小團隊開發,測試,部署,上線,負責它的整個生命週期。

微服務架構又是啥?

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

mark
那麼分散式又是啥?

分散式服務顧名思義服務是分散部署在不同的機器上的,一個服務可能負責幾個功能,是一種面向SOA架構的,服務之間也是通過rpc來互動或者是webservice來互動的。邏輯架構設計完後就該做物理架構設計,系統應用部署在超過一臺伺服器或虛擬機器上,且各分開部署的部分彼此通過各種通訊協議互動資訊,就可算作分散式部署,生產環境下的微服務肯定是分散式部署的,分散式部署的應用不一定是微服務架構的,比如叢集部署,它是把相同應用複製到不同伺服器上,但是邏輯功能上還是單體應用。

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