前言 瞭解什麼是分散式,得先瞭解應用系統的分層和分割。 分層 分層是將系統在橫向維度上切分成幾個部分,每個部分負責比較單一的職責,然後通過上層對下層的依賴和調用組成一個完整的系統。網站軟體系統可分層為應用層、服務層、數據層。 應用層:負責具體業務和視圖展示。(可再細分為視圖層和業務邏輯層) 服務層: ...
前言
瞭解什麼是分散式,得先瞭解應用系統的分層和分割。
分層
分層是將系統在橫向維度上切分成幾個部分,每個部分負責比較單一的職責,然後通過上層對下層的依賴和調用組成一個完整的系統。網站軟體系統可分層為應用層、服務層、數據層。
應用層:負責具體業務和視圖展示。(可再細分為視圖層和業務邏輯層)
服務層:為應用層提供服務支持。(可再細分為數據介面層和邏輯處理層)
數據層:提供數據存儲訪問服務。
PS:禁止跨層次調用和逆向調用。
分割
分割是將系統在縱向維度上進行切分,將不同的功能和服務分割開來,包裝成高內聚低耦合的模塊單元,我們常說的微服務就是這樣。
分散式
分散式部署是將不同模塊(分層、分割後的模塊)部署在不同的伺服器上,通過遠程調用協調工作。與負載均衡區別在於,負載均衡集群上的伺服器的內容是相同的,而分散式集群上的是不同的。
優點
1、可以使用更多電腦資源,能夠處理併發訪問和數據量更大。
缺點
1、分散式服務調用必須通過網路,可能對性能影響大。
2、越多伺服器,某一機器宕機,可能導致很多應用不可用。
3、開發管理維護複雜性、難度更高。
常用的分散式方案
1、分散式應用和服務
將分層和分割後的應用和服務模塊分散式部署。
2、分散式靜態資源
網站靜態資源如JS、CSS、Logo圖片等資源獨立分散式部署。
3、分散式數據和存儲
海量數據進行分散式存儲。
PS:各種NOSQL產品幾乎都是分散式的。
4、分散式計算
業務計算規模非常大的,使用Hadoop及其MapReduce分散式計算框架進行批處理計算。
5、分散式緩存
分散式緩存將數據緩存在一個專門的分散式緩存集群中,應用程式通過網路通信訪問緩存數據。
6、分散式文件系統