?

云計算環境下中間件的負載均衡機制研究

2014-05-04 08:05馮文龍黃夢醒
計算機工程與設計 2014年4期
關鍵詞:計算環境中間件利用率

周 源,馮文龍,黃夢醒

(海南大學 信息科學技術學院,海南 ???70100)

0 引 言

目前云計算安全研究主要集中在云資源安全,數據安全,和用戶接入控制等方面,而對云服務系統的主要構件中間件的安全研究很少。中間件的可靠性是云服務系統安全運行的前提。在云計算環境下,中間件的安全包括很多方面,而實現安全中間件的最基本最首要的條件就是要做到負載均衡。

目前,在云計算環境下的負載均衡機制大部分都是基于云資源的,這樣的負載均衡機制在一些架構相對簡單的云服務系統確實能夠實現很好的均衡效果,但是卻不適用于基于中間件的復雜的云服務系統。本文提出的云計算環境下基于中間件的負載均衡機制充分考慮了云服務系統的特點,實現了更細粒度的負載均衡。

1 中間件負載均衡機制總體設計

云服務系統的體系結構如圖1所示。

圖1 云服務系統體系結構

中間件是云服務系統的業務邏輯組件,處于數據層之上,為客戶端提供服務。在這里,云資源指在物理資源的基礎上,通過虛擬化技術得到的一系列虛擬資源。

本文基于圖1所示的云服務系統的體系結構,提出了一種中間件負載均衡機制。首先建立一種基于中間件的監控模型,在監控模型中監控影響中間件負載的參數,周期性獲取各個參數的值,并對各個參數的值進行加權計算后及時將計算結果向對應的中間件處理機反饋。其次,建立一種基于中間件的負載均衡結構模型,并根據這個結構模型使用適當的均衡算法,實現各個中間件的均衡,保障云服務系統的安全可靠。中間件負載均衡機制總體設計如圖2所示。

圖2 中間件負載均衡機制總體設計

2 監控模型設計

2.1 監控模型

云計算環境下基于中間件的負載均衡算法的實現,首先要確定負載的定義,這里負載指用戶的服務請求,然后要確定影響負載的參數,并建立一個監控機制來獲取這些參數的值。為了準確地描述中間件的負載,選擇虛擬服務器的CPU利用率、內存利用率、網絡利用率和中間件的處理能力、連接利用率作為影響中間件負載的參數:

(1)虛擬服務器是云服務系統架構的基礎設施,所以云服務系統的性能必然與虛擬服務器的配置有關。因此選擇虛擬服務器的CPU利用率、內存利用率、網絡利用率作為影響中間件負載的參數。

(2)由于部署云服務系統的中間件時,很可能采用不同的中間件技術,比如部署一個web系統的中間件時,應用服務器有的使用Jboss,有的使用Weblogic,這樣會使得中間件的處理能力存在很大差別。另外,即便是使用同樣的中間件技術,比如一個web系統的中間件都是Weblogic,但是根據部署系統的實際需求購買的Weblogic的版本不同,這種情況下中間件的處理能力也是可能存在差異的。因此選擇中間件的處理能力作為影響中間件負載的參數。

(3)由于軟件本身的限制,中間件一般只能進行一定數量的連接,因此就可能出現這樣的情況,虛擬服務器的CPU利用率、內存利用率、網絡利用率還不高,但是中間件的連接已經超負荷了,在這種情況下,中間件處理機是不能將用戶的服務請求轉發給這個中間件的。因此選擇中間件的連接利用率作為影響中間件負載的參數。

從提高系統性能、增加網絡吞吐量、縮短中間件平均響應時間等方面考慮,云計算環境下基于中間件的監控模型如圖3所示,主要分為:①中間件處理機的均衡算法模塊:主要通過一種均衡算法將各個中間件反饋過來的負載信息進行處理,并根據該均衡算法轉發服務請求到各個中間件。②中間件處理機的監控模塊:主要用來周期性檢測其管理的中間件的可用性。③中間件的負載收集模塊:主要用來周期性收集影響中間件負載的參數的值。④中間件的負載算法模塊:主要通過一種負載算法對收集來的參數的值進行處理。⑤中間件的警報模塊:主要用來周期性檢測云資源和中間件中影響中間件負載的各個參數的使用狀況。

圖3 監控模型

云計算環境下基于中間件的監控模型的各個模塊協同工作的實現:

(1)中間件通過自身的負載收集模塊,周期性地收集影響自身負載的參數的值,并且將收集到的參數的值交給自身的負載算法模塊進行處理。負載算法模塊將根據一個負載算法處理數據,并將處理結果通過網絡反饋給對應的中間件處理機。

(2)中間件處理機在收到其管理的中間件反饋過來的負載信息之后,將負載信息交給自己的均衡算法模塊進行處理。均衡算法模塊將根據一個均衡算法對負載信息進行處理,并將處理結果保存。

當中間件處理機收到服務請求之后,就交給均衡算法模塊。均衡算法模塊查找負載信息處理結果,并根據均衡算法,將服務請求轉發到合適的中間件處理。

(3)根據各個影響中間件負載的參數對中間件性能影響大小,可以設置不同的閾值。

中間件的警報模塊周期性地對云資源和中間件中影響中間件負載的參數進行檢測。當某個參數的值在n次檢測中都超過了設定的閾值,中間件的警報模塊就告訴對應的中間件處理機,讓該中間件處理機禁止再把服務請求轉發過來。

除了對影響中間件負載的參數設定閾值,其實還有些參數也需要設置閾值,比如中間件的平均響應時間等。

(4)中間件處理機的監控模塊周期性地向其管理的中間件發送詢問信息,如果在規定的時間內收到中間件的確認信息,表明這個中間件狀況良好且這個中間件與中間件處理器之間的網絡連接是正常的;如果中間件處理機未收到確認信息或者收到超時的確認信息,將再向該中間件發出詢問信息。假如反復m次詢問都沒收到確認信息或者只收到超時的確認信息,則判斷中間件或網絡連接出現故障。出現故障之后中間件處理機就把這個中間件設為不可用,以后的服務請求就不再轉發到這個中間件。

2.2 中間件負載算法的實現

中間件的負載狀況由虛擬服務器的CPU利用率C、內存利用率M,網絡利用率N和中間件的處理能力Ability、連接利用率L決定。綜合考慮這些影響中間件負載的參數,并考慮各個參數對中間件負載影響作用的大小,對中間件的負載算法進行設計:

(1)部署中間件的時候,由于使用的中間件技術可能不同,或者是同樣的中間件技術,使用不同的版本,因此會導致各個中間件的處理能力的不同。所以,首先對各個中間件的處理能力進行評估,并設置權值Ability,處理能力越強,Ability的值就設置的越大。Ablility的值需要通過反復測試進行調整,對于同一個中間件在不同的系統環境中,Ablility的值可能有所不同。

(2)中間件上的連接分為靜態連接與動態連接,靜態連接指放在連接池中處于監聽狀態的連接;動態連接指已經處于接收或發送數據的連接。因為中間件處理動態連接與處理靜態連接所消耗的系統資源不一樣,因此中間件的連接數需要通過靜態連接數與動態連接數進行加權計算。如下所示

式中:Link——加權計算后的中間件連接數,dynamicLink——動態連接數,staticLink——靜態連接數。k——權重系數,顯然動態連接所消耗的系統資源要比靜態連接要多,因此k>1,通過實驗得到,對于不同的系統環境,k可能有所不同。

根據所使用的中間件的性能,可以得出各個中間件的最大連接能力,用中間件的最大連接數來表示,這個連接數是指靜態連接數。通過式1,將中間件已經使用的靜態連接數和動態連接數,統一歸化為以靜態連接數為基本單位的連接數,則中間件的連接利用率L

TotalLink為中間件最大連接數,Link由式 (1)得到,為中間件已經使用的連接數。

其中,Load反應中間件負載的狀況,值越大,負載越重。α、β、γ、δ、ε表示各種因素對中間件負載狀況的影響程度,值越大,影響越大,且α+β+γ+δ+ε=1。

3 均衡設計

3.1 中間件的負載均衡結構模型

云計算環境下基于中間件的負載均衡模型有分布式模型和集中式模型兩種。

在云服務系統中,如果使用集中式負載均衡模型,則客戶端的所有服務請求都通過一臺中間件處理機處理,那么這臺中間件處理機必然會成為云服務系統的瓶頸。而采用分布式負載均衡模型,使用多臺中間件處理機并行處理客戶端的服務請求,分攤服務請求量,就能很好的解決這個問題。因此,本文采用的云計算環境下基于中間件的負載均衡模型使用分布式模型結構,如圖4所示。所有中間件處理機通過網絡連接起來,使它們可以實現同步和數據交換。每個中間件處理機管理著數個中間件,中間件處理機與這些中間件通過網絡相連。

圖4 負載均衡模型

在圖4所示的云計算環境下基于中間件的負載均衡模型中,客戶端訪問云服務系統的流程:

(1)客戶端向云服務系統發起服務請求。

(2)云服務系統根據一定的策略,將客戶端發起的服務請求轉發給某個中間件處理機。比如基于DNS,在所有中間件處理機中選擇與用戶在地理上最接近的中間件處理機。

(3)中間件處理機收到請求后,通過均衡算法,將服務請求轉發給合適的中間件進行處理。

建筑精裝修施工技術人員作為建筑精裝修工程建設當中首要因素,他們奮戰在施工前線,貫穿精裝修工程建設各施工環節,對于建筑精裝修工程總體質量有著決定性因素,由此可見精裝修施工隊伍總體素質是多么的重要。為此,建筑企業應當高度重視精裝修施工隊伍建設工作,加強施工隊伍專業技能以及安全責任意識等方面培訓工作,使得施工人員具有更高的專業技能以及安全責任意識。通過相關培訓以及教育活動,使得從業人員能夠恪守施工管理制度,有效避免違規施工作業,保障精裝修項目順利進行。

(4)中間件將服務請求處理之后,應該將處理結果反饋給客戶端。此時,為了減輕中間件處理機的負擔,避免中間件處理機成為系統的瓶頸,中間件應該將處理結果直接反饋給客戶端,而不要再通過中間件處理機來轉發。

3.2 中間件均衡算法的實現

云服務系統各個中間件均衡的實現,核心就是均衡算法的實現。均衡算法的主要作用是將來自客戶端的服務請求比較合理地分攤到各個中間件,使得各個中間件能夠均衡地承擔這些服務請求,從而實現整個云服務系統的均衡性。

常用的均衡算法包括輪轉法、加權輪轉法、最小負載優先法、加權最小負載優先法等。本文采用最小負載優先法:各個中間件周期性地將其Load值反饋給對應的中間件處理機,這個中間件處理機在收到這些Load值之后,根據Load值的大小排序,Load值越大表示負載越重。中間件處理機每次收到客戶端的請求之后,都將請求轉發給Load值最小的中間件。

4 仿真實驗

為了驗證本文設計的云計算環境下中間件的負載均衡機制的效果,根據圖4所示,搭建一個Web服務平臺作為仿真實驗平臺,進行一個簡單的仿真實驗。平臺描述:

(1)服務器集群由兩臺PC機組成,分別為PC機a和PC機b,兩臺PC機在配置上有區別,主要參數對比見表1。

(2)中間件處理機由一臺PC機實現。

(3)在PC機a,b上分別布置一個中間件,為中間件a和中間件b,提供web服務。采用的中間件技術是Sun的J2EE標準,使用的具體技術為EJB,JSP等,EJB容器均為Jboss。

表1 實驗PC機配置對比

在仿真實驗平臺中,通過比較傳統的基于云資源的,只考慮虛擬服務器CPU、內存、網絡等參數的負載均衡機制與本文設計的負載均衡機制的均衡效果,來驗證本文設計的負載均衡機制的性能。測試采用的評價指標為中間件的平均響應時間。每種算法取9個測試點,每個點測試10次,取平均值作為測試結果。測試中,中間件收集負載的周期為20s,中間件對云資源和中間件中影響中間件負載的參數進行檢測的周期為10s,n的取值為3,中間件處理機監控中間件可用性的周期為10s,m的取值為3,式 (1),式 (3)中的權重系數k,α、β、γ、δ、ε的取值見表2,各個參數所設定的閾值見表3。

表2 各個權重系數的實驗取值

表3 各個參數的閾值設定

經過實驗仿真,中間件a的平均響應時間測試結果如圖5所示,中間件b的平均響應時間測試結果如圖6所示。

圖5 中間件a平均響應時間對比

圖6 中間件b平均響應時間對比

圖5、圖6分析結果表明,當服務請求數比較少的時候,傳統基于云資源的負載均衡機制與本文設計的基于中間件的負載均衡機制的均衡效果相差不大。但是隨著服務請求數的增加,基于中間件的負載均衡機制的均衡效果明顯優于傳統基于云資源的負載均衡機制的均衡效果。

5 結束語

