您現在的位置是:首頁 > 棋牌

分散式與叢集的區別到底是什麼?

  • 由 程式設計師嫻子 發表于 棋牌
  • 2023-02-04
簡介分散式任務處理服務:負責具體的業務邏輯處理分散式節點註冊和查詢:負責管理所有分散式節點的命名和物理資訊的註冊與查詢,是節點之間聯絡的橋樑分散式DB:分散式結構化資料存取分散式Cache:分散式快取資料(非持久化)存取分散式檔案:分散式檔案存

什麼是叢集

分散式

在IDF05(Intel Developer Forum 2005)上,Intel執行長Craig Barrett就取消4GHz晶片計劃一事,半開玩笑當眾單膝下跪致歉,給廣大軟體開發者一個明顯的訊號,單純依靠垂直提升硬體效能來提高系統性能的時代已結束,分散式開發的時代實際上早已悄悄地成為了時代的主流,吵得很熱的雲計算實際上只是包裝在分散式之外的商業概念,很多開發者(包括我)都想加入研究雲計算這個潮流,在google上透過“雲計算”這個關鍵詞來查詢資料,查到的都是些概念性或商業性的宣傳資料,其實真正需要深入的還是那個早以被人熟知的概念————

分散式

。分散式可繁也可以簡,最簡單的分散式就是大家最常用的,在負載均衡伺服器後加一堆web伺服器,然後在上面搞一個快取伺服器來儲存臨時狀態,後面共享一個數據庫,其實很多號稱分散式專家的人也就停留於此。分散式任務處理服務:負責具體的業務邏輯處理

分散式節點註冊和查詢:負責管理所有分散式節點的命名和物理資訊的註冊與查詢,是節點之間聯絡的橋樑

分散式DB:分散式結構化資料存取

分散式Cache:分散式快取資料(非持久化)存取

分散式檔案:分散式檔案存取

網路通訊:節點之間的網路資料通訊

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

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

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

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

叢集

叢集是個物理形態,分散式是個工作方式。

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

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

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

布式是相對中心化而來,強調的是任務在多個物理隔離的節點上進行。中心化帶來的主要問題是可靠性,若中心節點宕機則整個系統不可用,分散式除了解決部分中心化問題,也傾向於分散負載,但分散式會帶來很多的其他問題,最主要的就是一致性。

叢集就是邏輯上處理同一任務的機器集合,可以屬於同一機房,也可分屬不同的機房。分散式這個概念可以執行在某個集群裡面,某個叢集也可作為分散式概念的一個節點。

一句話,就是:“分頭做事”與“一堆人”的區別

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

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

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

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

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

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

例如:

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

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

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

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

分散式:

不同的業務模組部署在不同的伺服器上或者同一個業務模組分拆多個子業務,部署在不同的伺服器上,解決高併發的問題

叢集:

同一個業務部署在多臺機器上,提高系統可用性

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

分散式與叢集的區別到底是什麼?

Top