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