分布式 和 集群 的區別

2021-08-23 14:33:18 字數 2203 閱讀 7178

分布式(distributed)是指在多台不同的伺服器中部署不同的服務模組,通過遠端呼叫協同工作,對外提供服務。

集群(cluster)是指在多台不同的伺服器中部署相同應用或服務模組,構成乙個集群,通過負載均衡裝置對外提供服務。

我和朋友來到一家小飯店,開始點菜:紅燒魚、糖醋排骨、酸辣土豆絲,好了就這麼多了。現在,我們和這家飯店之間的就是使用者和系統的關係。我們要求他給我們做出一頓豐盛的晚餐。我們不關心他後廚的一切事情。只要它能在短時間內提供美味的菜品就好了。我們對這個飯店提出來兩個要求:上菜時間短、菜品美味。除了這些,顧客可能還有其他要求,比如菜品要乾淨衛生、酸辣土豆絲可以多放些辣椒等。對映到計算機系統中,使用者提出的要求就是: 

上菜時間短   -> 效能

乾淨衛生 -> 安全性

菜品多放辣椒 -> 擴充套件性

菜品美味 -> 可用性

這家小飯店,只有乙個廚師。就是乙個集中式系統。

如果飯店內只有我們乙個顧客的話,以上幾條基本都可以滿足的。但是,如果到了晚飯時間,突然顧客變多了,這些顧客的要求可能就沒辦法全都滿足了。飯店內人滿為患,這家小飯店只有乙個廚師的情況下,他需要保證所有菜品美味、衛生,又要保證所有菜品可以準時準備好,又要給不同使用者滿足定製化要求。這種挑戰是及其大的。

以上,對映到計算機軟體中,也是一樣的。隨著業務量的增長,**的高可用、易伸縮、可擴充套件、安全等目標就會受到極大的挑戰。

隨著飯店的生意越來越好,老闆意識到只有乙個廚師會存在很大問題。首先,在客流量高峰期,乙個廚師無法滿足所有顧客的要求。其次,廚師變成了乙個單點,就是他不能生病,一旦他生病了,整個飯店就無法營業了。這可愁壞了老闆,一時之間不知道該如何是好了。但是,老闆有個聰明的老婆,他提了乙個建議。

這有什麼好發愁的?再僱傭幾個廚師就行了呀。然後,為了提高飯店的待客能力。老闆決定多僱傭幾個廚師。有了多個廚師了之後。店內顧客的點菜,就可以分配給後廚的多個廚師來做。具體如何分配,這就是需要一定的策略了。可以選擇分配給空閒的廚師、也可以按順序輪流分配。雖然,飯店有多個廚師,但是使用者並不知道這些事情,他只知道自己的點菜需求,可以得到滿足就可以了。他也不需要關心到底是哪位廚師給自己做的菜。除非菜品出現了質量問題時,就需要找到指定的廚師來問責了。

以上,對映到計算機軟體中,也是一樣的。集中式系統只有一台計算機提供服務,集群就是有多台計算機提供同樣的服務。使用者的請求通過負載均衡分配給集群中的各個機器。整個系統對於使用者來說就像是一台機器在提供服務一樣。

在飯店僱傭了多個廚師之後,飯店的服務能力確實提公升了很多。顧客也越來越多。但是,最近店內經常會有顧客投訴某個菜品的味道和自己之前吃到過的不一樣了。經過店長的仔細調查,發現是由於這家店的廚師除了要負責炒菜以外,還需要負責洗菜、切菜、備菜,甚至是刷碗。這就使得廚師沒辦法專注於炒菜了,他會被很多其他的瑣事而牽絆,導致無法專心炒菜,影響了菜品的質量。而且,由於最近店內的顧客也越來越多,幾個廚師還是忙不過來。這時候,老闆就要想辦法繼續提公升飯店的服務能力。他想著要繼續僱傭幾個廚師。還是飯店老闆那個聰明的老婆,又給他出了乙個更好的主意。僱傭乙個廚師多費錢啊,你用僱傭乙個廚師的錢,僱傭幾個洗菜工、配菜師不就行了麼。

這就是一種分布式的思想。通過把一件大的事情,拆分成多個小事情,分別交給不同的人來做。這樣術業有專攻,洗菜的可以把菜洗的更乾淨、廚師也可以專注炒菜,把菜炒的更加美味。飯店從多個廚師的配置,變成了多個洗菜工+配菜師+廚師的配置。這家飯店的服務能力大大提公升。再也沒有顧客投訴菜品問題了。對於顧客來說,他們還是不知道後廚的這些變化的,他甚至不知道自己點的菜是多個人配合的結果。

以上,對映到計算機軟體中,也是一樣的。除了通過集群部署的方式提公升系統能理外,還可以通過分布式部署的方式。把乙個大的系統拆分成多個子系統,每個子系統負責自己專注的事情,然後通過網路進行通訊和協調,對使用者來說,就像訪問的是同一臺機器一樣。

隨著飯店的發展,慢慢的從只有乙個廚師演變成有多個廚師,進而演變成有洗菜工、配菜師、廚師等多個職位。這個**架構發展也類似。**初期,只需要搭建乙個集中式的單體應用就可以了,如果業務量有很大增長,先考慮增加機器,通過集群部署提公升能力。接著,就可以考慮分布式了。

分布式和集群的區別

第一部分 分布式 1 最簡單的分布式就是大家最常用的,在負載均衡伺服器後加一堆web伺服器,然後在上面搞乙個快取伺服器來儲存臨時狀態,後面共享乙個 資料庫,其實很多號稱分布式專家的人也就停留於此,大致結構如下圖所示 這種環境下真正進行分布式的只是web server而已,並且web server之間...

分布式和集群的區別

分布式是個工作方式,乙個業務分拆多個子業務,部署在多個伺服器上,不同的伺服器節點完成不同的任務 分布式系統可能執行在乙個集群上,也可能執行在不屬於乙個集群的多台 2臺也算多台 機器上。集群是個物理形態,只要是一堆機器,物理集中 統一管理,就可以叫集群,他們是不是一起協作著幹活,這個誰也不知道 同乙個...

集群和分布式的區別

分享一下我老師大神的人工智慧教程吧。零基礎,通俗易懂!風趣幽默!多台伺服器組成的一組計算機,作為乙個整體存在,向使用者提供一組網路資源,這些單個的伺服器就是集群的節點。集群擁有以下兩個特點 1.可擴充套件性 集群的效能不限制於單一的服務實體,新的服務實體可以動態的新增到集群,從而增強集群的效能。2....