分散式系統

是什麼

分散式系統是透過網路連接的自主運算單元的集合,從使用者角度來看是一個單一的一致性系統。 這些一般被稱為節點的元件可以是硬體設備(例如計算機、行動電話)或是軟體行程。 節點經由程式設計以達到一個共同目標,為了協作,它們透過網路交換訊息。

解決的問題

現今大多數的現代化應用程式都非常龐大,需要以超級計算機去運行。像是 Gmail 或是 Netflix。 沒有一台計算機足夠強大到可以承載整個應用程式。 藉由連接多台計算機,運算能力可以變得接近無限大。 如果沒有分散式運算,許多我們目前依賴的應用程式將無法運作。

傳統上,系統可以垂直擴展。也就是在單一機器上增加更多 CPU 或記憶體。 垂直擴展相當耗時、需要停機,而且很快就會達到極限。

如何幫助我們

分散式系統允許水平擴展(例如在需要時對系統增加更多節點)。 這樣可以自動化並允許系統處理突然增加的工作負載或資源消耗。

非分散式系統將自身曝露在故障的風險中,因為如果一台機器故障,整個系統就會故障。 分散式系統可以被設計成,即使一些機器發生故障,整個系統仍然可以保持運作並產生相同結果。