一种负载均衡方法及系统技术方案

技术编号:16761148 阅读:20 留言:0更新日期:2017-12-09 05:12
本发明专利技术提供了一种负载均衡方法及系统,在每次检查完节点的有效性后,计算下一次检查该节点时节点状态不变的概率,根据该概率计算本次检查完该节点后距下一次检查该节点的时间间隔,这样能动态改变节点检查的时间间隔,即对于有效性状态不变的节点,适应性减少了检查的频率,降低了检查所需的资源消耗,对于有效性发生改变的节点,适应性提高检查的频率,保证了检查的实时性。

A load balancing method and system

The invention provides a load balancing method and system, in the end of each inspection node, calculating the probability of the next node when the node state check unchanged, according to the checking calculation of the probability of the node from the node next inspection interval, which can dynamically change the node check the time interval, the node for effective state invariant, adaptability reduces the frequency of inspection, reduce the required resource consumption, for the effectiveness of node changes, improve the adaptability of the inspection frequency, real-time check.

【技术实现步骤摘要】
一种负载均衡方法及系统
本专利技术属于计算机
,尤其涉及一种负载均衡方法及系统,用于实现多个节点间流量的负载均衡。
技术介绍
在大型互联网公司中,在许多节点上部署有应用,为了实现这些节点间的负载均衡,需要对这些节点进行流量分配。现有技术如图1所示,采用负载均衡集群进行节点分流,负载均衡集群由多个负载均衡器(例如,haproxy、nginx)组成,每个负载均衡器均与每个节点连接,负载均衡器可以将用户的请求转发给节点上的应用,并将节点上应用的执行结果返回给用户。负载均衡器需要对后端的节点定期进行有效性检查,以便确保节点有效。现在技术中,通常采用两种方案进行节点有效性检查:一种是进行高频的有效性检查,这种方法会导致消耗大量不必要的资源,甚至会压垮一些本已比较繁忙的节点;另一种方法是增长健康检查的周期,这样虽然减小了资源消耗,但会损失节点检查的及时性。
技术实现思路
(一)要解决的技术问题本专利技术提供一种负载均衡方法及系统,能以低资源消耗、高实时性地检查出所有节点中的有效节点,并实现有效节点间的负载均衡。(二)技术方案本专利技术提供一种负载均衡方法,用于实现多个节点间流量的负载均衡,方法包括:S1,循环对多个节点中每个节点的有效性进行检查,识别出该节点为有效节点或失效节点;S2,将流量导入至多个节点中的有效节点。进一步,步骤S1中,在循环检查每个节点时,如果连续r次检查到该节点为有效状态,则识别出该节点为有效节点,如果连续f次检查到该节点为失效状态,则识别出该节点为失效节点,其中,r和f为大于等于2的整数。进一步,步骤S1包括:S11,针对每个节点,为其设置count变量和last_state变量,其中,每次检查该节点时,如果该节点的有效性不变,则令count加1,否则,令count等于0,last_state表示上一次检查出的该节点的有效性,初始化count为0,并且,初始化last_state的值为有效状态或失效状态;S12,获得一个0到1之间的随机数m,休眠m×n时间后,开始有效性检查,其中,n表示每次检查的周期,单位为秒;S13,获取当前检查出的该节点的有效性current_state,如果current_state不等于last_state,则执行步骤S14,如果等于,则执行步骤S15;S14,令count=0,并令last_state值为current_state的值,休眠n时间后,执行步骤S13;S15,计算下一次检查时,检查出的该节点的有效性current_state与last_state相等的概率pcount:其中,x和s为可配置的常数,然后计算本次检查到下一次检查的时间间隔tcount:tcount=pcount×c+n,其中,c为可配置的常数,同时,令count加1;S16,如果current_state为有效状态,并且count大于等于r,则识别出该节点为有效节点,如果current_state为失效状态,并且count大于等于f,则识别出该节点为失效节点;S17.休眠tcount时间后,转向步骤S13。优选地,n取值为1,c取值为2,x取值为1.5,s取值为10。进一步,预先计算count从0到size时对应的pcount,并将这些pcount存储在内存中;在计算pcount时,若count小于等于size,直接从内存中获取count值所对应的pcount,若count大于size,直接从内存中获取size所对应的pcount,其中size为可配置的常数。本专利技术还提供一种负载均衡系统,其与多个节点连接,用于实现多个节点间流量的负载均衡,系统包括:检查模块,用于循环对多个节点中每个节点的有效性进行检查,识别出该节点为有效节点或失效节点;流量导入模块,用于将流量导入至多个节点中的有效节点。进一步,检查模块在循环检查每个节点时,如果连续r次检查到该节点为有效状态,则识别出该节点为有效节点,如果连续f次检查到该节点为失效状态,则识别出该节点为失效节点,其中,r和f为大于等于2的整数。进一步,检查模块执行以下步骤:S11,针对每个节点,为其设置count变量和last_state变量,其中,每次检查该节点时,如果该节点的有效性不变,则令count加1,否则,令count等于0,last_state表示上一次检查出的该节点的有效性,初始化count为0,并且,初始化last_state的值为有效状态或失效状态;S12,获得一个0到1之间的随机数m,休眠m×n时间后,开始有效性检查,其中,n表示每次检查的周期,单位为秒;S13,获取当前检查出的该节点的有效性current_state,如果current_state不等于last_state,则执行步骤S14,如果等于,则执行步骤S15;S14,令count=0,并令last_state值为current_state的值,休眠n时间后,执行步骤S13;S15,计算下一次检查时,检查出的该节点的有效性current_state与last_state相等的概率pcount:其中,x和s为可配置的常数,然后计算本次检查到下一次检查的时间间隔tcount:tcount=pcount×c+n,其中,c为可配置的常数,同时,令count加1;S16,如果current_state为有效状态,并且count大于等于r,则识别出该节点为有效节点,如果current_state为失效状态,并且count大于等于f,则识别出该节点为失效节点;S17.休眠tcount时间后,转向步骤S13。优选地,n取值为1,c取值为2,x取值为1.5,s取值为10。进一步,检查模块预先计算count从0到size时对应的pcount,并将这些pcount存储在内存中;在计算pcount时,若count小于等于size,直接从内存中获取count值所对应的pcount,若count大于size,直接从内存中获取size所对应的pcount,其中size为可配置的常数。(三)有益效果本专利技术提供的负载均衡方法及系统中,在每次检查完节点的有效性后,都会计算下一次检查该节点的时间,从而动态改变节点检查的时间间隔,即对于有效性状态不变的节点,适应性减少了检查的频率,这样降低了检查所需的资源消耗,对于有效性发生改变的节点,适应性提高检查的频率,这样保证了检查的实时性。附图说明图1是现有技术采用负载均衡集群进行节点间负载均衡的示意图。图2是本专利技术实施例提供的负载均衡方法的流程图。图3是本专利技术实施例提供的负载均衡系统的结构示意图。图4是本专利技术实施例中进行节点有效性检查的流程图。图5是本专利技术实施例中检查时间间隔tcount随count值变化的曲线图。具体实施方式根据结合附图对本专利技术示例性实施例的以下详细描述,本专利技术的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。在本专利技术中,术语“包括”和“含有”及其派生词意为包括而非限制;术语“或”是包含性的,意为和/或。在本说明书中,下述用于描述本专利技术原理的各种实施例只是说明,不应该以任何方式解释为限制专利技术的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本专利技术的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅本文档来自技高网...
一种负载均衡方法及系统

