集羣、負載均衡及分佈式系統架構

1.集羣

1.1 定義:

是一組獨立的計算機系統構成一個鬆耦合的多處理器系統,它們之間經過網絡實現進程間的通訊。應用程序能夠經過網絡共享內存進行消息傳送,實現分佈式計算機。linux

是一組連在一塊兒的計算機,從外部看它是一個系統,各節點能夠是不一樣的操做系統或不一樣硬件構成的計算機。如一個提供Web服務的集羣,對外界來看是一個大Web服務器。不過集羣的節點也能夠單獨提供服務。算法

1.2 負載均衡系統:

集羣中全部的節點都處於活動狀態,它們分攤系統的工做負載。通常Web服務器集羣、數據庫集羣和應用服務器集羣都屬於這種類型。數據庫

負載均衡集羣通常用於相應網絡請求的網頁服務器,數據庫服務器。這種集羣能夠在接到請求時,檢查接受請求較少,不繁忙的服務器,並把請求轉到這些服務器上。從檢查其餘服務器狀態這一點上看,負載均衡和容錯集羣很接近,不一樣之處是數量上更多。apache

1.3 集羣系統主要解決下面幾個問題:

  • 高可靠性(HA):利用集羣管理軟件,當主服務器故障時,備份服務器可以自動接管主服務器的工做,並及時切換過去,以實現對用戶的不間斷服務。
  • 負載均衡:即把負載壓力根據某種算法合理分配到集羣中的每一臺計算機上,以減輕主服務器的壓力,下降對主服務器的硬件和軟件要求
    高性能計算(HP):即充分利用集羣中的每一臺計算機的資源,實現複雜運算的並行處理,一般用於科學計算領域,好比基因分析,化學分析等。

2.負載均衡系統

先從集羣講起tomcat

負載均衡又有DNS負載均衡(比較經常使用)、IP負載均衡、反向代理負載均衡等,也就是在集羣中有服務器A、B、C,它們都是互不影響,互不相干的,任何一臺的機器宕了,都不會影響其餘機器的運行,當用戶來一個請求,有負載均衡器的算法決定由哪臺機器來處理,假如你的算法是採用round算法,有用戶a、b、c,那麼分別由服務器A、B、C來處理;服務器

2.1基於DNS的負載均衡

經過DNS服務中的隨機名字解析來實現負載均衡,在DNS服務器中,能夠爲多個不一樣的地址配置同一個名字,而最終查詢這個名字的客戶機將在解析這個名字時獲得其中一個地址。所以,對於同一個名字,不一樣的客戶機會獲得不一樣的地址,他們也就訪問不一樣地址上的Web服務器,從而達到負載均衡的目的。網絡

2.2反向代理負載均衡 (如Apache+JK2+Tomcat這種組合)

使用代理服務器能夠將請求轉發給內部的Web服務器,讓代理服務器將請求均勻地轉發給多臺內部Web服務器之一上,從而達到負載均衡的目的。這種代理方式與普通的代理方式有所不一樣,標準代理方式是客戶使用代理訪問多個外部Web服務器,而這種代理方式是多個客戶使用它訪問內部Web服務器,所以也被稱爲反向代理模式。負載均衡

2.3基於NAT(Network Address Translation)的負載均衡技術 (如Linux Virtual Server,簡稱LVS)

網絡地址轉換爲在內部地址和外部地址之間進行轉換,以便具有內部地址的計算機能訪問外部網絡,而當外部網絡中的計算機訪問地址轉換網關擁有的某一外部地址時,地址轉換網關能將其轉發到一個映射的內部地址上。所以若是地址轉換網關能將每一個鏈接均勻轉換爲不一樣的內部服務器地址,此後外部網絡中的計算機就各自與本身轉換獲得的地址上服務器進行通訊,從而達到負載分擔的目的。分佈式

3.分佈式是指將不一樣的業務分佈在不一樣的地方。

而集羣指的是將幾臺服務器集中在一塊兒,實現同一業務。 分佈式中的每個節點,均可以作集羣。 而集羣並不必定就是分佈式的。性能

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

分佈式,從窄意上理解,也跟集羣差很少, 可是它的組織比較鬆散,不像集羣,有一個組織性,一臺服務器垮了,其它的服務器能夠頂上來。 分佈式的每個節點,都完成不一樣的業務,一個節點垮了,哪這個業務就不可訪問了。

在羣集的這三種基本類型之間,常常會發生交叉、混合。好比:在高可用性的羣集系統中也能夠在其節點之間實現負載均衡,同時仍然維持着其高可用性。還有一種歸納性說法:cluster是手段,load banlance是目標之一。

相關文章
相關標籤/搜索