APP下载

云计算环境下中间件的负载均衡机制研究

2014-05-04冯文龙黄梦醒

计算机工程与设计 2014年4期
关键词:计算环境中间件利用率

周 源,冯文龙,黄梦醒

(海南大学 信息科学技术学院,海南 海口570100)

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新时代