分散式

海角在眼前發表於2018-05-13

前言

瞭解什麼是分散式,得先了解應用系統的分層和分割。

分層

分層是將系統在橫向維度上切分成幾個部分,每個部分負責比較單一的職責,然後通過上層對下層的依賴和呼叫組成一個完整的系統。網站軟體系統可分層為應用層、服務層、資料層。

應用層:負責具體業務和檢視展示。(可再細分為檢視層和業務邏輯層)

服務層:為應用層提供服務支援。(可再細分為資料介面層和邏輯處理層)

資料層:提供資料儲存訪問服務。

PS:禁止跨層次呼叫和逆向呼叫。

分割

分割是將系統在縱向維度上進行切分,將不同的功能和服務分割開來,包裝成高內聚低耦合的模組單元,我們常說的微服務就是這樣。

分散式

分散式部署是將不同模組(分層、分割後的模組)部署在不同的伺服器上,通過遠端呼叫協調工作。與負載均衡區別在於,負載均衡叢集上的伺服器的內容是相同的,而分散式叢集上的是不同的。

優點

1、可以使用更多計算機資源,能夠處理併發訪問和資料量更大。

缺點

1、分散式服務呼叫必須通過網路,可能對效能影響大。

2、越多伺服器,某一機器當機,可能導致很多應用不可用。

3、開發管理維護複雜性、難度更高。

常用的分散式方案

1、分散式應用和服務

將分層和分割後的應用和服務模組分散式部署。

2、分散式靜態資源

網站靜態資源如JS、CSS、Logo圖片等資源獨立分散式部署。

3、分散式資料和儲存

海量資料進行分散式儲存。

PS:各種NOSQL產品幾乎都是分散式的。

4、分散式計算

業務計算規模非常大的,使用Hadoop及其MapReduce分散式計算框架進行批處理計算。

5、分散式快取

分散式快取將資料快取在一個專門的分散式快取叢集中,應用程式通過網路通訊訪問快取資料。

6、分散式檔案系統 

相關文章