一种基于加权随机算法的计算路由权重比例方法技术

技术编号:35205517 阅读:24 留言:0更新日期:2022-10-15 10:16
本发明专利技术公开了一种基于随机算法的计算路由权重比例的方法,属于互联网、金融、软件系统网关技术领域,可以解决在服务系统中有效地按照特定比例处理数据的问题。本发明专利技术当服务器接收服务请求调用时,可以加权随机算法获取路由名称,根据路由名称从配置文件中或者缓存中获取相关路由接口实例;若是获取路由名称或者路由接口实例失败,则服务器会重新计算各个路由权重比例(防止某个路由被禁用后,仍然出现在权重比例的份额中),根据新生成的路由权重比例,使用加权随机算法获取随机一个路由名称。若成功获取路由接口实例,则继续业务数据处理;否则,请求调用结束。本发明专利技术用于计算路由权重比例,可以有效地将数据按照指定比例分发到各个路由中,进行业务处理。进行业务处理。进行业务处理。

【技术实现步骤摘要】
一种基于加权随机算法的计算路由权重比例方法


[0001]本专利技术涉及计算机信息
,提供了一种加权随机算法的计算路由权重比例方法,用于在多路由应用中分发数据,属于互联网行业应用服务器、金融行业应用服务器、互联网网关系统的服务和软件系统网关数据分发控制等


技术介绍

[0002]现在的很多应用都是面向互联网的,其背后的服务器就面临着高并发的难题,而且互联网应用服务器时时刻刻都面临着浪涌问题。作为应用的运营商,面临着有限的资源与无限甚至不可控的流量冲击的难题。为解决该问题,负载均衡概念被提了出来。而加权随机算法就是负载均衡算法中的一种。
[0003]目前的负载均衡算法有多种方案,比较普遍的是轮询法、随机算法、加权轮询法、加权随机算法等等。轮询法是将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。随机算法,就是通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。加权轮询法,就是配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载。加权随机算法,就是与加权轮询法一样,加权随机法也根据后端机器的配置,系统的负载分配不同的权重。
[0004]本文虽然使用加权随机算法,但是不同的是添加对各个路由的HTTP和端口的检测,确保了服务的安全性,防止了当一个路由出现问题时,服务器会以固定的速度接收服务请求,最终会因为此接口的问题导致整个服务器的雪崩的问题。在互联网和金融行业中,若因单个服务的性能问题导致服务器的雪崩,服务器一旦雪崩所有的服务就都将停止服务,互联网网站将不可访问,金融交易将会停摆,造成的损失是十分巨大的。

技术实现思路

