一分鐘理解分布式和集群
先給出我理解的定義分布式是一組通過網絡互連的計算機組成的系統(tǒng);集群是指為完成一個或者一組相關任務的分布式系統(tǒng)。
上圖是分布式的架構,四個節(jié)點相互連接;分布式只是表達一種拓撲關系不涉及到具體的業(yè)務。
現在為抽象的拓撲結構疊加上應用(讓它可以實際工作起來),比如其中一臺機器承擔負載均衡的角色。這就是集群——即,為完成實際的任務而互聯(lián)的一組計算機。
一般來說有幾類“任務”(目標):
- 高可用,其中一臺服務器掛掉不影響整個系統(tǒng)的正常運行。比如 Keepalived
- 負載均衡,工作負載被分配到不同機器上執(zhí)行。比如 LVS
- 高性能計算,對一個大任務分解,利用多個節(jié)點的資源組合完成計算。比如 Hadoop
- 網格計算,以共享存儲為基礎,多個節(jié)點共同完成計算任務。在這個結構中所有節(jié)點都是對等的。比如 Oracle RAC。
我們常說的 Master Slave 架構其實是一種集群架構模式,上面列表中的高可用、負載均衡、高性能計算都屬于這種架構模式。
簡單來說:分布式是一個抽象概念,集群是具體實現。一個集群系統(tǒng)一定是分布式的,而分布式未必是集群(比如互聯(lián)網是分布式系統(tǒng),但是它不是集群)。
【本文是51CTO專欄作者“邢森”的原創(chuàng)文章,轉載請聯(lián)系作者本人獲取授權】