【技术保护点】
一种负载均衡方法,用于实现多个节点间流量的负载均衡,其特征在于,方法包括:S1,循环对多个节点中每个节点的有效性进行检查,识别出该节点为有效节点或失效节点;S2,将流量导入至多个节点中的有效节点。

【技术特征摘要】
2016.05.30 CN 20161037057511.一种负载均衡方法,用于实现多个节点间流量的负载均衡,其特征在于,方法包括:S1,循环对多个节点中每个节点的有效性进行检查,识别出该节点为有效节点或失效节点;S2,将流量导入至多个节点中的有效节点。2.根据权利要求1所述的负载均衡方法,其特征在于,所述步骤S1中,在循环检查每个节点时,如果连续r次检查到该节点为有效状态,则识别出该节点为有效节点,如果连续f次检查到该节点为失效状态,则识别出该节点为失效节点,其中,r和f为大于等于2的整数。3.根据权利要求2所述的负载均衡方法,其特征在于,所述步骤S1包括:S11,针对每个节点,为其设置count变量和last_state变量,其中,每次检查该节点时,如果该节点的有效性不变,则令count加1,否则,令count等于0,last_state表示上一次检查出的该节点的有效性,初始化count为0,并且,初始化last_state的值为有效状态或失效状态;S12,获得一个0到1之间的随机数m,休眠m×n时间后,开始有效性检查,其中,n表示每次检查的周期,单位为秒;S13,获取当前检查出的该节点的有效性current_state,如果current_state不等于last_state,则执行步骤S14,如果等于,则执行步骤S15;S14,令count=0,并令last_state值为current_state的值,休眠n时间后,执行步骤S13;S15,计算下一次检查时,检查出的该节点的有效性current_state与last_state相等的概率pcount:其中,x和s为可配置的常数,然后计算本次检查到下一次检查的时间间隔tcount:tcounnt=pcounnt×c+n,其中,c为可配置的常数,同时,令count加1;S16,如果current_state为有效状态,并且count大于等于r,则识别出该节点为有效节点,如果current_state为失效状态,并且count大于等于f,则识别出该节点为失效节点;S17.休眠tcount时间后,转向步骤S13。4.根据权利要求3所述的负载均衡方法,其特征在于,n取值为1,c取值为2,x取值为1.5,s取值为10。5.根据权利要求3所述的负载均衡方法,其特征在于,预先计算count从0到size时对应的pcount,并将这些pcount存储在内存中;在计算pcount时,若count小于等于size,直接从内存中获取count值所对应的pcount,若count大于size,直接从内存中获取size所对应的pcount,...

【专利技术属性】
技术研发人员:徐新坤
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

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

1