經(jīng)常聽到MySql集群、Redis集群、分布式系統(tǒng)等概念,但是,很少有機(jī)會深究,到底什么集群,什么是分布式?在概念上這倆個詞很接近,難道不需要區(qū)分?其實(shí),非常有必要區(qū)分這兩個概念,幫助我們對計(jì)算機(jī)的理論有更深入的理解。今天,我就嘗試去解釋一下這兩個概念。
定義的區(qū)別
計(jì)算機(jī)集群(英語:computer cluster)是一組松散或緊密連接在一起工作的計(jì)算機(jī)。由于這些計(jì)算機(jī)協(xié)同工作,在許多方面它們可以被視為單個系統(tǒng)。與網(wǎng)格計(jì)算機(jī)不同,計(jì)算機(jī)集群將每個節(jié)點(diǎn)設(shè)置為執(zhí)行相同的任務(wù),由軟件控制和調(diào)度。
維基百科的解釋,關(guān)鍵詞是:一組計(jì)算機(jī)、相同的任務(wù)。
分布式系統(tǒng)是一組電腦,透過網(wǎng)絡(luò)相互連接傳遞消息與通信后并協(xié)調(diào)它們的行為而形成的系統(tǒng)。[1]組件之間彼此進(jìn)行交互以實(shí)現(xiàn)一個共同的目標(biāo)。把需要進(jìn)行大量計(jì)算的工程數(shù)據(jù)分割成小塊,由多臺計(jì)算機(jī)分別計(jì)算,再上傳運(yùn)算結(jié)果后,將結(jié)果統(tǒng)一合并得出數(shù)據(jù)結(jié)論的科學(xué)。
維基百科的解釋,關(guān)鍵詞是:一組計(jì)算機(jī)、大計(jì)算分解。
集群和分布式,都是描述的一組計(jì)算機(jī)。集群的所有節(jié)點(diǎn)跑的是同樣的任務(wù),而分布式系統(tǒng)的節(jié)點(diǎn)跑的是分解后的任務(wù)。以修手機(jī)為例:維修一部手機(jī)要分為檢測、維修、測試三個環(huán)節(jié),為了提高效率,雇了10位工程師。如果每個工程師維修時,對每臺手機(jī)進(jìn)行檢測、維修和測試,這就是集群的工作方式。如果2位工程師負(fù)責(zé)檢測,5位工程師負(fù)責(zé)維修,剩下的3位工程師負(fù)責(zé)測試,這就是分布式的工作方式。
應(yīng)用中的區(qū)別
在工作中,有時候并沒有嚴(yán)格按照概念去理解這兩個詞。但是,回想一下什么時候用集群這個詞,Redis集群、MySql集群、Nginx集群等等,按照上述的定義分析,這些集群里的每個節(jié)點(diǎn),都是跑的同樣的業(yè)務(wù)。微服務(wù)平臺、云計(jì)算平臺,這些平臺的節(jié)點(diǎn)往往跑著不同的業(yè)務(wù),組成強(qiáng)大的能力對外提供服務(wù),這就是分布式系統(tǒng)。
集群的關(guān)鍵作用是提升并發(fā)處理能力。例如:一臺MySql數(shù)據(jù)庫不能滿足性能需求,通過分表分庫方案,部署多臺實(shí)例;一個Redis節(jié)點(diǎn)不足以支撐業(yè)務(wù),多個節(jié)點(diǎn)組成集群提高并發(fā)處理能力。但凡能夠組成集群的,往往都是職責(zé)單一,功能目標(biāo)明確的應(yīng)用。相對來說,集群化是簡單的,對服務(wù)幾乎無侵入的,通過入口分發(fā)負(fù)載,應(yīng)用與應(yīng)用之間是等價的、無感知的。
分布式的關(guān)鍵作用是解耦以便于快速迭代。單機(jī)版應(yīng)用能不能做的很強(qiáng)大、很復(fù)雜?當(dāng)然可以!十幾年前的SAP、Oracle ERP軟件,這些業(yè)務(wù)巨復(fù)雜的系統(tǒng),都是可以部署在一臺服務(wù)器上的。通過模塊化、SOA等設(shè)計(jì)理念,工程師們也可以協(xié)同工作寫出復(fù)雜的應(yīng)用。這些軟件可能一年才需要升級一次,但互聯(lián)網(wǎng)應(yīng)用幾乎每周都在發(fā)版升級,顯然這種開發(fā)模式在互聯(lián)網(wǎng)領(lǐng)域并不適用。通過把功能模塊拆分出來,部署在不同的節(jié)點(diǎn),按節(jié)點(diǎn)進(jìn)行升級,實(shí)現(xiàn)快速迭代。
通過上面的講述,這種理論模型的分布式,和真實(shí)的分布式還是不同。沒有誰見過分布式系統(tǒng)中的業(yè)務(wù)模塊,是單節(jié)點(diǎn)部署的。是的,沒有錯,現(xiàn)實(shí)中的分布式系統(tǒng),其實(shí)是分布式+集群的綜合體。這樣的模式,結(jié)合了兩者的優(yōu)勢,即實(shí)現(xiàn)了解耦,又做到了高并發(fā)能力,完美呼應(yīng)了互聯(lián)網(wǎng)對應(yīng)用的需求。其他的概念,高可用、一致性等,都是在分布式+集群的理念上,發(fā)展出來的解決具體問題的方法論。
總結(jié)
本文從概念入手,“性格分裂”式的剖析了集群和分布式。我認(rèn)為,這種剖析有利于理解概念,有利于理解“為什么”。在具體實(shí)踐中,不能把兩者對立起來,復(fù)雜的業(yè)務(wù)系統(tǒng),往往都是兩者的結(jié)合體。
針對我的理解,你有什么想說的嗎?歡迎拍磚。
-
集群
+關(guān)注
關(guān)注
0文章
88瀏覽量
17209 -
分布式
+關(guān)注
關(guān)注
1文章
924瀏覽量
74612
發(fā)布評論請先 登錄
相關(guān)推薦
分布式云化數(shù)據(jù)庫有哪些類型
基于ptp的分布式系統(tǒng)設(shè)計(jì)
HarmonyOS Next 應(yīng)用元服務(wù)開發(fā)-分布式數(shù)據(jù)對象遷移數(shù)據(jù)權(quán)限與基礎(chǔ)數(shù)據(jù)
分布式光纖測溫系統(tǒng)與傳統(tǒng)測溫有什么區(qū)別?
![<b class='flag-5'>分布式</b>光纖測溫系統(tǒng)與傳統(tǒng)測溫<b class='flag-5'>有</b><b class='flag-5'>什么區(qū)別</b>?](https://file1.elecfans.com//web1/M00/F3/D1/wKgaoWcfQjaADnaFAAdCj3pPc9E134.jpg)
分布式光纖測溫是什么?應(yīng)用領(lǐng)域是?
![<b class='flag-5'>分布式</b>光纖測溫是什么?應(yīng)用領(lǐng)域是?](https://file1.elecfans.com//web2/M00/0A/1D/wKgZomcZ93yAdS_nAATSUPhfr0s821.jpg)
安科瑞分布式光伏系統(tǒng)在某重工企業(yè)18MW分布式光伏中應(yīng)用
![安科瑞<b class='flag-5'>分布式</b>光伏系統(tǒng)在某重工企業(yè)18MW<b class='flag-5'>分布式</b>光伏中應(yīng)用](https://file1.elecfans.com/web2/M00/FE/1F/wKgaomaY0RKATnkVAAB9kGo65bk212.png)
EasyGo使用筆記丨分布式光伏集群并網(wǎng)控制硬件在環(huán)仿真應(yīng)用
遠(yuǎn)程IO與分布式IO的區(qū)別
分布式光伏發(fā)電有哪些優(yōu)點(diǎn)?分布式光伏發(fā)電有哪些應(yīng)用形式?
分布式能源是什么意思?分布式能源有什么優(yōu)勢?
HarmonyOS開發(fā)實(shí)例:【分布式數(shù)據(jù)服務(wù)】
![HarmonyOS開發(fā)實(shí)例:【<b class='flag-5'>分布式</b>數(shù)據(jù)服務(wù)】](https://file1.elecfans.com/web2/M00/CB/BB/wKgZomYf05KAaQOzAHd_wnoGpFw134.jpg)
HarmonyOS實(shí)戰(zhàn)案例:【分布式賬本】
![HarmonyOS實(shí)戰(zhàn)案例:【<b class='flag-5'>分布式</b>賬本】](https://file1.elecfans.com/web2/M00/C8/24/wKgZomYY8OKANfjsAAMAVHBzWLM112.jpg)
評論