[0005]针对上述研究的问题,本专利技术的目的在于提供一种加权随机算法的计算路由权重比例方法,解决了当路由HTTP链接出现问题,仍以固定的速度接收服务请求,最终会因为此接口的问题导致整个服务器的雪崩。
[0006]为了达到上述目的,本专利技术采用如下技术方案:
[0007]一种基于加权随机算法计算路由权重比例的方法,步骤如下:
[0008]步骤1:配置相关路由接口名称以及各个路由权重比例参数,配置路由HTTP链接状态以及各个路由是否禁用状态;
[0009]步骤2:各个路由权重比例维护,当设定的路由HTTP链接失败或者禁用后,根据现有有效路由生成一组新的路由权重比例,有效路由是指各个路由HTTP链接状态为“可用”的路由;
[0010]步骤3:获取缓存中各个路由的权重比例,若是权重比例为空,则需要重新计算当前有效路由的权重比例(防止无效路由信息出现在权重比例份额中);
[0011]步骤4:对获取到的路由权重比例进行排序,根据随机算法获取一个随机数,用这个随机数与比例区间进行比较,获取该随机数对应的比例区间,进而获得路由名称,进行下一步骤;
[0012]步骤5:根据配置文件获取路由名称对应的路由接口实例,将数据分发到该路由中,继续处理业务逻辑。
[0013]上述技术方案中,所述各路由名称即为各标识,用于计算出路由名称,然后根据路由名称在内存map或者配置映射中获取路由接口实例。
[0014]上述技术方案中,当某路由出现异常后的处理方法,将该路由的HTTP链接状态设置为 false或者将该路由的可用状态禁用,在计算路由比例权重时,忽略该路由消息,生成一组的新的并且可用的路由权重比例,该步骤用于维护各个路由权重比例。
[0015]上述技术方案中,所述各个路由权重比例已经配置好了,并保存在内存或配置文件中,其中,配置文件中配置了路由名称与路由接口实例的映射。
[0016]上述技术方案中,所述步骤2中维护各个路由权重比例的具体步骤如下:
[0017]步骤2.1:获取各个路由的IP和端口port,通过检测ip端口是否正常通信,判断各个路由HTTP链接状态是否为“可用”,当路由的HTTP链接不正常时,设置路由的HTTP链接状态为“false”;
[0018]步骤2.2:获取到各个路由HTTP链接状态之后,判断各个路由HTTP链接状态与缓存中对应路由HTTP状态是否相同,若是相同则无操作,直接执行步骤2.3(各个路由HTTP链接状态是实时检查探测出来的实时是否可用状态,缓存中的是上一次或者说记录中的http状态,如果相同代表都可用不需要调整,如果有不相同,则需要重新分配);若不同,则设置路由权重比例重新配置标志位true,执行步骤2.4,用于调用权重重新分配方法,;
[0019]步骤2.3:判断从数据库获取的各个路由权重比例与缓存中权重比例是否相同,若是相同则结束路由权重比例维护步骤;若是不同,则设置路由权重比例重新配置标志位true,执行步骤2.4,调用权重重新分配方法,;
[0020]步骤2.4:重新分配标志为ture,且存在某个或多个路由HTTP链接状态为false,则该路由的需要被重新分配,如果该路由在缓存中的路由权重比例小于0,则代表该路由本身就是配置不使用此路由,则无需重新配置;如果该路由在缓存中的路由权重比例大于0,则代表该路由本身是在使用的,此时需要重新分配,将此路由的比例份额按照优先级分配给其他路由HTTP链接状态为ture的路由比例上;
[0021]若重新分配标志为ture,且各个路由HTTP链接状态为true,当缓存中所有权重比例份额小于0,则代表本身没有配置,未初始化,则将各个权重比例份额设置为1;
[0022]步骤2.5:将新生的权重比例存入缓存中,以待下次判断。
[0023]上述技术方案中,所述步骤3中获取路由权重比例实现步骤如下:
[0024]步骤3.1:获取缓存中各个路由的权重比例,若是各个路由权重比例为空,则需要重新生成权重比例,执行步骤3.2;若是权重比例存在,则直接进行4步骤;
[0025]步骤3.2:当各个路由权重比例为空时,从缓存中获取设定的路由权重比例,判断各个路由的权重比例是否大于0,若是各个路由的权重比例全部小于0,则将各个路由的权重比例都设置为1,执行步骤3.3;若是存在路由权重比例大于0,则直接执行步骤3.3;
[0026]步骤3.3:将路由权重比例进行100等分,将路由权重比例划分在[0,100)的区间
中,生成新的路由权重比例。
[0027]上述技术方案中,所述步骤4中获取路由接口实例的实现步骤如下:
[0028]步骤4.1:对获取到的各个路由的权重比例进行比例份额升序排列;
[0029]步骤4.2:根据随机算法生成一个随机数,将该随机数与权重比例进行比较,当该随机数小于某一个权重比例时,获取该权重比例对应的路由名称,进而根据配置参数获取路由名称对应的路由接口实例;
[0030]步骤4.3:根据获得的路由接口实例,将数据分发到该路由中处理数据。
[0031]本专利技术同现有技术相比,其有益效果表现在:
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于加权随机算法计算路由权重比例的方法,其特征在于,步骤如下:步骤1:配置相关路由接口名称以及各个路由权重比例参数,配置路由HTTP链接状态以及各个路由是否禁用状态;步骤2:各个路由权重比例维护,当设定的路由HTTP链接失败或者禁用后,根据现有有效路由生成一组新的路由权重比例,有效路由是指各个路由HTTP链接状态为“可用”的路由;步骤3:获取缓存中各个路由的权重比例,若是权重比例为空,则需要重新计算当前有效路由的权重比例;步骤4:对获取到的路由权重比例进行排序,根据随机算法获取一个随机数,用这个随机数与比例区间进行比较,获取该随机数对应的比例区间,进而获得路由名称,进行下一步骤;步骤5:根据配置文件获取路由名称对应的路由接口实例,将数据分发到该路由中,继续处理业务逻辑。2.根据权利要求1所述的一种基于加权随机算法的计算路由权重比例方法,其特征在于:所述各路由名称即为各标识,用于计算出路由名称,然后根据路由名称在内存map或者配置映射中获取路由接口实例。3.根据权利要求2所述的一种基于于加权随机算法的计算路由权重比例方法,其特征在于:当某路由出现异常后的处理方法,将该路由的HTTP链接状态设置为false或者将该路由的可用状态禁用,在计算路由比例权重时,忽略该路由消息,生成一组的新的并且可用的路由权重比例,该步骤用于维护各个路由权重比例。4.根据权利要求3所述的一种基于加权随机算法的计算路由权重比例方法,其特征在于:所述各个路由权重比例已经配置好了,并保存在内存或配置文件中,其中,配置文件中配置了路由名称与路由接口实例的映射。5.根据权利要求1

4任意一项所述的一种加权随机算法的计算路由权重比例方法,其特征在于:所述步骤2中维护各个路由权重比例的具体步骤如下:步骤2.1:获取各个路由的IP和端口port,通过检测ip端口是否正常通信,判断各个路由HTTP链接状态是否为“可用”,当路由的HTTP链接不正常时,设置路由的HTTP链接状态为“false”;步骤2.2:获取到各个路由HTTP链接状态之后,判断各个路由HTTP链接状态与缓存中对应路由HTTP状态是否相同,若是相同则无操作,直接执行步骤2.3(各个路由HTTP链接状态是实时检查探测出来的实时是否可用状态,缓存中的是上一次或者说记录中的http状态,如果相同代表都可用不...

【专利技术属性】
技术研发人员:吴修国程峰李耀彭磊杨志文
申请(专利权)人:武汉众邦银行股份有限公司
类型:发明
国别省市:

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

1