集群、負載均衡及分布式系統架構


1.集群

1.1 定義:

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

是一組連在一起的計算機,從外部看它是一個系統,各節點可以是不同的操作系統或不同硬件構成的計算機。如一個提供Web服務的集群,對外界來看是一個大Web服務器。不過集群的節點也可以單獨提供服務。

1.2 負載均衡系統:

集群中所有的節點都處於活動狀態,它們分攤系統的工作負載。一般Web服務器集群、數據庫集群和應用服務器集群都屬於這種類型。

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

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

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

2.負載均衡系統

先從集群講起

負載均衡又有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是目標之一。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM