1. 程式人生 > >叢集、負載均衡、分散式的區別與聯絡

叢集、負載均衡、分散式的區別與聯絡

下面就我的理解簡單通俗的介紹下三者的區別:

1.叢集

  叢集是個物理概念,是指同一個系統,部署在多臺伺服器上,將很多伺服器集中起來一起進行同一種服務,在客戶端看來就像是隻有一個伺服器。叢集可以利用多個計算機進行平行計算從而獲得很高的計算速度,也可以用多個計算機做備份,從而使得任何一個機器壞了整個系統還是能正常執行。

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

2.負載均衡

  至於叢集伺服器之間如何分工,需要引入負載均衡的概念了,負載均衡是指將請求分攤到多個操作單元也就是分開部署的伺服器上,nginx

是常用的反向代理伺服器,可以用來做負載均衡。叢集與負載均衡之間有緊密聯絡,可以結合理解。

3.分散式

  分散式側重將一個系統拆分成多個業務單元,例如一個入口網站裡面可能有登入、視訊、圖片等,每一個都可以拆分出來獨立部署,而且每一個都可以弄成叢集,視訊服務叢集,圖片服務叢集,主系統可以對這些子系統進行呼叫,子系統之間可以有呼叫關係也可以沒有,看實際業務情況。

今天看到個通俗的例子,大家可以借鑑下:

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

補充:最常見的三種叢集型別:負載均衡叢集、高可用性叢集、高效能也就科學叢集。

1)負載均衡叢集(LB:load balancing)

負載均衡叢集為企業需求提供了更實用的系統。如名稱所暗示的,該系統使負載可以在計算機叢集中儘可能平均地分攤處理。該負載可能是需要均衡的應用程式處理負載或網路流量負載。這樣的系統非常適合於運行同一組應用程式的大量使用者。每個節點都可以處理一部分負載,並且可以在節點之間動態分配負載,以實現平衡。對於網路流量也是如此。通常,網路伺服器應用程式接受了太多入網流量,以致無法迅速處理,這就需要將流量傳送給在其它節點上執行的網路伺服器應用。還可以根據每個節點上不同的可用資源或網路的特殊環境來進行優化

2)高可用性叢集(HA:High Availability)

高可用性叢集的出現是為了使叢集的整體服務儘可能可用,以便考慮計算硬體和軟體的易錯性。如果高可用性叢集中的主節點發生了故障,那麼這段時間內將由次節點代替它。次節點通常是主節點的映象,所以當它代替主節點時,它可以完全接管其身份,並且因此使系統環境對於使用者是一致的。

在叢集的這三種基本型別之間,經常會發生混合與交雜。於是,可以發現高可用性叢集也可以在其節點之間均衡使用者負載,同時仍試圖維持高可用性程度。同樣,可以從要編入應用程式的叢集中找到一個並行叢集,它可以在節點之間執行負載均衡。儘管集群系統本身獨立於它在使用的軟體或硬體,但要有效執行系統時,硬體連線將起關鍵作用。

3)高效能叢集(HP:High Performance)

通常,第一種涉及為叢集開發並行程式設計應用程式,以解決複雜的科學問題。這是平行計算的基礎,儘管它不使用專門的並行超級計算機,這種超級計算機內部由十至上萬個獨立處理器組成。但它卻使用商業系統,如通過高速連線來連結的一組單處理器或雙處理器 PC,並且在公共訊息傳遞層上進行通訊以執行並行應用程式。因此,您會常常聽說又有一種便宜的 Linux 超級計算機問世了。但它實際是一個計算機叢集,其處理能力與真的超級計算機相等,通常一套象樣的叢集配置開銷要超過 $100,000。這對一般人來說似乎是太貴了,但與價值上百萬美元的專用超級計算機相比還算是便宜的。