「分散式」「集群」「雲計算」三者是什麼區別呢?


分布與集中是相對的概念,可以是邏輯的,也可以是物理的,它是一個更通用的概念。

集群,特指用網路把計算結點連接起來的一種系統或者計算方式,正是因為結點的計算能力與網路的性能都有近似摩爾定律的增長趨勢,導致這一系統或計算方式的性價比大幅提升,才使得集群方式迅速得到推廣與普及。

所謂雲計算,根本上說就是利用虛擬化技術,可以大幅提升了資源的利用率,從而使這種計算方式得到推廣普及。它雖然是分布的,但是在一定程度上較PC計算來說又是一種資源的集中


集群是分散式系統的構造方式之一,

分散式計算應用會部署在分散式系統上,

雲計算透明化了分散式系統的複雜性


其實這三者,都有關聯,都有區別。分散式,一個任務,分解運行。集群,若干個任務,集合運行。雲計算,如果規模夠大,可以把前兩者取代。簡單說,如果雲計算規模夠大,用錢砸,可以把分散式取代。無非就是購買運行資源和時間的問題。目前,雲計算想取代集群還有困難。集群,最典型的應用就是超算。雲算想取代超算的話,錢多,砸。全世界各地建立超大規模的雲計算中心,然後再融合到一起,形成超算。不過,這就是又回到了分布。哈哈。


關於「分散式」和「集群」的區別,分散式與集群的區別是什麼? 這個問題有不少精彩的回復,可以參考。通俗地說,前者是多台機器做一個大活的不同分工環節,後者是多台機器共同做一樣的活,可以視為一台計算機。

一個雲計算平台,就是通過一套軟體系統把分散式部署的資源集中調度使用。要應對大並發,要實現高可用,既需要分散式,也離不開集群。比如負載均衡,如果只是一台伺服器,這台宕機了就完蛋了。分散式的難點,就是很多機器做存在依賴關係的不同活兒,這些活兒需要的資源、時間區別可能很大,某些機器還可能罷工,要怎麼樣才能協調好,做到效率最高,消耗最少,不出錯。

需要注意的是,雲計算的彈性伸縮,不只是資源的問題,更需要應用的支持,所以雲上的應用怎麼設計才能發揮雲計算的優勢,比如一個電商系統,怎麼拆分給不同的節點來支撐,是一門大學問,也就是雲原生應用的構建,具體可以參考網易雲出品的《雲原生應用架構實踐》。


雲計算是基於互聯網的相關服務的增加、使用和交付模式,通過互聯網向用戶提供動態易擴展、虛擬化的資源。

伺服器集群是物理資源,將很多伺服器集中起來一起進行同一種服務,在客戶端看來就好像只有一個伺服器。

雲計算是基於伺服器集群來實現的,通過軟體手段將伺服器集群池化,並進行統一管理和調度,對外提供具有可彈性伸縮、按需計費、高可用、高安全等特性的雲服務。


建議你仔細看看概念對相對應的軟體作品你大概就懂了:

分散式運算-------Boinc(http://boinc.berkeley.edu/)

集群運算----------Sun-grid-engine(http://oracle.com/us/produc...)

雲運算------------openstack(http://www.openstack.org/)

PS:不要去相信媒體或銷售給你的灌輸給你的那些有關雲運算的不實信息,很多功能都被誇大。


分散式與集群,是可以進行對比的,主要是對立關係,分散式,是一個主業務拆分為多個子業務,集群是專人專做。

舉個例子來說,集群好比是工廠操作員與操作員的關係,分散式好比是多能工與多能工的關係,這麼說應該很明白了。

至於說雲計算,那就容易理解了,雲計算主要是為了能讓人們方便、快捷地自助使用遠程計算資源,雲計算與大數據成就了人工智慧,有必要細讀一下雲計算技術,究竟與我們的工作和生活有什麼聯繫? - 雲計算 多智時代


以賣火車票為例說明一下。

分散式是指既可以在火車站售票廳賣,也可以在大街小巷的代售點賣。不同節點可以功能相同,也可以不同(代售點可買票的類型會少些),但都是為賣票服務的。你可以在東城區買票,也可以在西城區買票,體驗差不多。

集群是指火車站售票大廳一字排開十幾個窗口賣票,每個窗口乾的是一樣的事情,合在一起是為了提供更大的賣票能力。也可以說集群是分散式的一個特例。

雲計算就是通過12306電話系統或網站賣票,這種情況下你見不到售票員,也不關心是誰具體把票賣給你的,關鍵是通過一個特定的入口享受到具體的服務。雲計算的後台,當然是既有分散式又有集群了,不過用戶不care。


推薦閱讀:

請問有沒有分散式系統、並行計算的優秀網站,期刊,論壇,課程,以及函數庫?
有什麼關於pregel的論文或者演算法值得一讀?
Paxos、Raft演算法當前階段比較穩定的,經過生產環境驗證的開源實現有哪些?
CAP理論中的P到底是個什麼意思?
拜占庭將軍問題確保系統正常為什麼需要2k+1個正常節點?

TAG:雲計算 | 分散式系統 | 伺服器集群 | 分散式 |