分佈式與集羣的區別是什麼?

原文鏈接:https://www.cnblogs.com/qlqwjy/p/7851308.html

分佈式與集羣的區別是什麼?

        </h1>
        <div class="clear"></div>
        <div class="postBody">

分佈式可繁也可以簡,最簡單的分佈式就是大家最常用的,在負載均衡服務器後加一堆web服務器,然後在上面搞一個緩存服務器來保存臨時狀態,後面共享一個數據庫,其實很多號稱分佈式專家的人也就停留於此,大致結構如下圖所示:

這種環境下真正進行分佈式的只是web server而已,並且web server之間沒有任何聯繫,所以結構和實現都非常簡單。

有些情況下,對分佈式的需求就沒這麼簡單,在每個環節上都有分佈式的需求,比如Load Balance、DB、Cache和文件等等,並且當分佈式節點之間有關聯時,還得考慮之間的通訊,另外,節點非常多的時候,得有監控和管理來支撐。這樣 看起來,分佈式是一個非常龐大的體系,只不過你可以根據具體需求進行適當地裁剪。按照最完備的分佈式體系來看,可以由以下模塊組成:

分佈式任務處理服務:負責具體的業務邏輯處理

分佈式節點註冊和查詢:負責管理所有分佈式節點的命名和物理信息的註冊與查詢,是節點之間聯繫的橋樑

分佈式DB:分佈式結構化數據存取

分佈式Cache:分佈式緩存數據(非持久化)存取

分佈式文件:分佈式文件存取

網絡通信:節點之間的網絡數據通信

監控管理:蒐集、監控和診斷所有節點運行狀態

分佈式編程語言:用於分佈式環境下的專有編程語言,比如Elang、Scala

分佈式算法:爲解決分佈式環境下一些特有問題的算法,比如解決一致性問題的Paxos算法

因此,若要深入研究雲計算和分佈式,就得深入研究以上領域,而這些領域每一塊的水都很深,都需要很底層的知識和技術來支撐,所以說,對於想提升技術的開發者來說,以分佈式來作爲切入點是非常好的,可以以此爲線索,探索計算機世界的各個角落。

 
集羣是個物理形態,分佈式是個工作方式。

只要是一堆機器,就可以叫集羣,他們是不是一起協作着幹活,這個誰也不知道;一個程序或系統,只要運行在不同的機器上,就可以叫分佈式,嗯,C/S架構也可以叫分佈式。

集羣一般是物理集中、統一管理的,而分佈式系統則不強調這一點。


所以,集羣可能運行着一個或多個分佈式系統,也可能根本沒有運行分佈式系統;分佈式系統可能運行在一個集羣上,也可能運行在不屬於一個集羣的多臺(2臺也算多臺)機器上。

 

 
布式是相對中心化而來,強調的是任務在多個物理隔離的節點上進行。中心化帶來的主要問題是可靠性,若中心節點宕機則整個系統不可用,分佈式除了解決部分中心化問題,也傾向於分散負載,但分佈式會帶來很多的其他問題,最主要的就是一致性。
集羣就是邏輯上處理同一任務的機器集合,可以屬於同一機房,也可分屬不同的機房。分佈式這個概念可以運行在某個集羣裏面,某個集羣也可作爲分佈式概念的一個節點。
一句話,就是:“分頭做事”與“一堆人”的區別
 


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

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

舉例:就比如新浪網,訪問的人多了,他可以做一個羣集,前面放一個響應服務器,後面幾臺服務器完成同一業務,如果有業務訪問的時候,響應服務器看哪臺服務器的負載不是很重,就將給哪一臺去完成。

而分佈式,從窄意上理解,也跟集羣差不多, 但是它的組織比較鬆散,不像集羣,有一個組織性,一臺服務器垮了,其它的服務器可以頂上來。

分佈式的每一個節點,都完成不同的業務,一個節點垮了,哪這個業務就不可訪問了。

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

例如:

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

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

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


集羣一般被分爲三種類型,高可用集羣如RHCS、LifeKeeper等,負載均衡集羣如LVS等、高性能運算集羣;分佈式應該是高性能運算集羣範疇內。

 
 
分佈式:不同的業務模塊部署在不同的服務器上或者同一個業務模塊分拆多個子業務,部署在不同的服務器上,解決高併發的問題
集羣:同一個業務部署在多臺機器上,提高系統可用性
 
 
 
 
 

小飯店原來只有一個廚師,切菜洗菜備料炒菜全乾。後來客人多了,廚房一個廚師忙不過來,又請了個廚師,兩個廚師都能炒一樣的菜,這兩個廚師的關
系是集羣。爲了讓廚師專心炒菜,把菜做到極致,又請了個配菜師負責切菜,備菜,備料,廚師和配菜師的關係是分佈式,一個配菜師也忙不過來了,又請了個配菜
師,兩個配菜師關係是集羣

【當你用心寫完每一篇博客之後,你會發現它比你用代碼實現功能更有成就感!】
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章