一种实时调整网络路由方法、装置及系统
技术领域
本发明涉及通信技术领域,尤其涉及实时调整网络路由方法、装置及系统。
背景技术
互联网服务提供方如何提供优质、稳健的网络服务最重要的一环,为了最大程度地保证网络服务可用,如何保证网络服务调用方的网络路由寻址的可靠性就显得非常重要。
现有技术中,网络服务调用方需要访问服务提供方的业务时,服务调用方每次进行业务访问前获取服务提供方的互联网协议地址(IP,Internet Protocol Address)地址,以相同的概率从IP地址集合中随机获取一个IP地址进行网络服务访问。
在上述现有技术中,服务提供方的机器众多,机器特性和服务特性各异,每个机器的负载信息可能都不一样。如果某个IP地址的服务提供方机器出现故障,调用方无法立即获知和屏蔽掉该故障机器。而且每次路由寻址都是简单的随机性进行寻址,这样,当服务提供方的机器当前的负载信息已经偏高或偏低时,如果还是按照上述方案随机去访问服务提供方,则可能出现服务调用方会继续访问到负载偏高的服务提供方机器,而进一步加剧服务提供方高负载机器的负担,容易使该机器过载,加之无法得知机器出现故障,从而导致服务不可用。
发明内容
有鉴于此,本发明提供一种实时调整网络路由方法、装置及系统,可以实时根据各服务提供服务器当前负载情况以及通信状况调整网络路由,提高向服务提供服务器请求网络服务的质量。
本发明实施例提供的实时调整网络路由方法,包括:
向全局调度服务器提取各服务提供服务器的IP地址排序索引文件,各服务提供服务器的当前可用负载值,以及各服务的当前可用负载总值;在所述IP地址排序索引文件中选择提供目标服务的所需数量的服务提供服务器的IP地址;根据与选择的服务提供服务器传输数据包的成功率,设置选择的所述服务提供服务器的IP地址的权重值;结合选择的服务提供服务器的当前可用负载值、IP地址的权重值以及所述目标服务的当前可用负载总值,选择目标服务提供服务器,并向所述目标服务提供服务器发送服务请求。
本发明实施例提供的实时调整网络路由方法,包括:
获取服务提供服务器的IP地址信息和当前可用负载值;根据所述IP地址信息按照预置规则将IP地址进行排序,并生成IP地址排序索引文件;根据所述服务提供服务器的当前可用负载值计算各服务的当前可用负载总值;根据调用服务器的请求返回所述IP地址排序索引文件、所述服务提供服务器的当前可用负载值以及各服务的当前可用负载总值。
本发明实施例提供的实时调整网络路由方法,包括:
全局调度服务器获取服务提供服务器的IP地址信息和当前可用负载值;根据所述IP地址信息按照预置规则将IP地址进行排序,并生成IP地址排序索引文件;根据所述服务提供服务器的当前可用负载值计算各服务的当前可用负载总值;服务调用服务器向全局调度服务器提取各服务提供服务器的IP地址排序索引文件,各服务提供服务器的当前可用负载值,以及各服务的当前可用负载总值;在所述IP地址排序索引文件中选择提供目标服务的所需数量的服务提供服务器的IP地址;根据与选择的服务提供服务器传输数据包的成功率,设置选择的所述服务提供服务器的IP地址的权重值;结合选择的服务提供服务器的当前可用负载值、IP地址的权重值以及所述目标服务的当前可用负载总值,选择目标服务提供服务器,并向所述目标服务提供服务器发送服务请求。
本发明实施例提供的实时调整网络路由装置,包括:
提取单元,用于向全局调度服务器提取各服务提供服务器的IP地址排序索引文件,各服务提供服务器的当前可用负载值,以及各服务的当前可用负载总值;选择单元,用于在所述提取单元提取的所述IP地址排序索引文件中选择提供目标服务的所需数量的服务提供服务器的IP地址;设置单元,用于根据与所述选择单元选择的服务提供服务器传输数据包的成功率,设置选择的所述服务提供服务器的IP地址的权重值;所述选择单元,还用于结合选择的服务提供服务器的当前可用负载值、IP地址的权重值以及所述目标服务的当前可用负载总值,选择目标服务提供服务器;发送单元,用于向所述选择单元选择的所述目标服务提供服务器发送服务请求。
本发明实施例提供的实时调整网络路由装置,包括:
获取单元,用于获取服务提供服务器的IP地址信息和当前可用负载值;排序单元,用于根据所述获取单元获取的所述IP地址信息按照预置规则将IP地址进行排序;生成单元,用于根据所述排序单元对IP地址的排序结果生成IP地址排序索引文件;计算单元,用于根据所述获取单元获取的所述服务提供服务器的当前可用负载值计算各服务的当前可用负载总值;发送单元,用于根据调用服务器的请求返回所述IP地址排序索引文件、所述服务提供服务器的当前可用负载值以及各服务的当前可用负载总值。
本发明实施例提供的实时调整网络路由系统,包括:
服务提供服务器,全局调度服务器及服务调用服务器;
所述服务器提供服务器,用于收集负载信息并将所述负载信息转换为当前负载值上报给所述全局调度服务器;
所述全局调度服务器,用于获取所述服务提供服务器的IP地址信息和当前可用负载值,根据所述IP地址信息按照预置规则将IP地址进行排序,并生成IP地址排序索引文件,根据所述服务提供服务器的当前可用负载值计算各服务的当前可用负载总值,根据调用服务器的请求返回所述IP地址排序索引文件、所述服务提供服务器的当前可用负载值以及各服务的当前可用负载总值;
所述服务调用服务器,用于向所述全局调度服务器提取各服务提供服务器的IP地址排序索引文件,各服务提供服务器的当前可用负载值,以及各服务的当前可用负载总值,在所述IP地址排序索引文件中选择提供目标服务的所需数量的服务提供服务器的IP地址,根据与选择的服务提供服务器传输数据包的成功率,设置选择的所述服务提供服务器的IP地址的权重值,结合选择的服务提供服务器的当前可用负载值、IP地址的权重值以及所述目标服务的当前可用负载总值,选择目标服务提供服务器,并向所述目标服务提供服务器发送服务请求。
上述的实时调整网络路由方法、装置及系统中,服务调用服务器向全局调度服务器提取各服务提供服务器的IP地址排序索引文件,各服务器提供服务器的当前可用负载值,以及各服务的当前可用负载总值,并根据与该目标服务提供服务器传输数据包的成功率,设置该目标服务提供服务器的IP地址的权重值,综合目标服务提供服务器的负载情况以及与服务调用服务器的IP权重值,选择目标服务提供服务器请求服务,避免了服务提供服务器出现高负载或故障的同时还可能继续被请求服务的问题,提高向服务提供服务器请求网络服务的质量。
附图说明
图1为本发明实施例中的实时调整网络路由系统的一个实施例示意图;
图2为本发明实施例中的负载信息搜集模块搜集负载信息的示意图;
图3为本发明实施例中的实时调整网络路由方法的第一个实施例示意图;
图4为本发明实施例中的实时调整网络路由方法的第二个实施例示意图;
图5为本发明实施例中的实时调整网络路由方法的第三个实施例示意图;
图6为本发明实施例中的实时调整网络路由方法的第四个实施例示意图;
图7为本发明实施例中的实时调整网络路由方法的第五个实施例示意图;
图8为本发明实施例中的实时调整网络路由方法的第六个实施例示意图;
图9为本发明实施例中的实时调整网络路由装置的第一个实施例示意图;
图10为本发明实施例中的实时调整网络路由装置的第二个实施例示意图;
图11为本发明实施例中的实时调整网络路由装置的第三个实施例示意图;
图12为本发明实施例中的实时调整网络路由装置的第四个实施例示意图;
图13为一种服务器结构示意图。
具体实施方式
为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如后。
请参阅图1,本发明实施例中的实时调整网络路由系统的一个实施例包括:
服务提供服务器101、全局调度服务器102和服务调用服务器103;
服务提供服务器101提供网络服务,用于定期向全局调度服务器102上报IP地址信息和负载信息;
具体地,服务提供服务器101中设置负载信息上报功能模块,请参阅图2,该负载信息上报功能模块搜集单位时间内当前服务提供服务器的负载信息,该负载信息至少包括以下一种:以传输控制协议(TCP,Transmission Control Protocol)或用户数据包协议(UDP,User Datagram Protocol)方式传输的网络数据包的收发包总量、当前建立的TCP的连接数以及磁盘数据输入输出(I/O,Input/Output)的信息。具体通过周期性计算出转换为十进制数值形式的负载信息值,将该十进制数值上报给全局调度服务器102。
进一步地,举例说明,若一个服务提供服务器的最大可用负载值为M,L1表示当前建立的TCP的连接数,L2表示TCP方式传输的网络数据包的收发包总量,L3表示UDP方式传输的网络数据包的收发包总量,L4表示磁盘数据输入输出的信息,P1、P2、P3、P4分别表示以上每种负载信息所占的总负载的百分比。
则该服务提供服务器的总负载值L总为:
L总=L1×P1+L2×P2+L3×P3+L4×P4
则该服务提供服务器剩余的当前可用负载值L为:
L=Μ-L总
服务提供服务器101对比计算出的当前可用负载值与上一次计算的可用负载值的差值大于预置数值,例如大于20%,则将当前可用负载值上报给全局调度服务器102,避免因为过于频繁上报当前可用负载值而增加网络负荷。
全局调度服务器102,用于获取服务提供服务器101的IP地址信息和服务提供服务器101的当前可用负载值。根据该IP地址信息IP地址按照预置规则进行排序,生成IP地址排序索引文件,具体是将IP地址转换成以十六进制数值表示的形式,按照一定的规律进行有序的排列,例如,可以按照十六进制数值由大到小或由小到大的顺序进行排序。该IP地址排序索引文件保存在全局调度服务器102数据库的IP列表中,以IP地址作为索引进行排序,排序后的IP地址存放在共享内存里面,提供服务调用服务器103快速查询。根据该当前可用负载值分别计算提供各服务的当前可用负载总值,一个服务的当前可用负载总值提供该服务的每个服务提供服务器的当前可用负载值之和,例如,视频服务由4个服务提供服务器提供,该4个服务提供服务器分别是服务提供服务器A、服务提供服务器B、服务提供服务器C、服务提供服务器D,其中服务器提供器A的当前可用负载值为200M,服务器提供器B的当前可用负载值为400M,服务提供服务器C的当前可用负载值为600M,服务提供服务器D的当前可用负载值为200M,则视频服务的当前可用负载总值为1400M。
全局调度服务器102还用于根据调用服务器103的请求返回该IP地址排序索引文件、服务提供服务器101的当前可用负载值以及各服务的当前可用负载总值。
服务调用服务器103,用于向全局调度服务器提取各服务提供服务器的IP地址排序索引文件,各服务器提供服务器的当前可用负载值,以及各服务的当前可用负载总值。查找该IP地址排序索引文件,随机选择提供目标服务的多个服务提供服务器,根据与选择的多个目标服务提供服务器传输数据包的成功率,设置该目标服务提供服务器的IP地址的权重值,结合选择的多个服务提供服务器的当前可用负载值、IP地址的权重值以及该目标服务的当前可用负载总值,选择目标服务提供服务器,并向该选择的目标服务提供服务器发送服务请求。
服务提供服务器101、全局调度服务器102和服务调用服务器103也可以是分别由多个服务器组成的服务器集群。
本发明实施例中,服务调用服务器向全局调度服务器提取各服务提供服务器的IP地址排序索引文件,各服务器提供服务器的当前可用负载值,以及各服务的当前可用负载总值,并根据与该目标服务提供服务器传输数据包的成功率,设置该目标服务提供服务器的IP地址的权重值,综合目标服务提供服务器的负载情况以及与服务调用服务器的IP权重值,选择目标服务提供服务器请求服务,避免了服务提供服务器出现高负载或故障的同时还可能继续被请求服务的问题,提高向服务提供服务器请求网络服务的质量。
下面从服务调用服务器的角度描述本发明实施例中实时调整网络路由方法,请参阅图3,本发明实施例中的实时调整网络路由方法的第一个实施例包括:
301、向全局调度服务器提取各服务提供服务器的IP地址排序索引文件,各服务器提供服务器的当前可用负载值,以及各服务的当前可用负载总值;
服务调用服务器103中增加可计算处理可用负载值的功能模块。
服务调用服务器103向全局调度服务器102提取各服务提供服务器101的IP地址排序索引文件,各服务器提供服务器101的当前可用负载值以及各服务的当前可用负载总值,并保存在服务调用服务器103的缓存中。
其中,该IP地址排序索引文件是全局调度服务器102根据各服务器提供服务器101的IP地址进行排序生成的索引文件,以IP地址作为索引进行排序,可以加快查找IP地址的速度。
服务提供服务器101中设置负载信息上报功能模块,该负载信息上报功能模块搜集单位时间内当前服务提供服务器的负载信息,该负载信息至少包括以下一种:以TCP或UDP方式传输的网络数据包的收发包总量、当前建立的TCP的连接数以及磁盘数据输I/O的信息。具体通过行将以上负载信息转换为对应的十进制数值,将该十进制数值上报给全局调度服务器102。
302、查找该IP地址排序索引文件,选择所需数量的目标服务提供服务器;
服务调用服务器103查找该IP地址排序索引文件,可在提供目标服务的IP地址中随机选择所需数量的一个或多个服务提供服务器的IP地址,并访问所选择的服务提供服务器。例如,服务调用服务器103需要选择3个服务提供服务器,则查找该IP地址排序索引文件,从中随机选择3个服务调用服务器的IP地址以访问该3个IP地址对应3个服务提供服务器。
303、根据与选择的服务提供服务器传输数据包的成功率,设置该选择的服务提供服务器的IP地址的权重值;
服务调用服务器103根据其自身与选择的目标服务提供服务器传输数据包的成功率,设置该选择的服务提供服务器的IP地址的权重值,该选择的服务提供服务器传输数据包的成功率越高,则表示服务调用服务器103与该选择的服务提供服务器之间的链路通信质量越好,向该选择服务提供服务器请求服务的质量也越好,则将该选择的服务提供服务器的IP地址的权重值设置的越高。
304、结合选择的服务提供服务器的当前可用负载值、IP地址的权重值以及目标服务的当前可用负载总值,选择目标服务提供服务器,并向该目标服务提供服务器发送服务请求。
服务调用服务器103结合选择的服务提供服务器的当前可用负载值,选择的服务提供服务器的IP地址的权重值,以及目标服务的当前可用负载总值,选择提供目标服务的目标服务提供服务器,并向该目标服务提供服务器发送服务请求,从而综合目标服务提供服务器的负载情况以及与服务调用服务器103的通信质量,使得该目标服务提供服务器能更好的为服务调用服务器103提供服务。
本发明实施例中,服务调用服务器向全局调度服务器提取各服务提供服务器的IP地址排序索引文件,各服务器提供服务器的当前可用负载值,以及各服务的当前可用负载总值,并根据与该目标服务提供服务器传输数据包的成功率,设置该目标服务提供服务器的IP地址的权重值,综合目标服务提供服务器的负载情况以及与服务调用服务器的IP权重值,选择目标服务提供服务器请求服务,避免了服务提供服务器出现高负载或故障的同时还可能继续被请求服务的问题,提高向服务提供服务器请求网络服务的质量。
请参阅图4,图4为本发明实施例中实时调整网络路由方法的第二个实施例,与图3所示的实施例不同之处在于,步骤304结合选择的服务提供服务器的当前可用负载值、IP地址的权重值以及目标服务的当前可用负载总值,选择目标服务提供服务器,并向该目标服务提供服务器发送服务请求可包括:
404、按照IP地址权重值从大到小的顺序,选择一个或多个服务提供服务器作为目标服务提供服务器,若服务提供服务器IP地址的权重值相同,则按照该当前可用负载值与该目标服务的当前可用负载总值的比例从大到小的顺序,选择一个或多个服务提供服务器作为目标服务提供服务器。
服务调用服务器103在选择目标服务提供服务器时,按照IP地址权重值从大到小的顺序,选择一个或多个服务提供服务器作为目标服务提供服务器。例如,服务提供服务器A的IP地址的权重值为50、服务提供服务器B的IP地址的权重值为70和服务提供服务器C的IP地址的权重值为90,则选择IP地址的权重值最高的服务提供服务器C作为目标服务提供服务器。因为服务提供服务器C与服务调用服务器103之间的通信质量最好,能提供最好的网络服务。从服务提供服务器的角度来看,各服务提供服务器的总权重值为50+70=90=210,其中,服务提供服务器A被选中的几率为50/210,服务提供服务器B被选中的几率为70/210,服务提供服务器C被选中的几率为90/210,则IP地址的权重值最高的服务提供服务器C被选择作为目标服务提供服务器的几率最大。
若服务提供服务器IP地址的权重值相同,则按照该当前可用负载值与该目标服务的当前可用负载总值的比例从大到小的顺序,选择一个或多个服务提供服务器作为目标服务提供服务器。
例如,提供视频服务的服务提供服务器包括:服务提供服务器A、服务提供服务器B、服务提供服务器C,它们的IP地址的权重值相同,而视频服务的当前可用负载总值为1000M,其中,服务提供服务器A的当前可用负载值为200M,服务提供服务器B的当前可用负载值为300M,服务提供服务器C的当前可用负载值为500M,那么,服务提供服务器A与视频服务的当前可用负载总值的比例为200M/1000M=20%,服务提供服务器B与视频服务的当前可用负载总值的比例为300M/1000M=30%,服务提供服务器C与视频服务的当前可用负载总值的比例为500M/1000M=50%,则服务调用服务器选择该当前可用负载值与该目标服务的当前可用负载总值的比例更大的服务提供服务器C作为目标服务提供服务器。从服务提供服务器的角度来看,服务提供服务器A被选中的几率为200M/1000M=20%,服务提供服务器B被选中的几率为300M/1000M=30%,服务提供服务器C被选中的几率为500M/1000M=50%,则服务提供服务器C被选择作为目标服务提供服务器的几率最大。
本发明实施例中,服务调用服务器向全局调度服务器提取各服务提供服务器的IP地址排序索引文件,各服务器提供服务器的当前可用负载值,以及各服务的当前可用负载总值,并根据与该目标服务提供服务器传输数据包的成功率,设置该目标服务提供服务器的IP地址的权重值,综合目标服务提供服务器的负载情况以及与服务调用服务器的IP权重值,选择目标服务提供服务器请求服务,避免了服务提供服务器出现高负载或故障的同时还可能继续被请求服务的问题,提高向服务提供服务器请求网络服务的质量。
请参阅图5,图5为本发明实施例中实时调整网络路由方法的第三个实施例,与图3所示的实施例不同之处在于,步骤303中根据与该目标服务提供服务器传输数据包的成功率,设置该目标服务提供服务器的IP地址的权重值包括:
503、定期统计在预置时间内,与选择的每个服务提供服务器传输数据包成功率;
服务调用服务器103定期统计在预置时间内,例如,在1分钟内,与每个服务提供服务器传输数据包成功率。
504、根据统计结果设置各服务提供服务器IP地址的权重值,传输数据包成功率越高,IP地址的权重值越高;
服务调用服务器103根据统计的每个服务提供服务器传输数据包成功率,设置该服务提供服务器IP地址的权重值,该传输数据包成功率越高,该权重值越高。
具体地,初始化时所有IP地址的权重值都为100,并且服务调用服务器103按照拉取服务提供服务器101的IP地址实时随机选择IP地址,并向其对应的服务提供服务器请求服务。可以根据服务提供服务器101的服务类型设置不同的统计周期,若服务实现过程复杂,则可设置较长的统计周期,若服务实现过程简单,则可设置较短的统计周期。按照设置的统计周期定期统计与每个IP地址的服务提供服务器之间传输数据包收发包比例,根据传输数据包收发包比例的统计结果设置每个服务提供服务器的IP地址的权重值。
首次根据统计的传输数据包成功率设置IP地址的权重值,可以将传输数据包成功率作为服务提供服务器IP地址的权重值,例如,发出的数据包为10000个,收到回应的数据包5000个,则传输数据包成功率为50%,则可设置该服务提供服务器IP地址的权重值为50。
进一步地,以前一次设置的IP地址的权重值为基础,设置本次IP地址的权重值。若与该服务提供服务器传输数据包成功率大于或等于第一预置数值,则提高该服务提供服务器IP地址的权重值,若与该服务提供服务器传输数据包成功率小于或等于第二预置数值,则降低该服务提供服务器IP地址的权重值。例如,第一预置数值为90%,则服务调用服务器103与服务提供服务器101的传输数据包成功率大于或等于90%,则提高该服务提供服务器IP地址的权重值,每个统计周期中提高的IP地址的权重值可以是恒量,例如每次传输数据包成功率大于或等于90%,则每次提高的IP地址的权重值都是1,那么,如果IP地址的前一个统计周期的权重值为50,连续3个统计周期传输数据包成功率大于或等于90%,则IP地址的权重值为53。每次提高的IP地址的权重值可以是变量,例如,连续3个统计周期每次传输数据包成功率大于或等于90%,则每次提高的IP地址的权重值都是在前一次提高量的基础上有所增加,那么,如果IP地址的前一个统计周期的权重值为50,在第一个统计周期中传输数据包成功率大于或等于90%时,将IP权重值提高为51,在第二个统计周期中传输数据包成功率大于或等于90%时,将IP权重值提高为53,在第三个统计周期中传输数据包成功率大于或等于90%时,将IP权重值提高为57,这样,连续3个统计周期传输数据包成功率大于或等于90%之后,IP地址的权重值为57。因与该服务提供服务器传输数据包成功率小于或等于第二预置数值,而降低该服务提供服务器IP地址的权重值的具体过程,可参照上述提高该服务提供服务器IP地址的权重值的过程。
进一步地,当与某个服务提供服务器的传输数据包成功率小于或等于第三预置数值时,则认为与该服务提供服务器之间的链路传输质量较差,不适宜选择为目标服务提供服务器,因此将该服务提供服务器的IP地址的权重值设置为一预置的较小数值,并加入禁用队列,以禁止选用该服务提供服务器作为目标服务提供服务器。该禁用队列中的IP地址的权重值可以根据传输数据包成功率设置,并且在该禁用队伍中将IP地址的权重值从大到小排列。一个实例中,当服务调用服务器103与一个服务提供服务器101的传输数据包成功率等于0时,则将服务提供服务器101的IP地址的权重设置为0,并加入禁用队列,服务调用服务器103不会从该禁用队列中选择IP地址作为路由地址选择服务提供服务器,减少选择通信质量差的服务提供服务器作为提供目标服务的服务提供服务器的几率。
更近一步地,该禁用队列中IP地址对应的服务提供服务器可能在一段时间后恢复服务能力,则服务调用服务器103定期在该禁用队列中选择一个或多个IP地址,并向所选择的IP地址对应的服务提供服务器发送探测数据包,以服务调用服务器103和该服务提供服务器之间的链路质量,若发送该探测数据包的成功率大于或等于第四预置数值,例如,发送该探测数据包的成功率等于100%,则表示该链路质量较好,将所选择的IP地址在该禁用队列中删除,该所选择的IP地址对应的服务提供服务器获得可被选择为目标服务提供服务器的机会。
通过上述对发送的数据包成功率的实时统计,可将IP地址置入禁用队列或从该禁用队列中删除,而实现的对发生故障的服务提供服务器的IP地址秒级屏蔽。
本实施例中的步骤505的内容与前述图3所示实施例中的步骤304相同。
本发明实施例中,服务调用服务器向全局调度服务器提取各服务提供服务器的IP地址排序索引文件,各服务器提供服务器的当前可用负载值,以及目标服务的当前可用负载总值,并根据与该服务提供服务器传输数据包的成功率,设置该服务提供服务器的IP地址的权重值,综合服务提供服务器的当前可用负载情况和IP地址的权重值,选择目标服务提供服务器请求服务,避免了服务提供服务器出现高负载或故障的同时还可能继续被请求服务的问题,提高向服务提供服务器请求网络服务的质量。
下面从全局调度服务器的角度描述本发明实施例中实时调整网络路由方法,请参阅图6,本发明实施例中实时调整网络路由方法的第四个实施例包括:
601、获取服务提供服务器的IP地址信息和当前可用负载值;
全局调度服务器102获取服务提供服务器101的IP地址信息和当前可用负载值,该当前可用负载值是服务提供服务器101根据其收集的负载信息计算得到,该负载信息至少包括以下一种:以TCP或UDP方式传输的网络数据包的收发包总量、当前建立的TCP的连接数以及磁盘数据I/O的信息。
602、根据该IP地址信息按照预置规则将IP地址进行排序,并生成IP地址排序索引文件;
全局调度服务器102根据IP地址信息,按照预置规则将各服务提供服务器的IP地址进行排序,可以是将IP地址转换为十六进制数值形式的数值,按照数值的大小从大到小或从小到大排列,生成IP地址排序索引文件。
可以理解的,服务提供服务器101可以将IP地址信息转换为对应的十六进制数值,再上报给全局调度服务器102,从而减少全局调度服务器102的计算负担。
603、根据该服务提供服务器的当前可用负载值计算各服务的当前可用负载总值;
全局调度服务器102根据获取的服务提供服务器101的当前可用负载值,计算各服务的当前可用负载值,一个服务的当前可用负载总值提供该服务的每个服务提供服务器的当前可用负载值之和。
604、根据调用服务器的请求返回该IP地址排序索引文件、该服务提供服务器的当前可用负载值以及各服务的当前可用负载总值。
若接收到调用服务器103提取该IP地址排序索引文件、该服务提供服务器的当前可用负载值以及各服务的当前可用负载总值的请求,则根据调用服务器101的请求返回该IP地址排序索引文件、该服务提供服务器的当前可用负载值以及各服务的当前可用负载总值。
本发明实施例中,将各服务提供服务器的IP地址按照预置规则进行排序,生成IP地址排序索引文件,根据获取的各服务提供服务器的负载信息计算各服务提供服务器的当前可用负载值,并按照调用服务器的请求,将该IP地址排序索引文件、该服务提供服务器的当前可用负载值以及各服务的当前可用负载总值发送给调用服务器,使得调用服务器快速查找到目标IP地址,以该目标IP地址对应的服务提供服务器作为目标服务提供服务器并发起服务请求,避免了服务提供服务器出现高负载或故障的同时还可能继续被请求服务的问题,提高向服务提供服务器请求网络服务的质量。
请参阅图7,图7为本发明实施例中实时调整网络路由方法的第五个实施例,与图6所示的实施例不同之处在于,步骤601获取服务提供服务器的IP地址信息和当前可用负载值可以包括:
701、接收并保存该服务提供服务器定期发送的该IP地址信息和当前可用负载值,或者,定期向该服务提供服务器提取并保存该IP地址信息和当前可用负载值。
全局调度服务器102可以接收服务提供服务器101定期发送的IP地址信息和当前可用负载值,也可以主动定期向服务提供服务器101提取IP地址信息和当前可用负载值,并保存在缓存中。
本发明实施例中,将各服务提供服务器的IP地址按照预置规则进行排序,生成IP地址排序索引文件,根据获取的各服务提供服务器的负载信息计算各服务提供服务器的当前可用负载值,并按照调用服务器的请求,将该IP地址排序索引文件、该服务提供服务器的当前可用负载值以及各服务的当前可用负载总值发送给调用服务器,使得调用服务器快速查找到目标IP地址,以该目标IP地址对应的服务提供服务器作为目标服务提供服务器并发起服务请求,避免了服务提供服务器出现高负载或故障的同时还可能继续被请求服务的问题,提高向服务提供服务器请求网络服务的质量。
下面从服务器交互的角度描述本发明实施例中的实时调整网络路由方法,请参阅图8,本发明实施中的实时调整网络路由方法的第六个实施例包括:
801、全局调度服务器获取服务提供服务器的IP地址信息和当前可用负载值;
全局调度服务器102获取服务提供服务器101的IP地址信息和负载信息,该负载信息至少包括以下一种:以TCP或UDP方式传输的网络数据包的收发包总量、当前建立的TCP的连接数以及磁盘数据I/O的信息。
802、根据该IP地址信息按照预置规则将IP地址进行排序,并生成IP地址排序索引文件;
全局调度服务器102获取的服务提供服务器101的IP地址信息已经由服务提供服务器101转换为对应的十六进制数值,全局调度服务器102根据IP地址信息,将各服务提供服务器101的IP地址按照预置规则进行排序,可以是将以十六进制数值形式存在的IP地址信息按照十六进制数值的大小从大到小或从小到大排列,生成IP地址排序索引文件。
803、根据该服务提供服务器的当前可用负载值计算各服务的当前可用负载总值;
全局调度服务器102根据获取的服务提供服务器101的负载信息,计算各服务提供服务器的当前可用负载值。
804、服务调用服务器向全局调度服务器提取各服务提供服务器的IP地址排序索引文件,各服务提供服务器的当前可用负载值,以及各服务的当前可用负载总值;
服务调用服务器103向全局调度服务器102提取各服务提供服务器101的IP地址排序索引文件,以及各服务器提供服务器101的当前可用负载值,并保存在服务调用服务器103的缓存中。
其中,该IP地址排序索引文件是全局调度服务器102根据各服务器提供服务器101的IP地址进行排序生成的索引文件,具体是将IP地址转换成以十六进制数值表示的形式,按照一定的规律进行有序的排列,例如,可以按照十六进制数值有大到小或由小到大的顺序进行排序,该IP地址排序索引文件可以加快在其中查找IP地址的速度。
服务提供服务器101中设置负载信息上报功能模块,该负载信息上报功能模块搜集单位时间内当前服务提供服务器的负载信息,该负载信息至少包括以下一种:以TCP或UDP方式传输的网络数据包的收发包总量、当前建立的TCP的连接数以及磁盘数据I/O的信息。具体通过行将以上负载信息转换为对应的十进制数值,将该十进制数值上报给全局调度服务器102,全局调度服务器102保存各服务提供服务器及其当前可用负载值的对应关系。
805、在该IP地址排序索引文件中选择提供目标服务的所需数量的服务提供服务器的IP地址;
服务调用服务器103查找该IP地址排序索引文件,根据其中IP地址对应的服务提供服务器101的当前可用负载值从小到大的顺序,选择所需数量的目标服务提供服务器,用以向该目标服务提供服务器请求服务。例如,服务调用服务器103需要选择3个目标服务提供服务器,则查找该IP地址排序索引文件,按照当前可用负载值从小到大的排列顺序选择排在前3位的服务调用服务器作为目标服务提供服务器。例如,服务调用服务器103需要选择1个目标服务提供服务器,则查找该IP地址排序索引文件,按照当前可用负载值从小到大的排列顺序选择当前可用负载值最小的服务调用服务器作为目标服务提供服务器。
可以理解的,也可以按照当前可用负载值从大到小的顺序排列,从排列在末位的服务调用服务器开始选择目标服务提供服务器。
806、根据与选择的服务提供服务器传输数据包的成功率,设置选择的服务提供服务器的IP地址的权重值;
服务调用服务器103根据与该目标服务提供服务器传输数据包的成功率,设置该目标服务提供服务器的IP地址的权重值,该目标服务提供服务器传输数据包的成功率越高,则表示服务调用服务器103与该目标服务提供服务器之间的链路通信质量越好,向该目标服务提供服务器请求服务的质量也越好,则将该目标服务提供服务器的IP地址的权重值设置的越高。
807、结合选择的服务提供服务器的当前可用负载值、IP地址的权重值以及该目标服务的当前可用负载总值,选择目标服务提供服务器,并向该目标服务提供服务器发送服务请求。
服务调用服务器103结合该当前可用负载值和该权重值,选择目标服务提供服务器,并向该目标服务提供服务器发送服务请求,从而使得该目标服务提供服务器在综合当前可用负载值和与服务调用服务器103的通信质量的情况下,能更好的为服务调用服务器103提供服务。
本实施例中实现各步骤的具体过程可参见前述图1至图7所示实施例的具体描述。
本发明实施例中,全局调度服务器提供各服务提供服务器的IP地址排序索引文件,各服务器提供服务器的当前可用负载值,以及各服务的当前可用负载总值,服务调用服务器向全局调度服务器提取上述信息,并根据与服务提供服务器传输数据包的成功率,设置服务提供服务器的IP地址的权重值,综合各服务提供服务器的当前可用负载值、IP地址权重值和各服务的当前可用负载总值,选择目标服务提供服务器请求服务,避免了服务提供服务器出现高负载或故障的同时还可能继续被请求服务的问题,提高向服务提供服务器请求网络服务的质量。
请参阅图9,本发明实施例中的实时调整网络路由装置的第一个实施例包括:
提取单元901,用于向全局调度服务器提取各服务提供服务器的IP地址排序索引文件,各服务提供服务器的当前可用负载值,以及各服务的当前可用负载总值;
选择单元902,用于在提取单元901提取的该IP地址排序索引文件中选择提供目标服务的所需数量的服务提供服务器的IP地址;
设置单元903,用于根据与选择单元902选择的服务提供服务器传输数据包的成功率,设置选择的该服务提供服务器的IP地址的权重值;
选择单元902,还用于结合选择的服务提供服务器的当前可用负载值、IP地址的权重值以及该目标服务的当前可用负载总值,选择目标服务提供服务器;
发送单元904,用于向选择单元902选择的该目标服务提供服务器发送服务请求。
本发明实施例中的实时调整网络路由装置中各功能单元实现各自功能的过程,参见前述图3所示实施例的具体描述,此处不再赘述。
本发明实施例中,提取单元901向全局调度服务器提取各服务提供服务器的IP地址排序索引文件,各服务器提供服务器的当前可用负载值,以及各服务的当前可用负载总值,设置单元903根据与该目标服务提供服务器传输数据包的成功率,设置该目标服务提供服务器的IP地址的权重值,综合目标服务提供服务器的负载情况以及与服务调用服务器的IP权重值,选择单元902选择目标服务提供服务器请求服务,避免了服务提供服务器出现高负载或故障的同时还可能继续被请求服务的问题,提高向服务提供服务器请求网络服务的质量。
请参阅图10,图10为本发明实施例中的实时调整网络路由装置的第二个实施例,与图9所示的实施例不同的是,选择单元902,还用于按照IP地址权重值从大到小的顺序,选择一个或多个服务提供服务器作为目标服务提供服务器;
选择单元902,还用于若服务提供服务器IP地址的权重值相同,则按照该当前可用负载值与该目标服务的当前可用负载总值的比例从大到小的顺序,选择一个或多个服务提供服务器作为目标服务提供服务器。
进一步地,实时调整网络路由装置还包括:
统计单元1005,用于定期统计在预置时间内,与选择的每个服务提供服务器传输数据包成功率;
设置单元903,还用于根据统计结果设置服务提供服务器IP地址的权重值,该传输数据包成功率越高,该IP地址的权重值越高。
设置单元903,还用于若与该服务提供服务器传输数据包成功率大于或等于第一预置数值,则提高该服务提供服务器IP地址的权重值,若与该服务提供服务器传输数据包成功率小于或等于第二预置数值,则降低该服务提供服务器IP地址的权重值。
本实施例中的实时调整网络路由装置还可以进一步包括:
加入单元1006,用于当与该服务提供服务器的传输数据包成功率小于或等于第三预置数值时,则将该服务提供服务器的IP地址加入禁用队列,以禁止选用该服务提供服务器作为目标服务提供服务器;
选择单元902,还用于在该禁用队列中选择IP地址;
发送单元904,还用于向所选择的IP地址对应的服务提供服务器发送探测数据包;
进一步地,实时调整网络路由装置还可以包括:
删除单元1007,用于若发送该探测数据包的成功率大于或等于第四预置数值,则将所选择的IP地址在该禁用队列中删除。
本发明实施例中的实时调整网络路由装置中各功能单元实现各自功能的过程,参见前述图3至图5所示实施例的具体描述,此处不再赘述。
本发明实施例中,综合目标服务提供服务器的负载情况以及与服务调用服务器的IP权重值,选择目标服务提供服务器请求服务,避免了服务提供服务器出现高负载或故障的同时还可能继续被请求服务的问题,提高向服务提供服务器请求网络服务的质量。
请参阅图11,本发明实施例中的实时调整网络路由装置的第三个实施例包括:
获取单元1101,用于获取服务提供服务器的IP地址信息和当前可用负载值;
排序单元1102,用于根据获取单元1101获取的该IP地址信息按照预置规则将IP地址进行排序;
生成单元1103,用于根据排序单元1102对IP地址的排序结果生成IP地址排序索引文件;
计算单元1104,用于根据获取单元1101获取的该服务提供服务器的当前可用负载值计算各服务的当前可用负载总值;
发送单元1105,用于根据调用服务器的请求返回该IP地址排序索引文件、该服务提供服务器的当前可用负载值以及各服务的当前可用负载总值。
本发明实施例中的实时调整网络路由装置中各功能单元实现各自功能的过程,参见前述图6所示实施例的具体描述,此处不再赘述。
本发明实施例中,排序单元1102将各服务提供服务器的IP地址按照预置规则进行排序,生成单元1103生成IP地址排序索引文件,计算单元1104根据获取的各服务提供服务器的负载信息计算各服务提供服务器的当前可用负载值,发送单元1105按照调用服务器的请求,将该IP地址排序索引文件、该服务提供服务器的当前可用负载值以及各服务的当前可用负载总值发送给调用服务器,使得调用服务器快速查找到目标IP地址,以该目标IP地址对应的服务提供服务器作为目标服务提供服务器并发起服务请求,避免了服务提供服务器出现高负载或故障的同时还可能继续被请求服务的问题,提高向服务提供服务器请求网络服务的质量。
请参阅图12,图12为本发明实施例中的实时调整网络路由装置的第四个实施例,与图11所示的实施例不同的是,排序单元1102,还用于将IP地址按照预置算法转换成整数,根据该整数的大小将IP地址进行排序。
本实施例中的获取单元1101还用于接收该服务提供服务器定期发送的该IP地址信息和当前可用负载值;
或者,还用于定期向该服务提供服务器提取该IP地址信息和当前可用负载值。
进一步地,实时调整网络路由装置还可以包括:
保存单元1206,用于保存该获取单元接收的该IP地址信息和当前可用负载值,或者保存该提取单元提取的该IP地址信息和当前可用负载值。
本发明实施例中的实时调整网络路由装置中各功能单元实现各自功能的过程,参见前述图6及图7所示实施例的具体描述,此处不再赘述。
本发明实施例中,将各服务提供服务器的IP地址按照预置规则进行排序,并生成IP地址排序索引文件,根据获取的各服务提供服务器的负载信息计算各服务提供服务器的当前可用负载值,将上述信息发送给调用服务器,使得调用服务器快速查找到目标IP地址,以该目标IP地址对应的服务提供服务器作为目标服务提供服务器并发起服务请求,避免了服务提供服务器出现高负载或故障的同时还可能继续被请求服务的问题,提高向服务提供服务器请求网络服务的质量。
请参阅图13,图13是本发明实施例提供的一种服务器结构示意图。本实施例中的实时调整网络路由系统可包括多个服务器1300,服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1322(例如,一个或一个以上处理器)和存储器1332,一个或一个以上存储应用程序1342或数据1344的存储介质1330(例如一个或一个以上海量存储设备)。其中,存储器1332和存储介质1330可以是短暂存储或持久存储。存储在存储介质1330的程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1322可以设置为与存储介质1330通信,在服务器1300上执行存储介质1330中的一系列指令操作。服务器1300还可以包括一个或一个以上电源1326,一个或一个以上有线或无线网络接口1350,一个或一个以上输入输出接口1358,和/或,一个或一个以上操作系统1341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。上述图1至图7所示实施例中所述的由服务器所执行的步骤可以基于该图13所示的服务器结构。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。