本文針對云服務系統的特點,結合中間件處理異構系統的優勢,提出了一種在云計算環境下基于中間件的負載均衡機制。該負載均衡機制在傳統基于云資源的負載均衡機制的基礎上,充分考慮了中間件對云服務系統的安全可靠性的影響,提出了基于中間件的監控模型和負載均衡算法,保證了中間件的可靠運行,從而在一定程度上解決傳統負載均衡機制的局限性,提高云服務系統的負載均衡效果。從仿真實驗結果和性能分析可以看出,該負載均衡機制效果良好,實現了負載均衡,并且能夠有效縮短處理用戶請求的中間件的平均響應時間,具有良好的可用性。

[1]Armbrust M,Fox A,Griffith R,et al.A view of cloud computing [J].Communications of the ACM,2010,53 (4):50-58.

[2]WU Quanyuan.Network computing middleware [J].Journal of software,2013,24 (1):67-76 (in Chinese).[吳泉源.網絡計算中間件 [J].軟件學報,2013,24 (1):67-76.]

[3]Blair G S,Coulson G,Robin P,et al.An architecture for next generation middleware [C]//Proceedings of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing,2009:191-206.

[4]TIAN Wenhong,ZHAO Yong.Cloud computing:Resource scheduling management [M].Beijing:National Defense Industry Press,2011:81-91 (in Chinese).[田文洪,趙勇.云計算:資源調度管理 [M].北京:國防工業出版社,2011:81-91.]

[5]GE Junwei,ZHANG Bo,FANG Yiqiu.Study on resource monitoring model in cloud computing environment [J].Computer Engineering,2011,37 (11):31-33 (in Chinese).[葛君偉,張博,方義秋.云計算環境下的資源監測模型研究 [J].計算機工程,2011,37 (11):31-33.]

[6]Radojevic B,Zagar M.Analysis of issues with load balancing algorithms in hosted(cloud)environments [C]//Proceedings of the 34th International Convention.IEEE,2011:416-420.

[7]LI Yuanhong.Design and implementation of dynamic load balancing based on feedback scheduling algorithm in heterogeneous environment of Hadoop [D].Nanjing:Nanjing University of Science and Technology,2012:24-36 (in Chinese).[李元洪.基于反饋的動態負載平衡調度算法在Hadoop異構環境中的設計與實現 [D].南京:南京理工大學,2012:24-36.]

[8]Wood T,Shenoy P,Venkataramani A,et al.Black-box and gray-box strategies for virtual machine migration [C]//Proceedings of the 4th USENIX conference on Networked systems design &implementation,2007.

[9]Tian W,Zhao Y,Zhong Y,et al.A dynamic and integrated load-balancing scheduling algorithm for cloud datacenters[C]//IEEE International Conference on Cloud Computing and Intelligence Systems,2011:311-315.

[10]WANG Jun,ZHENG Di,WU Quanyuan.Resear ch of high scalable distributed load balancing middleware technologies[J].Computer Engineering,2008,34 (5):39-41 (in Chinese).[王俊,鄭笛,吳泉源.分布式高可擴展負載平衡中間件技術研究 [J].計算機工程,2008,34 (5):39-41.]

[11]ZHAO Chunyan.Research and implementation of job seheduling algorithm in cloud computing [D].Beijing:Beijing Jiaotong University,2009:32-51 (in Chinese).[趙春燕.云環境下作業調度算法研究與實現 [D].北京:北京交通大學,2009:32-51.]

[12]FENG Xiuling.Research and design the load balancing algorithm in cloud computing [D].Beijing:Beijing University of Posts and Telecommunications,2012:6-24 (in Chinese).[馮秀玲.云計算環境下的負載均衡算法的研究與設計 [D].北京:北京郵電大學,2012:6-24.]

[13] MA Hui,TAO Shaohua.Load balance middleware model based on service type [J].Computer Engineering,2010,36(12):277-278 (in Chinese).[馬慧,陶少華.基于服務類型的負載平衡中間件模型 [J].計算機工程,2010,36(12):277-278.]

猜你喜歡
計算環境中間件利用率
一季度我國煤炭開采和洗選業產能利用率為74.9%
云計算環境下網絡安全等級保護的實現途徑
2020年煤炭采選業產能利用率為69.8% 同比下降0.8%
我國自主可控中間件發展研究
晶胞參數及空間利用率的相關計算突破
公共充電樁利用率不足15%
分布式計算環境下網絡數據加密技術研究
以實力證明 用事實說話
中移動集采:東方通中間件脫穎而出
金蝶 引領中間件2.0新時代
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合