一种集群服务的负载均衡方法和装置的制作方法

文档序号:7741075阅读:93来源:国知局
专利名称:一种集群服务的负载均衡方法和装置的制作方法
技术领域
本发明涉及计算机技术领域,特别涉及一种集群服务的负载均衡方法和装置。
背景技术
随着互联网技术的蓬勃发展,很多互联网服务应运而生,单机服务器的性能很 难满足现有的应用需求,因此,大规模、分布式的集群服务得到了广泛地应用。集群服务 (Cluster)是一种由两台或者两台以上相互独立的服务器(或称为节点机)构成的松散耦 合的计算节点集合,各个服务器在网络中表现为单一的系统,并以单一的系统模式加以管 理。此单一的系统为用户终端提供高可靠性的服务,每一台服务器都可承担部分计算任务, 并且由于群集了多台服务器的性能,因此,整体系统的计算能力将有所提高;同时,每台服 务器还能承担一定的容错任务,当其中某台服务器出现故障时,系统可以在专用软件的支 持下将这台服务器与系统隔离,并通过各服务器之间的负载转移机制实现新的负载均衡, 同时向系统管理员发出报警信号。作为集群服务的关键技术,负载均衡具体指的是集群服务中的各个服务器根据 自身的计算能力,分配并承担相应的计算。现有技术中,在实现集群服务的负载均衡方面, 主要包括软件方式,如采用LVS (Linux Virtual Server,Linux虚拟服务器)架构下的负 载均衡;硬件方式,如在专门的交换机上实现负载均衡等。在实现本发明的过程中,发明人发现现有技术至少存在以下缺点采用软件方式实现的负载均衡,常常会受制于软件系统平台,处理不够灵活;而采 用硬件方式实现的负载均衡,由于硬件的成本较高,部署不够灵活。

发明内容
为了在分布式集群服务中达到一种方便灵活的负载均衡的实现,本发明实施例提 供了一种集群服务中的负载均衡方法和装置。所述技术方案如下—种集群服务中负载均衡的方法,所述方法包括获得提供同一类集群服务的多个负载节点中每个负载节点的负载能力;根据所述负载能力获得每个负载节点的负载因子;根据所述负载因子生成负载分配序列;当接收到待分配的服务请求时,生成随机数,并根据所述随机数和所述负载分配 序列确定处理所述待分配的服务请求的负载节点。所述获得提供同一类集群服务中每个负载节点的负载能力,具体包括接收负载节点发送的注册信息,所述注册信息中携带所述负载节点的负载能力;或者,接收管理员输入的配置信息,所述配置信息中包括每个负载节点的负载能力;或者,下发负载能力获得消息给每个负载节点,获得每个负载节点的负载能力。
所述根据所述负载能力获得每个负载节点的负载因子,具体包括根据每个负载节点的负载能力获得全部负载节点之间负载能力的比例关系;将所述比例关系中每个负载节点对应的数值作为该负载节点的负载因子。所述根据所述负载因子生成负载分配序列,具体包括所述多个负载节点组成负载分配序列,所述每个负载节点在所述负载分配序列中 的个数与其负载因子的值相等。所述根据所述随机数和所述负载分配序列确定处理所述待分配的服务请求的负 载节点,具体包括计算所述负载因子的数值总和;使用所述随机数模除所述负载因子的数值总和得到参考值;在所述负载分配序列中,获得位置为所述参考值的负载节点,将所述获得的负载 节点作为处理所述待分配的服务请求的负载节点。—种集群服务中负载均衡的装置,所述装置包括负载能力获得模块,用于获得提供同一类集群服务的多个负载节点中每个负载节 点的负载能力;负载因子获得模块,用于根据所述负载能力获得模块获得的负载能力获得每个负 载节点的负载因子;生成模块,用于根据所述负载因子获得模块获得的负载因子生成负载分配序列;确定模块,用于当接收到待分配的服务请求时,生成随机数,并根据所述随机数和 所述生成模块生成的负载分配序列确定处理所述待分配的服务请求的负载节点。所述负载能力获得模块,具体包括第一单元,用于接收负载节点发送的注册信息,所述注册信息中携带所述负载节 点的负载能力;或者,第二单元,用于接收管理员输入的配置信息,所述配置信息中包括每个负载节点 的负载能力;或者,第三单元,用于下发负载能力获得消息给每个负载节点,获得每个负载节点的负 载能力。所述负载因子获得模块,具体包括比例单元,用于根据每个负载节点的负载能力获得全部负载节点之间负载能力的 比例关系;因子单元,用于将所述比例单元获得的比例关系中每个负载节点对应的数值作为 该负载节点的负载因子。所述生成模块,具体用于所述多个负载节点组成负载分配序列,每个负载节点在所述负载分配序列中的个 数与其负载因子的值相等。所述确定模块,具体包括接收单元,用于接收待分配的服务请求;
随机数单元,用于当所述接收单元接收到待分配的服务请求时,生成随机数;计算单元,用于计算所述负载因子获得模块获得的负载因子的数值总和;参考值单元,用于使用所述随机数单元生成的随机数模除所述计算单元计算的负 载因子的数值总和,得到参考值;确定单元,用于在所述生成模块生成的负载分配序列中,获得位置为所述参考值 的负载节点,将所述获得的负载节点作为处理所述待分配的服务请求的负载节点。本发明实施例提供的技术方案带来的有益效果是通过根据负责每类服务的集群中全部负载节点的负载能力,生成负载分配序列, 并利用生成随机数的形式在负载分配序列中确定处理客户端服务请求的负载节点,简单灵 活地实现了客户端服务请求的分配,保证了各个负载节点都能够得到相应的负载量,达到 分布式集群服务的高效率服务。


