一种服务器负载均衡方法技术

技术编号:2866563 阅读:155 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种服务器负载均衡方法,本方法基于服务器权值和概率统计原理实现负载均衡。本发明专利技术的技术方案如下:预先确定服务器组中各台服务器与符合第一预定规则的分布区间的对应关系;在新服务请求接入时,生成一个随机数并确定随机数所在的其中一个分布区间;根据所确定的其中一个分布区间和所述的对应关系确定提供本次被调度的服务器并将接入请求转发给该服务器。利用本发明专利技术,既可保证较快的负载均衡调度速度,从统计角度上也使得权值高的服务器提供较多的接入服务次数,从而实现高性能的网络转发。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及多服务器的负载均衡技术,具体涉及,更具体地,涉及一种基于服务器权值的服务器负载均衡方法
技术介绍
随着互联网技术的迅速发展,互联网用户急剧增加,互联网的应用范围也日益扩大。同时互联网内容提供商为满足互联网用户对互联网内容和形式的更高层次的要求,利用各种技术和手段,尤其是多媒体技术,使网络内容的视觉效果更易吸引用户。用户访问数量的增加以及用户单次访问流量的增加对服务器承受并发访问的能力提出了更高的要求。由于单台服务器的负载能力总是有限的,面对日益增加的用户访问数量和访问流量,单台服务器的中央处理器(CPU)和输入/输出(I/O)很快会成为瓶颈。而这个问题不是单纯靠提高服务器硬件的性能就可以解决的。通常的解决方案是采用由多台服务器构成的服务器组并对服务器组实施负载均衡技术,从而有效的解决服务器的合理选择和流量分担问题。目前的负载均衡技术中常见的对服务器的选择方法有哈希法、加权最小连接数法、轮转法、加权轮转法等等。这些方法要么注重调度速率即选择服务器的速率,如哈希法,要么注重调度的均衡程度却忽略了速率,如加权轮转法和加权最小连接法,缺少一种有效快速的调度方法。加权轮转法是目前具有代表性的基于权值均衡的负载均衡方法。图1是加权轮转法实现方式示意图。其中,S代表服务器,S1代表第一台服务器110,Sn代表第n台服务器1n0,W代表各服务器的权值。在负载均衡过程中首先轮转选择服务器,如果被选择的服务器的权值为0,则跳过该服务器并选择下一台,如果被选择的服务器的权值不为0,则选中该服务器作为被调度的服务器提供接入服务并将该服务器的权值减1,后继的选择在前次选择的基础上轮转,当所有服务器的权值都减为0后,再将权值恢复成初始值。以权值分别为1、2、3的三台服务器为例,第一次选择第一台服务器S1,其权值减为0,第二次选择第二台服务器S2,权值减为1,第三次选择第三台服务器S3,第四次轮转到第一台服务器S1,但是其权值为0,继续轮转,选择第一台服务器S2,其权值不为0,所以第四次被调度的服务器是第二台服务器S2,同时第二台服务器S2的权值减为0,......。整个一轮的选择次序依次是S1、S2、S3、S2、S3、S3。这样,权值高的服务器获得响应的次数就同权值成正比,保证了对服务器选择次数上按照权值分布。但加权轮转负载均衡方法在负载均衡过程中需要修改各服务器的加权值,而网络数据在高速处理器中是以硬件多线程并行处理的,必须对公共变量(如服务器的权值等)进行加锁和解锁处理,这就严重影响了网络数据的处理速度。此外,加权轮转负载均衡方法是基于轮转的,如果当前服务器的权值为0,就必须跳过该服务器,这就减少了直接命中的机会,从而影响了网络数据的处理速度。
技术实现思路
本专利技术的目的是克服现有技术的上述缺点,提供一种基于统计的负载均衡调度方法。利用本专利技术,不需要修改服务器的加权值等数据,避免了对公共变量的加锁解锁处理问题,同时避免了跳空轮转现象。既保证了较快的负载均衡调度速度,从统计角度上也使得权值高的服务器提供较多的接入服务次数,从而实现高性能的网络转发。本专利技术提供了,包括以下步骤 预先确定服务器组中各台服务器与符合第一预定规则的分布区间的对应关系;在新服务请求接入时,根据第二预定规则确定所述的其中一个分布区间;根据所确定的所述的其中一个分布区间和所述的对应关系确定提供本次被调度的服务器并将接入请求转发给该服务器。优选地,所述的预先确定所述对应关系的步骤包括预先确定所述各服务器的加权值的步骤,以及根据所确定的加权值,为所述各服务器分配一个区间范围与其权值成正比的分布区间的步骤;其中,所述的第一预定规则是指根据所确定的加权值,为所述各服务器分配的分布区间的区间范围与其权值成正比的规则。可选地,所述的根据第二预定规则确定分布区间的步骤包括生成一个位于由所有分布区间构成的总区间范围内的随机数,确定所述随机数所位于的其中一个分布区间的步骤;其中,所述的第二预定规则是指生成一个位于所述总区间范围内的随机数,确定所述随机数所位于的其中一个分布区间的规则。可选地,所述的预先确定所述对应关系的步骤包括确定所述各台服务器与符合第一预定规则的树型分布区间的对应关系的步骤,所述的确定被调度的服务器的步骤包括根据第二预定规则查找所述的树型分布区间,确定被调度的服务器的步骤。可选地,所述的预先确定所述对应关系的步骤包括确定所述各台服务器与符合第一预定规则的二叉树型分布区间的对应关系的步骤,所述的确定被调度的服务器的步骤包括根据第二预定规则查找所述的二叉树型分布区间,确定被调度的服务器的步骤。优选地,所述的预先确定所述对应关系的步骤包括确定所述各台服务器与符合第一预定规则的二叉排序树型分布区间的对应关系的步骤,所述的确定被调度的服务器的步骤包括根据第二预定规则查找所述的二叉排序树型分布区间,确定被调度的服务器的步骤。优选地,所述的方法包括预先确定所述服务器组中各服务器的加权值的步骤,所述的确定二叉排序树型分布区间的对应关系的步骤包括根据所述各服务器的加权值,在一个连续的数值区间顺序为所述各台服务器分配一个用该区间左边界值表示的子区间,该子区间的右边界用该子区间的下一子区间的左边界表示,或者说,该子区间的右边界等于该子区间的下一子区间的左边界;将所述服务器按顺序分成若干子群,其中构成每个子群的服务器所对应的子区间构成一个连续的区间,该区间的左边界值等于构成该区间的所有子区间中的最小左边界值,该区间的右边界值等于下一个子群对应区间的左边界值;构造一棵以所述子群对应区间的左边界值作为节点的二叉排序树,该节点代表一个区间,该区间左边界值为节点值,右边界值为下一个节点的节点值。优选地,所述的构造二叉排序树的步骤包括构造平衡二叉树或者其左/右子树为平衡二叉树的二叉排序树的步骤。可选地,所述的确定其中一个分布区间的步骤包括生成一个位于由所有所述子区间构成的总区间范围内的随机数;将所述的二叉排序树作为当前被查找的二叉排序树;判断所述随机数是否位于所述当前被查找的二叉排序树的根节点的区间内,如果是, 在所述的当前被查找的二叉排序树的根节点所对应的子群中确定所述随机数所位于的其中一个所述服务器对应的子区间;根据所述的所述子区间与所述服务器的对应关系,确定被调度的服务器;如果不是,判断所述随机数是否小于所述的当前被查找的二叉排序树的根节点所对应的区间的左边界值,如果是,将所述的当前被查找的二叉排序树的左子树作为当前被查找的二叉排序树;返回判断所述随机数是否位于所述当前被查找的二叉排序树的根节点的区间内的步骤;如果不是,将所述的当前被查找的二叉排序树的右子树作为当前被查找的二叉排序树;返回判断所述随机数是否位于所述当前被查找的二叉排序树的根节点的区间内的步骤。可选地,所述的预先确定所述对应关系的步骤包括确定所述各台服务器与符合第一预定规则的静态的分布表的步骤。由以上技术方案可以看出,本专利技术采用处理分离、区间查找的方法,在负载均衡调度时查询静态的分布区间表,而不对公共变量作修改操作,避免了多线程的锁处理问题,同时在选择服务器时一次选定,避免了选择跳空现象。采用二叉排序树形式的静态分布区间表,可加快负载调度时的查询速度。为服务器分配与其权值成正比的分布区间范围本文档来自技高网
...

【技术保护点】
一种服务器负载均衡方法,包括如下步骤:预先确定服务器组中各台服务器与符合第一预定规则的分布区间的对应关系;在新服务请求接入时,根据第二预定规则确定所述分布区间的其中一个;根据所确定的所述的其中一个分布区间和所 述的对应关系确定提供本次被调度的服务器并将接入请求转发给该服务器。

【技术特征摘要】

【专利技术属性】
技术研发人员:杜建树
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利