云计算的负载均衡方法及系统的制作方法
【专利摘要】本发明公开了一种云计算的负载均衡方法及系统,该方法包括:负载均衡器集群中的各监控节点向伸缩服务节点发送监控信息,其中,负载均衡器集群包括至少一个负载均衡器,负载均衡器与监控节点一一对应;负载均衡器接收伸缩服务节点返回的伸缩控制指令;负载均衡器按照伸缩控制指令控制自身的开启或关闭。实现了对负载均衡服务的精细管理和控制,从而使负载均衡服务更好的为应用服务,极大地节约了应用以及平台的运维成本,提高了资源的利用率,避免了云平台提供的负载均衡服务的瓶颈。
【专利说明】
云计算的负载均衡方法及系统
技术领域
[0001]本发明涉及负载均衡领域,尤其涉及一种云计算的负载均衡方法及系统。
【背景技术】
[0002]随着云计算技术的日益普及和云计算的大量工业化应用,云计算在实现服务的高可用性、处理能力的可扩展性等方面的优势越来越多地被业界认可。平台即服务(Platformas a Service,简称为PaaS)作为云计算的一种重要形式,其地位与日倶增。Paas能够使得应用快速的开发、部署、测试、上线,有效地节约了成本,同时也提高了效率。
[0003]负载均衡服务是PaaS平台提供给应用的一个核心服务,使得应用在开发期就不必考虑上线运行时的负载该如何处理。负载均衡服务能够检测应用的负载情况,并采取最优的负载策略。在非云计算环境下,一般采用硬件的负载均衡设备,但由于硬件的负载均衡设备价格昂贵、不易扩展,因此在云计算环境下,更多的采用的是软件负载均衡,如nginx,
haproxy^o
[0004]云计算环境下采用的负载设备往往是软件形式的,如haproxy,它的负载能力要远弱于硬件的负载设备。同时,在云计算环境下应用是能够动态伸缩的,当应用在特定条件下进行扩展伸缩后,超过了其相应的负载均衡器所能承受的最大负载阈值时,就会导致应用访问慢甚至无法访问的情况。云计算环境下,传统的软负载均衡架构如图1所示,负载均衡服务采用主备模式,例如,采用主备的haproxy作为负载均衡服务,每个haproxy能够负载的应用有一定的数量限制,主备模式使得实际工作的时候仅有主的负载均衡服务在提供服务,该模式能够解决一定的高可用问题,却无法解决当应用数量达到负载服务上限后的问题。
[0005]因此,使用如图1所示的传统的软件负载均衡架构时,负载均衡指的是应用层负载,如果应用数量达到负载均衡器的上限,则对正常的负载均衡服务会有所影响,即没有考虑负载均衡器本身的负载情况。针对上述问题,目前尚未提出有效的解决方案。
【发明内容】
[0006]本发明提供了一种云计算的负载均衡方法及系统,以至少解决目前的软件负载均衡架构,大量云应用使用负载均衡服务时导致的瓶颈问题。
[0007]根据本发明的一个方面,提供了一种云计算的负载均衡方法,包括:负载均衡器集群中的各监控节点向伸缩服务节点发送监控信息,其中,所述负载均衡器集群包括至少一个负载均衡器,所述负载均衡器与所述监控节点一一对应;所述负载均衡器接收所述伸缩服务节点返回的伸缩控制指令;所述负载均衡器按照所述伸缩控制指令控制自身的开启或关闭。
[0008]在一个实施例中,在所述负载均衡器接收所述伸缩服务节点返回的伸缩控制指令之前,所述方法还包括:所述伸缩服务节点接收所述监控信息;所述伸缩服务节点对所述监控信息进行过滤;所述伸缩服务节点根据预设伸缩策略和过滤后的监控信息,生成所述伸缩控制指令。
[0009]在一个实施例中,所述预设伸缩策略包括:在预设时间段内所述负载均衡器的当前会话数超过预设的最大会话数,则增加负载均衡服务;或者在所述预设时间段内所述负载均衡器的当前请求数达到队列限制大小的预设阈值,则增加负载均衡服务。
[0010]在一个实施例中,在生成所述伸缩控制指令之后,所述方法还包括:存储所述监控
?目息O
[0011]在一个实施例中,在负载均衡器集群中的各监控节点向伸缩服务节点发送监控信息之前,所述方法还包括:云平台配置预设伸缩策略。
[0012]在一个实施例中,在所述负载均衡器按照所述伸缩控制指令控制自身的开启或关闭之后,所述方法还包括:配置管理节点更新所述负载均衡器集群中各负载均衡器的状态
?目息O
[0013]在一个实施例中,所述监控信息包括:负载均衡器的当前会话、最大会话、服务器权重、队列限制。
[0014]根据本发明的另一个方面,提供了一种云计算的负载均衡系统,包括:负载均衡器集群和伸缩服务节点,其中,所述负载均衡器集群包括至少一个负载均衡器和至少一个监控节点,所述负载均衡器与所述监控节点一一对应;所述监控节点,用于向所述伸缩服务节点发送监控信息;所述伸缩服务节点,用于返回伸缩控制指令;所述负载均衡器,用于接收所述伸缩控制指令,以及按照所述伸缩控制指令控制自身的开启或关闭。
[0015]在一个实施例中,所述伸缩服务节点具体用于:接收所述监控信息,对所述监控信息进行过滤,并根据预设伸缩策略和过滤后的监控信息生成所述伸缩控制指令。
[0016]在一个实施例中,所述系统还包括:存储单元,用于存储所述监控信息。
[0017]通过本发明的云计算的负载均衡方法及系统,采集负载均衡器的监控信息,根据监控信息得到伸缩控制指令,决定负载均衡器是否需要伸缩,实现了对负载均衡服务的精细管理和控制,从而使负载均衡服务更好的为应用服务,极大地节约了应用以及平台的运维成本,提高了资源的利用率,避免了云平台提供的负载均衡服务的瓶颈。
【附图说明】
[0018]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的限定。在附图中:
[0019]图1是本发明实施例的云计算环境下传统的软负载均衡架构图;
[0020]图2是本发明实施例的云计算的负载均衡方法的流程图;
[0021]图3是本发明实施例的云计算的负载均衡系统的结构框图;
[0022]图4是本发明实施例的云计算的负载均衡系统的另一结构框图;
[0023]图5是本发明实施例的云计算的负载均衡系统的架构图;
[0024]图6是本发明实施例的负载均衡系统的模块间调用关系示意图。
【具体实施方式】
[0025]下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0026]本发明实施例提供了一种云计算的负载均衡方法,图2是本发明实施例的云计算的负载均衡方法的流程图,如图2所示,该方法包括如下步骤:
[0027]步骤S201,负载均衡器集群中的各监控节点向伸缩服务节点发送监控信息,其中,负载均衡器集群包括至少一个负载均衡器,负载均衡器与监控节点--对应;
[0028]步骤S202,负载均衡器接收伸缩服务节点返回的伸缩控制指令;
[0029]步骤S203,负载均衡器按照伸缩控制指令控制自身的开启或关闭。
[0030]上述实施例的方法,通过采集负载均衡器的监控信息,根据监控信息得到伸缩控制指令,决定负载均衡器是否需要伸缩,实现了对负载均衡服务的精细管理和控制,从而使负载均衡服务更好的为应用服务,极大地节约了应用以及平台的运维成本,提高了资源的利用率,避免了云平台提供的负载均衡服务的瓶颈。
[0031]上述监控信息可以包括:负载均衡器的当前会话、最大会话、服务器权重、队列限制。
[0032]在步骤S201之前,上述方法还可以包括:云平台配置预设伸缩策略。
[0033]在一个实施例中,在步骤S202之前,上述方法还可以包括:伸缩服务节点接收监控信息;伸缩服务节点对监控信息进行过滤;伸缩服务节点根据预设伸缩策略和过滤后的监控信息,生成伸缩控制指令。具体的,可以通过复杂事件处理对监控信息进行过滤,例如,使用Esper引擎来分析和过滤实时的监控信息。上述预设伸缩策略可以包括:在预设时间段内负载均衡器的当前会话数超过预设的最大会话数,则增加负载均衡服务;或者在预设时间段内负载均衡器的当前请求数达到队列限制大小的预设阈值,则增加负载均衡服务。
[0034]本实施例中,伸缩服务节点采集负载均衡器的监控信息,经过伸缩策略服务的复杂事件处理,同时结合由云平台自主定义的伸缩策略,最终决定了负载均衡器是否需要伸缩,极大地节约了应用以及平台的运维成本,提高了资源的利用率,避免了云平台提供的负载均衡服务的瓶颈。
[0035]在生成伸缩控制指令之后,上述方法还可以包括:存储监控信息。方便后续查看。
[0036]在步骤S203之后,上述方法还可以包括:配置管理节点更新负载均衡器集群中各负载均衡器的状态信息。及时更新负载均衡器的状态,能够更好地进行负载均衡服务的伸缩。
[0037]基于同一发明构思,本发明实施例还提供了一种云计算的负载均衡系统,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由于该系统解决问题的原理与上述方法相似,因此该系统的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0038]图3是本发明实施例的云计算的负载均衡系统的结构框图,如图3所示,该系统包括:负载均衡器集群10和伸缩服务节点20,其中,负载均衡器集群10包括至少一个负载均衡器11和至少一个监控节点12,负载均衡器11与监控节点12—一对应。
[0039]监控节点12,用于向伸缩服务节点20发送监控信息;
[0040]所述伸缩服务节点20,用于返回伸缩控制指令;
[0041 ]负载均衡器11,用于接收伸缩控制指令,以及按照伸缩控制指令控制自身的开启或关闭。
[0042]上述实施例的系统,通过采集负载均衡器的监控信息,根据监控信息得到伸缩控制指令,决定负载均衡器是否需要伸缩,实现了对负载均衡服务的精细管理和控制,从而使负载均衡服务更好的为应用服务,极大地节约了应用以及平台的运维成本,提高了资源的利用率,避免了云平台提供的负载均衡服务的瓶颈。
[0043]上述监控信息可以包括:负载均衡器的当前会话、最大会话、服务器权重、队列限制。
[0044]如图4所示,上述系统还可以包括:云平台30,用于配置预设伸缩策略。预设伸缩策略可以包括:在预设时间段内负载均衡器的当前会话数超过预设的最大会话数,则增加负载均衡服务;或者在预设时间段内负载均衡器的当前请求数达到队列限制大小的预设阈值,则增加负载均衡服务。
[0045]伸缩服务节点20具体用于:接收监控信息,对监控信息进行过滤,并根据预设伸缩策略和过滤后的监控信息生成伸缩控制指令。
[0046]上述系统还可以包括:存储单元40,用于存储监控信息。
[0047]上述系统还可以包括:配置管理节点50,用于更新负载均衡器集群中各负载均衡器的状态信息。
[0048]当然,上述模块划分只是一种示意划分,本发明并不局限于此。只要能实现本发明的目的的模块划分,均应属于本发明的保护范围。
[0049]为了对上述云计算的负载均衡方法及系统进行更为清楚的解释,下面结合具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。
[0050]云计算的负载均衡系统的架构图如图5所示,与传统的架构相比,使用集群负载均衡模式,提高了应用的高可用性;同时为负载均衡服务增加了伸缩策略服务,使得负载均衡服务能够根据当前对应用的负载情况来判断是否需要在集群内进行负载服务的伸缩(即添加或删除)。
[0051]图6是本发明实施例的负载均衡系统的模块间调用关系示意图,该框架包括:负载均衡器集群(包括负载均衡器和监控节点)、伸缩策略服务、统一命名服务以及消息队列服务。基于该架构能够实现对负载均衡服务的精细管理和控制,从而使负载均衡服务更好的为应用服务,极大的节约运维成本,提高资源利用率。下面分别进行说明。
[0052]云平台即PaaS平台的管理控制台,维护着平台各个服务以及各个应用的运行与监控,此处主要用来配置负载均衡服务的动态伸缩策略。
[0053]伸缩策略服务是控制负载均衡服务实际伸缩的节点,它能接收来自负载均衡服务监控节点发来的各种监控数据或信息,通过复杂事件处理将这些数据进行过滤,配合云平台的伸缩策略对是否伸缩发出具体的指令。例如,具体伸缩策略可以为在某一段时间内某一负载均衡器的当前会话数超过了设定的最大会话数或者当前请求数达到了队列限制大小的80%。复杂事件处理可以使用Esper引擎来分析和过滤实时的监控数据,依据云平台配置的伸缩策略来匹配监控数据队列,如持续的10分钟内请求数达到了队列限制的80%,则需要增加负载均衡服务。分析和过滤完的监控数据可以保存到数据库中。
[0054]负载均衡器集群是负载均衡服务的集群实现,用来给具体的云应用提供负载均衡服务。
[0055]统一命名服务(配置管理)用于在运行期更改负载均衡器的伸缩策略以及负载均衡器集群的配置信息。配置信息将配置对象放入ZooKeeper集群的配置节点上,由伸缩策略服务监听配置节点,当负载均衡服务进行伸缩时,动态更新ZooKeeper集群里的负载配置节点。负载集群的配置信息与监控信息相同,主要为负载均衡器的当前会话、最大会话、服务器权重、队列限制等。
[0056]监控节点可以是代理Agent,在负载均衡器中持续运行,执行管理节点的任务并将反馈结果给伸缩策略服务。监控的内容(即监控信息)主要为负载均衡器的当前会话、最大会话、服务器权重、队列限制等,是一个动态的内容信息。
[0057]消息队列服务(信息传输)用于实现消息接口,完成伸缩策略服务与监控节点之间的消息交互。当伸缩策略服务中的静态伸缩策略匹配到监控节点发来的动态内容时,触发伸缩。
[0058]数据库(信息入库)S卩PaaS平台的内部数据库,此处用来存放负载均衡器的监控信息。
[0059]统一入口即PaaS平台上应用访问的统一入口,可以由F5+Nginx组成,是互联网访问平台应用的唯一入口,外部请求经由F5和Nginx后,被分发到各个负载均衡器上。
[0060]通过上述各个模块,能够做到负载均衡服务的动态伸缩,伸缩策略可以由云平台自定义,提高了应用负载服务的灵活性,同时也增加了高可用性。
[0061]综上所述,本发明提出一种在云计算PaaS环境下通过监控负载均衡器的使用情况,对负载均衡器进行动态伸缩的方法,对云计算环境中的负载均衡服务进行统一的运行期管理和集群伸缩,克服传统架构的缺陷,解决了大量云应用使用负载均衡服务可能遇到的瓶颈问题,保证PaaS平台的稳定运行。
[0062]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0063]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0064]以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种云计算的负载均衡方法,其特征在于,包括: 负载均衡器集群中的各监控节点向伸缩服务节点发送监控信息,其中,所述负载均衡器集群包括至少一个负载均衡器,所述负载均衡器与所述监控节点一一对应; 所述负载均衡器接收所述伸缩服务节点返回的伸缩控制指令; 所述负载均衡器按照所述伸缩控制指令控制自身的开启或关闭。2.根据权利要求1所述的方法,其特征在于,在所述负载均衡器接收所述伸缩服务节点返回的伸缩控制指令之前,所述方法还包括: 所述伸缩服务节点接收所述监控信息; 所述伸缩服务节点对所述监控信息进行过滤; 所述伸缩服务节点根据预设伸缩策略和过滤后的监控信息,生成所述伸缩控制指令。3.根据权利要求2所述的方法,其特征在于,所述预设伸缩策略包括: 在预设时间段内所述负载均衡器的当前会话数超过预设的最大会话数,则增加负载均衡服务;或者 在所述预设时间段内所述负载均衡器的当前请求数达到队列限制大小的预设阈值,则增加负载均衡服务。4.根据权利要求2所述的方法,其特征在于,在生成所述伸缩控制指令之后,所述方法还包括:存储所述监控信息。5.根据权利要求1所述的方法,其特征在于,在负载均衡器集群中的各监控节点向伸缩服务节点发送监控信息之前,所述方法还包括:云平台配置预设伸缩策略。6.根据权利要求1所述的方法,其特征在于,在所述负载均衡器按照所述伸缩控制指令控制自身的开启或关闭之后,所述方法还包括: 配置管理节点更新所述负载均衡器集群中各负载均衡器的状态信息。7.根据权利要求1至6中任一项所述的方法,其特征在于,所述监控信息包括:负载均衡器的当前会话、最大会话、服务器权重、队列限制。8.—种云计算的负载均衡系统,其特征在于,包括:负载均衡器集群和伸缩服务节点,其中,所述负载均衡器集群包括至少一个负载均衡器和至少一个监控节点,所述负载均衡器与所述监控节点一一对应; 所述监控节点,用于向所述伸缩服务节点发送监控信息; 所述伸缩服务节点,用于返回伸缩控制指令; 所述负载均衡器,用于接收所述伸缩控制指令,以及按照所述伸缩控制指令控制自身的开启或关闭。9.根据权利要求8所述的系统,其特征在于,所述伸缩服务节点具体用于:接收所述监控信息,对所述监控信息进行过滤,并根据预设伸缩策略和过滤后的监控信息生成所述伸缩控制指令。10.根据权利要求9所述的系统,其特征在于,所述系统还包括:存储单元,用于存储所述监控信息。
【文档编号】H04L29/08GK105939371SQ201510822344
【公开日】2016年9月14日
【申请日】2015年11月24日
【发明人】于镳, 陈舟
【申请人】中国银联股份有限公司