一种网络流量快速分配方法

文档序号:7693039阅读:136来源:国知局

专利名称::一种网络流量快速分配方法
技术领域
:本发明涉及一种网络流量分配方法,特别是关于一种基于URL(网络通用资源地址)的网络流量快速分配方法。技术背景网络流量分配方法,也称为负载均衡策略,是流量管理中把客户的数据流量平均分流到多个后台服务器上的技术方法,此方法有助于充分利用所有后台服务器的功能。通常的负载均衡方法有三种1、轮循均衡,即按顺序循环的方法将每一次来自客户的请求依次分配给集群服务器中的具体服务器。2、最小连接数均衡,即传递新的客户请求给那些进行最少连接处理的服务器,在SLB(服务负载平衡)软件系统中,集群服务器中的每一台服务器都有一个记述器,记录当前该服务器正在处理的进程数量,当有新的客户请求时,SLB总是将请求分配给当前进程数最少的服务器。3、处理能力均衡,即给所有服务器分组,给每个组定义优先权,将客户请求分配给优先级最高的服务器组,在系统Setup时,要求用户先给出每一台服务器的配置情况,这里主要是影响服务器处理能力的CPU型号、CPU数量和内存数量,然后系统将其换算成处理能力单位,SLB根据每一台服务器的能力,均衡地将任务分配给性能最高的服务器。在Web应用中,数据量巨大,为了兼顾容量和速度,常常将高速服务器(小容量)和低速服务器(大容量)配合使用。高速服务器只保存最近最常用的内容,性能较高。低速服务器保存所有内容,但响应速度慢。客户的数据流量一般先由高速服务器处理,但当出现如下情况时,低速服务器将会被使用1、高速服务器不可用。2、在高速服务器上找不到相应数据,此时,高速服务器会先到低速服务器上取回相应数据,然后对客户请求做出响应。通常的负载均衡方法在解决如上Web数据流量分配时,存在如下一些不足之处1、上述三种负载均衡策略都可能将同样内容的访问分配到不同的高速服务器上,结果就导致所有高速服务器上存储大量重复数据,大大降低了高速服务器的存储总容量,从而导致服务性能下降。例如每台高速服务器有100G的容量,五台高速服务器总共的容量本来应该有500G。但是由于冗余数据的存在,它们所包含的不同数据将会远小于500G。最坏的情况(即所有数据都相同),五台服务器加起来只有100G不同数据!除此之外的内容都在后备的低速服务器上,需要由高速服务器临时从低速服务器上读取。这样一方面严重影响了服务速度,同时也没有能够充分利用多台高速服务器的容量。2、当一个高速服务器出现短暂故障后,上述负载均衡策略会将原来到其上的流量转到其它高速服务器或者后备服务器上,但当这个高速服务器恢复之后,这些流量并不一定能再次分配回来。这样一方面数据流量的持续和可恢复性就得不到保证,另一方面恢复后的高速服务器将很难正常参与到数据处理中来,从而降低了它的使用率。3、轮循均衡策略适合于平均Web访问时间相对均衡的情况。但由于每一次访问在Web停留的时间差异有可能是非常大的,因此,随着工作时间加长,每一台服务器上的进程可能会产生极大的差异,简单的轮循不能保证真正意义上的均衡。
发明内容针对上述问题,本发明的目的是提供一种基于URL的网络流量快速分配方法,使得网络流量能够均匀分配到多台服务器上,并且解决以往负载均衡策略中服务器的数据存储冗余和丢失数据不可恢复的弊病。为实现上述目的,本发明采取以下技术方案一种网络流量快速分配方法,其包括以下步骤l)定义若干个高速服务器组,并将各个高速服务器组以名称排序或指定次序填入散列表;2)定义一个或一个以上后备服务器组;3)收到客户请求时,从中提取出URL;4)使用散列算法,根据URL,计算出关键值;5)用散列表有效项个数对key值取模,然后根据得到的模数从散列表中找到对应的服务器组;6)将客户请求分配到找到的服务器组中。在执行步骤5)时,利用如下取模公式key%n=m,其中n为散列表有效项个数,m是服务器的编号。在执行步骤4)时,定期对各个高速服务器组进行健康检查,健康检查是负载均衡设备将自身模拟为一虚拟客户,间断向各个高速服务器组发送请求,检査各个高速服务器组状态。当健康检查显示其中一个高速服务器组已经失效,则将客户请求分配到后备服务器组。当健康检査显示所述高速服务器组已经恢复正常,则客户请求重新分配到所述高速服务器组。由于采用了以上技术方案,本发明具有了下列优点1、本发明在负载均衡中利用智能散列算法的特性,将概率上大致相同多的请求或任务量分配给每一台服务器,因此保证了网络流量的均匀分配。2、本发明通过智能散列函数的使用,相4较于其它字符串处理方式,具有快速高效査找的特点。3、本发明可以最大化利用服务器容量,使每个服务器组为不同的访问内容服务,各个服务器组中的服务器将会存储完全不同的内容,使得能够提供的内容总量为各服务器组容量之和,从而最充分的利用了机器的数据空间。4、本发明由于利用智能散列函数每次对同一URL求出的关键值(key)都相同的特性,因此很好地保证了相同URL的数据流量永远会被分配到同一个组里的同一台服务器上,保障了服务的保持性。5、本发明与后备服务器组相配合,当某服务器组不可用时由后备服务器组提供服务;当此服务器组恢复正常后,原有的流量又会返回,从而保证了服务器组的可恢复性,使得短暂故障的服务器恢复后马上被派上用场。图1是本发明的一个典型应用环境实例示意图具体实施方式本发明的基本思路为1、把所有高速服务器和低速服务器根据需要分成若干个服务器组,每个服务器组可以根据需要包含一个或多个相同性能的服务器,这些服务器组中包含一个后备服务器组。2、使用已有技术中的智能散列函数根据客户访问的URL计算出唯一的key值。3、采用某种方法(在实施例里将会做详细说明)将key值与已经编号的服务器组对应起来,从而达到将含有具体URL的数据请求发送到相应服务器上的目的。4、采用网络技术对每个服务器组中的每台服务器定期做健康检查,从而实时地掌握服务器工作状态的信息。5、当某台服务器经过健康检査被认为不可用时,后备服务器组中的服务器将会被调用,从而保证客户请求在任何时候都可以被响应。本发明对于URL的内容、格式等没有任何限制和要求。下面结合附图和实施例,对本发明进行详细的描述。基于上述的基本思路,本发明包括以下步骤1)如图1所示,定义若干个高速服务器组和后备服务器组①定义若干个高速服务器组本实施例一共定义三个高速服务器组——第1组、第2组、第3组,每组中可以包括若干个高速服务器,并将服务器组填入散列表,以服务器组名称排序,本实施例中散列表的有效项个数为3,内容为<table>tableseeoriginaldocumentpage5</column></row><table>②定义一个后备服务器组后备服务器组也可以包括若干个服务器。2)收到客户请求,根据URL散列快速选择服务器组①收到客户HTTP请求,从中提取出URL字符串。一个HTTP请求都是由明文字符组成的,它分成两大部份前面是表头,后面是数据,在表头里,有一行关键字符串就是URL(此为本领域的技术人员所公知)。例如一个客户HTTP请求的字符串为GET/about/xrld.htmHTTP/1.0Accept:image/gif.image/jpeg,*/氺Accept—Language:zh—cn则它的URL字符串为/about/xrld.htm。②根据提取到的URL,使用智能散列算法,计算出key值。例如hash(URL)二key注意对于同样的URL,得到的key值永远是一样的。因此它能够将概率上大致相同多的请求或任务量分配给每一台服务器,从而保证了网络流量的均匀分配。③用散列表有效项个数对key值取模,然后根据得到的模数从散列表中找到对应的服务器组,取模公式为key%n=m其中n为散列表有效项个数,m是服务器的编号。例如1、散歹U函数hash("/about/xrld.htm,,)=101。2、本实施例定义了三个服务器组,散列表有效项个数为3,这三个服务器组的编号为0,1,2。取模操作为101%3二2,所以该客户请求会被发送给编号为2的服务器组,此处散列表中第2项的内容为第3组,则第3组为对应服务器组。④本发明服务器组的健康检查是负载均衡设备将自身模拟为一虚拟客户,间断向高速服务器组发送请求,检査高速服务器组状态,并选择最终使用的服务器组。如果服务器组生效,则使用此服务器组;如果该服务器组已经失效,则使用后备服务器组。当此服务器组恢复正常后,原有的流量又会返回,这是因为根据智能散列算法求出的key值将会被优先使用决定服务器组,从而保证了服务器组的可恢复性,使得短暂故障的服务器恢复后马上被派上用场。例如1、当第l组服务器有效时,客户请求被分配到第1组服务器。2、当第1组服务器变为失效后,同样URL的客户请求会被分配到后备服务器组。3、当第l组服务器再次生效后,同样URL的客户请求会被重新分配到第1组服务器。上述实施例仅为本发明的一个较佳实施例,在本发明的实质创意范围内,本发明采用的算法可以有许多变化或替换,这些算法的变化或替换都不应排除在本发明的保护范围之外。权利要求1、一种网络流量快速分配方法,其包括以下步骤1)定义若干个高速服务器组,并将各个高速服务器组以名称排序或指定次序填入散列表;2)定义一个或一个以上后备服务器组;3)收到客户请求时,从中提取出URL;4)使用散列算法,根据URL,计算出关键值;5)用散列表有效项个数对key值取模,然后根据得到的模数从散列表中找到对应的服务器组;6)将客户请求分配到找到的服务器组中。2、如权利要求l所述一种网络流量快速分配方法,其特征在于在执行步骤5)时,利用如下取模公式key%n=m,其中n为散列表有效项个数,ra是服务器的编号。3、如权利要求l所述一种网络流量快速分配方法,其特征在于在执行步骤4)时,定期对各个高速服务器组进行健康检查,健康检査是负载均衡设备将自身模拟为一虚拟客户,间断向各个高速服务器组发送请求,检査各个高速服务器组状态。4、如权利要求3所述一种网络流量快速分配方法,其特征在于当健康检査显示其中一个高速服务器组已经失效,则将客户请求分配到后备服务器组。5、如权利要求3所述一种网络流量快速分配方法,其特征在于当健康检査显示所述高速服务器组已经恢复正常,则客户请求重新分配到所述高速服务器组。全文摘要本发明涉及一种网络流量快速分配方法,其包括以下步骤1)定义若干个高速服务器组,并将各个所述高速服务器组以名称排序或指定次序填入散列表;2)定义一个或一个以上后备服务器组;3)收到客户请求时,从中提取出URL;4)使用散列算法,根据URL,计算出关键值;5)用散列表有效项个数对key值取模,然后根据得到的模数从散列表中找到对应的服务器组;6)将客户请求分配到找到的服务器组中。在进行以上步骤时并定期对高速服务器组进行健康检查,如果服务器组生效,则使用此服务器组;如果服务器组已经失效,则使用后备服务器组。本发明使得网络流量能够均匀分配到多台服务器上,并且解决以往负载均衡策略中服务器的数据存储冗余和丢失数据不可恢复的弊病。文档编号H04L12/56GK101247349SQ20081010186公开日2008年8月20日申请日期2008年3月13日优先权日2008年3月13日发明者张雯宇,波李,贝少峰,邱志金申请人:华耀环宇科技(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1