1. 程式人生 > >分散式及叢集個人理解

分散式及叢集個人理解

一句話:分散式是並聯工作的,叢集是串聯工作的。

分散式:一個業務分拆多個子業務,部署在不同的伺服器上
叢集:同一個業務,部署在多個伺服器上

叢集是個物理形態,分散式是個工作方式。
只要是一堆機器,就可以叫叢集,他們是不是一起協作著幹活,這個誰也不知道;一個程式或系統,只要執行在不同的機器上,就可以叫分散式,嗯,C/S架構也可以叫分散式。
叢集一般是物理集中、統一管理的,而分散式系統則不強調這一點。
所以,叢集可能執行著一個或多個分散式系統,也可能根本沒有執行分散式系統;分散式系統可能執行在一個叢集上,也可能執行在不屬於一個叢集的多臺(2臺也算多臺)機器上。


1:分散式是指將不同的業務分佈在不同的地方。 而叢集指的是將幾臺伺服器集中在一起,實現同一業務。

分散式中的每一個節點,都可以做叢集。 而叢集並不一定就是分散式的。

2:簡單說,分散式是以縮短單個任務的執行時間來提升效率的,而叢集則是通過提高單位時間內執行的任務數來提升效率。

例如:      

如果一個任務由10個子任務組成,每個子任務單獨執行需1小時,則在一臺伺服器上執行該任務需10小時。

採用分散式方案,提供10臺伺服器,每臺伺服器只負責處理一個子任務,不考慮子任務間的依賴關係,執行完這個任務只需一個小時。(這種工作模式的一個典型代表就是Hadoop的Map/Reduce分散式計算模型)

而採用叢集方案,同樣提供10臺伺服器,每臺伺服器都能獨立處理這個任務。假設有10個任務同時到達,10個伺服器將同時工作,1小時後,10個任務同時完成,這樣,整身來看,還是1小時內完成一個任務!