图1为本发明实施例提供的集群服务的负载均衡方法流程图;图2为本发明实施例提供的集群服务系统结构示意图;图3为本发明实施例提供的集群服务的负载均衡方法流程图;图4为本发明实施例提供的集群服务的负载均衡装置结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。实施例1为了在分布式集群服务中达到一种方便灵活的负载均衡的实现,本实施例提供了 一种集群服务的负载均衡方法,参见图1,该方法包括101 获得提供同一类集群服务的多个负载节点中每个负载节点的负载能力;其中,步骤101可以但不限于通过如下几种方式获得负载节点的负载能力接收负载节点发送的注册信息,在注册信息中携带负载节点的负载能力;或者,接收管理员输入的配置信息,在配置信息中包括每个负载节点的负载能 力;或者,下发负载能力获得消息给每个负载节点,获得每个负载节点的负载能力。102 根据负载能力获得每个负载节点的负载因子;其中,可以根据每个负载节点的负载能力获得全部负载节点之间负载能力的比例 关系;将比例关系中每个负载节点对应的数值作为该负载节点的负载因子。103 根据负载因子生成负载分配序列;其中,多个负载节点组成负载分配序列,每个负载节点在负载分配序列中的个数 与其负载因子的值相等。104 当接收到待分配的服务请求时,生成随机数,并根据随机数和负载分配序列 确定处理待分配的服务请求的负载节点。其中,根据随机数和负载分配序列确定处理待分配的服务请求的负载节点可以通过计算负载因子的数值总和;使用所述随机数模除所述负载因子的数值总和得到参考值;在所述负载分配序列中,获得位置为所述参考值的负载节点,将所述获得的负载 节点作为处理所述待分配的服务请求的负载节点。本发明实施例提供了一种集群服务的负载均衡方法,根据负责每类服务的集群中 全部负载节点的负载能力,生成负载分配序列,并利用生成随机数的形式在负载分配序列 中确定处理客户端服务请求的负载节点,简单灵活地实现了客户端服务请求的分配,保证 了各个负载节点都能够得到相应的负载量,达到分布式集群服务的高效率服务。实施例2为了在分布式集群服务中达到一种方便灵活的负载均衡的实现,本实施例提供了 一种集群服务的负载均衡方法。本实施例中提供的集群服务系统可以参见图2所示,包括 服务接入调度中心及专门负责不同类型服务的集群,每个集群可以由多个负载节点(服务 器)组成,每个集群的多个负载节点可以通过通信网络连接起来。其中,服务接入调度中心 可以认为是一台专门用于负责服务调度的web服务器,它可以与各个负责不同类型服务的 集群处于不同的地理位置,各个负责不同类型服务的集群也可以处于不同的地理位置,从 而适应构成分布式的集群服务。参见图3,该方法包括301 集群服务系统中的各个负载节点向服务接入调度中心注册其服务;其中,各个负载节点将自身负责的服务名称通过注册信息等形式发送给服务接入 调度中心,在服务接入调度中心进行注册。同时,负载节点还可以在注册信息中携带自身的负载能力,如负载容量、计算能力 等参数;或者,集群服务系统根据管理员的配置获得各个负载节点的负载能力;又或者,集 群服务系统下发负载能力获得消息等给各个负载节点,获得各个负载节点的负载能力。302:服务接入调度中心根据接收到的注册信息对其负责调度的全部负载节点所 组成的不同集群进行保存;其中,服务接入调度中心根据接收到的注册信息获得各个负载节点所负责的集群 服务,并将负责同一集群服务的负载节点作为一个集群进行管理和保存。例如表格、数据库 等形式进行保存,参见表1,以腾讯QQ提供的集群服务为例,服务接入调度中心在接收到负 载节点的注册信息时,可以以表1的形式对各类集群服务进行保存。表 权利要求
1.一种集群服务中负载均衡的方法,其特征在于,所述方法包括 获得提供同一类集群服务的多个负载节点中每个负载节点的负载能力; 根据所述负载能力获得每个负载节点的负载因子;根据所述负载因子生成负载分配序列;当接收到待分配的服务请求时,生成随机数,并根据所述随机数和所述负载分配序列 确定处理所述待分配的服务请求的负载节点。
2.如权利要求1所述的方法,其特征在于,所述获得提供同一类集群服务中每个负载 节点的负载能力,具体包括接收负载节点发送的注册信息,所述注册信息中携带所述负载节点的负载能力; 或者,接收管理员输入的配置信息,所述配置信息中包括每个负载节点的负载能力; 或者,下发负载能力获得消息给每个负载节点,获得每个负载节点的负载能力。
3.如权利要求1所述的方法,其特征在于,所述根据所述负载能力获得每个负载节点 的负载因子,具体包括根据每个负载节点的负载能力获得全部负载节点之间负载能力的比例关系; 将所述比例关系中每个负载节点对应的数值作为该负载节点的负载因子。
4.如权利要求1所述的方法,其特征在于,所述根据所述负载因子生成负载分配序列, 具体包括所述多个负载节点组成负载分配序列,每个负载节点在所述负载分配序列中的个数与 其负载因子的值相等。
5.如权利要求1所述的方法,其特征在于,所述根据所述随机数和所述负载分配序列 确定处理所述待分配的服务请求的负载节点,具体包括计算所述负载因子的数值总和;使用所述随机数模除所述负载因子的数值总和得到参考值;在所述负载分配序列中,获得位置为所述参考值的负载节点,将所述获得的负载节点 作为处理所述待分配的服务请求的负载节点。
6.一种集群服务中负载均衡的装置,其特征在于,所述装置包括负载能力获得模块,用于获得提供同一类集群服务的多个负载节点中每个负载节点的 负载能力;负载因子获得模块,用于根据所述负载能力获得模块获得的负载能力获得每个负载节 点的负载因子;生成模块,用于根据所述负载因子获得模块获得的负载因子生成负载分配序列; 确定模块,用于当接收到待分配的服务请求时,生成随机数,并根据所述随机数和所述 生成模块生成的负载分配序列确定处理所述待分配的服务请求的负载节点。
7.如权利要求6所述的装置,其特征在于,所述负载能力获得模块,具体包括第一单元,用于接收负载节点发送的注册信息,所述注册信息中携带所述负载节点的 负载能力; 或者,第二单元,用于接收管理员输入的配置信息,所述配置信息中包括每个负载节点的负 载能力; 或者,第三单元,用于下发负载能力获得消息给每个负载节点,获得每个负载节点的负载能力。
8.如权利要求6所述的装置,其特征在于,所述负载因子获得模块,具体包括比例单元,用于根据每个负载节点的负载能力获得全部负载节点之间负载能力的比例 关系;因子单元,用于将所述比例单元获得的比例关系中每个负载节点对应的数值作为该负 载节点的负载因子。
9.如权利要求6所述的装置,其特征在于,所述生成模块,具体用于所述多个负载节点组成负载分配序列,每个负载节点在所述负载分配序列中的个数与 其负载因子的值相等。
10.如权利要求6所述的装置,其特征在于,所述确定模块,具体包括 接收单元,用于接收待分配的服务请求;随机数单元,用于当所述接收单元接收到待分配的服务请求时,生成随机数; 计算单元,用于计算所述负载因子获得模块中获得的负载因子的数值总和; 参考值单元,用于使用所述随机数单元生成的随机数模除所述计算单元计算的负载因 子的数值总和,得到参考值;确定单元,用于在所述生成模块生成的负载分配序列中,获得位置为所述参考值的负 载节点,将所述获得的负载节点作为处理所述待分配的服务请求的负载节点。
全文摘要
本发明公开了一种集群服务的负载均衡方法和装置,属于计算机技术领域。所述方法包括获得提供同一类集群服务的多个负载节点中每个负载节点的负载能力;根据所述负载能力获得每个负载节点的负载因子;根据所述负载因子生成负载分配序列;当接收到待分配的服务请求时,生成随机数,并根据所述随机数和所述负载分配序列确定处理所述待分配的服务请求的负载节点。所述装置包括负载能力获得模块,负载因子获得模块,生成模块和确定模块。简单灵活地实现了客户端服务请求的分配,保证了各个负载节点都能够得到相应的负载量,达到分布式集群服务的高效率服务。
文档编号H04L29/08GK102137128SQ201010103208
公开日2011年7月27日 申请日期2010年1月27日 优先权日2010年1月27日
发明者黄志辉 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1