摘 要:針對企業信息系統在運行過程中出現阻塞的原因進行分析,得出通過負載均衡技術解決系統阻塞的結論,并對常見的幾種負載均衡技術進行闡述和對比。
關鍵詞:應用系統;阻塞;負載均衡
中圖分類號:PT391文獻標識碼:A
The Application of Balancing Technology in Enterprise Information Systems
SUN Yin,WANG Wenyong
(NINGXIA Electric Power Corporation SHIZHISHAN Power Supply Bureau,Shizuishan 753000,China)
Abstract:In this paper,the process of enterprise information systems run appear in the cause of obstruction.obtained through load balancing technology to solve the obstruction in the conclusions,and common of several load balancing techniques for the elaboration and contrast.
Key words:application system;obstruction;balancing technology
1 前 言
在現代企業中,信息已成為企業的生命線,信息資源是企業的一項重要財富,信息管理是企業管理的重要組成部分,信息系統已逐步應用到企業的各個領域中。目前,企業信息系統的建設大多采用“物理集中”的原則,即所以的數據庫服務器和應用服務器都安裝在市局或省局的中心機房中,這樣做的好處是系統便于維護和管理。但由于設備的高度集中,所以的用戶均在訪問某臺服務器,在訪問高峰的時候,很容易造成系統阻塞,導致服務中斷。某些重要系統一旦中斷,會嚴重影響供電企業的服務質量,如營銷系統中斷,會使所以的營業點不能正常售電和收費。因此,應該通過某種技術減少各應用系統的中斷次數,以提高系統的服務質量。
通過分析各服務器阻塞的原因,其中最主要的原因就是并發用戶太多,導致系統資源被占盡而出現阻塞。某些系統為解決這一問題,采用多臺Web服務器并行服務的方式,以緩解單臺服務器的壓力。但是這種方式同樣存在著兩個缺點。一、每臺服務器有自己的IP地址,用戶必須逐個去試著登錄,哪一臺正常就用哪臺,使用很不方便。二、在線的用戶不能分攤在各個服務器上,通常的情況是用戶都習慣性的登錄到服務器一上,而服務器二卻很空閑。等服務器一被阻塞而不能使用后,用戶才登錄到服務器二上。多臺服務器并行的方式之所以不能根本解決系統阻塞的問題,是因為不能智能地分配用戶到空閑的服務器上。如何在完成同樣功能的多個服務器之間實現合理的業務量分配,使之不致于出現一臺服務器過忙、而別的服務器卻未充分發揮處理能力的情況。負載均衡技術就是為了解決這一問題而產生的。
2 負載平衡技術概述
負載平衡(Load Balance),即把負載壓力根據某種算法合理分配到集群中的每一臺服務器上,以減輕單臺服務器的壓力,降低對單臺服務器的硬件和軟件要求。這種技術基于現有網絡結構,提供了一種擴展服務器帶寬和增加服務器吞吐量的廉價有效的方法,加強應用系統的服務處理能力,提高了系統的靈活性和可用性。
通過應用需求分析可以看出,我們通過負載均衡技術要解決的問題主要有以下三點:
* 多臺服務器并行,但為了方便用戶使用,只需提供一個網址。即一個網址可以指向多臺服務器。
* 將用戶智能地分配用戶到空閑的服務器上。
* 對服務器的監控達到應用級。
目前實現負載均衡技術的方式很多,比較常見的方式主要有DNS方式、Windows負載均衡方式和負載均衡器等幾種方式。
3 負載均衡技術詳解
3.1 DNS方式
通過DNS服務器實現網絡負載均衡是一種比較簡單的方法。配置方法是在DNS中為多個地址配置同一個名字,因而查詢這個名字的客戶機將得到其中一個地址,從而使得不同的客戶訪問不同的服務器,達到負載均衡的目的,邏輯結構圖如圖1。在DNS服務器的高級屬性中的“啟用循環”選項必須處于選中狀態,才能實現對各服務器的動態DNS輪詢方式。
圖1 使用DNS方式的應用系統模型圖
動態DNS輪詢實現起來簡單,無需復雜的配置和管理,是一種簡單而有效的方法,很有效地解決了我們提出的問題1,即實現了多臺服務器并行且通過一個網址訪問。 但是存在的缺點就是無法智能地分配用戶到應用服務器上。也無法得到應用服務器的運行狀態,即不能實現對服務器的應用進行監控。
由于DNS服務器不能區分應用服務器的性能差異,也不能反映應用服務器的當前運行狀態,只是盡量保證把用戶分配到不同的應用服務器上。例如,用戶A可能只是瀏覽新聞,而用戶B可能進行著大量的軟件下載,由于DNS服務器只是實現了簡單的輪流服務,很容易將用戶A的請求發往負載輕的服務器,而將用戶B的請求發往負載已經很重的服務器。
其次是DNS服務器不知道各應用服務器是否有效,例如該服務器操作系統正常,而WebServer已經停止,不能再提供服務了,DNS服務器依然會將域名解析到該服務器上,造成用戶訪問失敗。
3.2 Microsoft 群集服務方式
微軟公司在其網絡操作系統Windows 2003中提供了群集服務。微軟群集服務提供了三種支持群集的技術:網絡負載平衡 (NLB)、組件負載平衡 (CLB) 和 Microsoft 群集服務 (MSCS)。目前應用比較廣泛的是網絡負載平衡。
網絡負載平衡與DNS方式的共同點是提供指向具有相同服務的一系列應用服務器且實現同一地址訪問。不同的是,網絡負載平衡技術的實現首先是把各應用服務器配置成一個具有相同服務的服務器群集。群集內的各服務器網卡要把“網絡負載平衡”功能開啟,因為網絡負載平衡技術的實現原理主要是根據服務器網卡的流量來分配客戶的。其結構圖如圖2,當客戶有服務請求時,群集管理器根據各應用服務器反饋回來的信息判斷哪臺服務器處于空閑狀態,則把客房指向該臺服務器。如果群集內的服務器性能不同,在配置群集時還可以調節優先級和服務器的負荷量,把性能好的服務器設置的優先級高一些,負荷量大一些,以便條件相同的情況下群集管理器把性能高的服務器優先提供給用戶。
圖2 使用Microsoft群集服務方式的應用系統模型圖
由上可見,網絡負載平衡方式已經可以實現智能地分配用戶到空閑的服務器上。但是群集管理器對應用系統的狀態的監視僅僅達到了網絡層和傳輸層,仍然不能達到第七層應用控制。這就引出了高層協議負載均衡——負載均衡器。
3.3 負載均衡器
負載均衡器可以根據實際的響應時間制定優先級交付決策,從而實現高性能、智能化流量管理,達到最佳的服務器群集性能。由于負載均衡器采用了ISO應用層的差錯控制和流量管理技術,從而可以偵測到一些服務器上應用系統的錯誤信息,并透明地將會話重定向到另一個服務器,使用戶順利地進行使用。這樣不但可以實現差錯控制,提高應用系統的可用率,還可以控制減少通信高峰期的錯誤訊息。例如,服務器1上的WebServer出現錯誤,已停止服務,錯誤信息將會及時反饋到負載均衡器上。然后負載均衡器會將客戶的訪問指向其他服務器去。對用戶來說,整個訪問過程是透明的,用戶只需要正確鍵入系統的網址即可,并不需要知道該系統有幾臺服務器,哪臺在線。可見,負載均衡器可以很好地滿足我們需求分析中提出的三個要求。
此外,一些智能化的負載均衡器能夠偵測到像數據庫錯誤、服務器不可用等信息,從而采取措施使會話恢復和重定向服務器,業務能夠得以順利進行。還可以通過多種信息渠道(郵件、日志或短信)通知信息管理員來及時查看和修復有問題的服務器。多路負載均衡器可以同時連接多個應用服務。如在負載均衡器上可以連接n個營銷服務器,再連接n個生產服務器,它們的應用互不影響。多路負載均衡器可以減小投資。
4 結束語
以上負載均衡技術中DNS方式和Windows負載均衡方式都是以軟件的方式實現的,不需要另外增加硬件投入,也比較容易實現。而負載均衡器方式則需要購置硬件,但這種方式是三種負載均衡方式中性能最好的一種。隨著企業信息技術的發展,信息系統的使用很越來越頻繁,對系統的服務能力的要求也越來越高,負載均衡技術必然要應用到各系統中。希望本文能對負載均衡技術的應用起到一定的參考價值。
參考文獻
[1] 王達.網絡設計師[M].北京:中國民航出版社,203.
[2] 黃永峰,黃旭,劉源源.Windows Server 2003組網技術[M].北京:機械工業出版社,2003:88.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文