CN110851275A - 路由节点的负载转移方法及装置 - Google Patents
路由节点的负载转移方法及装置 Download PDFInfo
- Publication number
- CN110851275A CN110851275A CN201911067392.2A CN201911067392A CN110851275A CN 110851275 A CN110851275 A CN 110851275A CN 201911067392 A CN201911067392 A CN 201911067392A CN 110851275 A CN110851275 A CN 110851275A
- Authority
- CN
- China
- Prior art keywords
- load
- service
- current
- service processes
- service process
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/122—Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种路由节点的负载转移方法及装置。其中,该方法包括:确定路由节点上承载的当前负载超出第一负载阈值,其中,路由节点上承载了多个服务进程,当前负载为多个服务进程的负载之和;从所述多个服务进程中获取一个或者多个目标服务进程,其中,所述当前负载与所述一个或者多个目标服务进程的总负载之间的差值低于第二负载阈值;对一个或者多个目标服务进程进行转移。本发明解决了相关技术中对路由节点的负载进行转移的效率较低的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种路由节点的负载转移方法及装置。
背景技术
相关技术中通常使用一致性hash算法来进行负载调度,在该方案中,首先求出路由节点哈希值,并将其配置到0~232的圆上。然后采用同样的方法求出前端服务器的哈希值,并映射到相同的圆上。然后从数据映射到的位置开始顺时针查找,该服务器流量由找到的第一个路由节点承载。如果超过232仍然找不到服务器,该服务器流量由圆上的第一个路由节点承载。
该方案的缺点是它无法处理前端服务器流量大小差异过大的情况,一旦出现某个或某几个前端的流量过大,就会导致某个路由节点承载过高,一旦某路由节点因为承载过高无法提供服务,这部分流量又会全部转移到下一个路由节点,从而导致路由服务“雪崩”,路由功能全部失效。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种路由节点的负载转移方法及装置,以至少解决相关技术中对路由节点的负载进行转移的效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种路由节点的负载转移方法,包括:确定路由节点上承载的当前负载超出第一负载阈值,其中,所述路由节点上承载了多个服务进程,所述当前负载为所述多个服务进程的负载之和;
从所述多个服务进程中获取一个或者多个目标服务进程,其中,所述当前负载与所述一个或者多个目标服务进程的总负载之间的差值低于第二负载阈值;
对所述一个或者多个目标服务进程进行转移。
根据本发明实施例的另一方面,还提供了一种路由节点的负载转移装置,包括:确定模块,用于确定路由节点上承载的当前负载超出第一负载阈值,其中,所述路由节点上承载了多个服务进程,所述当前负载为所述多个服务进程的负载之和;
获取模块,用于从所述多个服务进程中获取一个或者多个目标服务进程,其中,所述当前负载与所述一个或者多个目标服务进程的总负载之间的差值低于第二负载阈值;
转移模块,用于对所述一个或者多个目标服务进程进行转移。
可选地,所述确定模块,包括:
第三获取单元,用于获取所述第二负载阈值和第四负载阈值,其中,所述第二负载阈值与所述第四负载阈值之和小于所述路由节点的负载最大值;
第三确定单元,用于在所述当前负载超出所述第二负载阈值与所述第四负载阈值之和的情况下,确定所述路由节点上承载的所述当前负载超出所述第一负载阈值。
在本发明实施例中,采用确定路由节点上承载的当前负载超出第一负载阈值,其中,路由节点上承载了多个服务进程,当前负载为多个服务进程的负载之和;从所述多个服务进程中获取一个或者多个目标服务进程,其中,所述当前负载与所述一个或者多个目标服务进程的总负载之间的差值低于第二负载阈值;对一个或者多个目标服务进程进行转移的方式,设定如果路由节点的负载超出第一负载阈值则对路由节点的负载进行调度,从该路由节点承载的多个服务进程中获取能够使得路由节点剩余的负载低于第二负载阈值的一个或者多个目标服务进程,将一个或者多个目标服务进程转移出去,使得路由节点剩余的负载能够落在一个较为安全的范围内,按照服务进程对负载进行转移能够确保转移后服务进程的一致性,同时也能够在路由节点承载过剩的时候,及时对负载进行转移,从而实现了提高对路由节点的负载进行转移的转移效率的技术效果,进而解决了相关技术中对路由节点的负载进行转移的效率较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的应用程序的控制方法的示意图;
图2是根据本发明实施例的一种可选的应用程序的控制方法的应用环境示意图;
图3是根据本发明可选的实施方式的一种可选的应用程序的控制方法的示意图一;
图4是根据本发明可选的实施方式的一种可选的应用程序的控制方法的示意图二;
图5是根据本发明实施例的一种可选的路由节点的负载转移装置的示意图;
图6是根据本发明实施例的一种可选的路由节点的负载转移方法的应用场景示意图;以及
图7是根据本发明实施例的一种可选的电子装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种路由节点的负载转移方法,如图1所示,该方法包括:
步骤S102,确定路由节点上承载的当前负载超出第一负载阈值,其中,所述路由节点上承载了多个服务进程,所述当前负载为所述多个服务进程的负载之和;
步骤S104,从所述多个服务进程中获取一个或者多个目标服务进程,其中,所述当前负载与所述一个或者多个目标服务进程的总负载之间的差值低于第二负载阈值;
步骤S106,对所述一个或者多个目标服务进程进行转移。
可选地,在本实施例中,上述路由节点的负载转移方法可以应用于如图2所示的服务器202和路由节点204所构成的硬件环境中。如图2所示,路由节点204所承载的服务进程包括服务进程1至服务进程m,其中,服务进程1的负载为L1,服务进程2的负载为L2,以此类推,服务进程m的负载为Lm。服务器202确定路由节点204上承载的当前负载超出第一负载阈值T1,即L1+L2+……+Lm>T1,从服务进程1,服务进程2,……,服务进程m中获取目标服务进程为服务进程1,服务进程m-7和服务进程m-1,其中,L1+L2+……+Lm-L1-Lm-7-Lm-1低于第二负载阈值T2,则对服务进程1,服务进程m-7和服务进程m-1进行转移。
可选地,在本实施例中,上述路由节点的负载转移方法可以但不限于应用于对应用程序的服务进程进行路由的场景中。其中,上述应用程序可以但不限于为各种类型的应用程序,例如,在线教育应用、即时通讯应用、社区空间应用、游戏应用、购物应用、浏览器应用、金融应用、多媒体应用、直播应用等。具体的,可以但不限于应用于对游戏应用的服务进程进行路由的场景中,或还可以但不限于应用于对多媒体应用的服务进程进行路由的场景中,以提高对路由节点的负载进行转移的转移效率。上述仅是一种示例,本实施例中对此不做任何限定。
可选地,在本实施例中,路由(routing)是通过互联的网络把信息从源地址传输到目的地址的活动。路由引导分组转送,经过一些中间的节点后,到它们最后的目的地。作成硬件的话,则称为路由器。路由通常根据路由表——一个存储到各个目的地的最佳路径的表——来引导分组转送。路由系统中具体承担流量转发任务的节点称为路由节点,也叫路由器。
当路由系统的中间某节点因为故障、负载过大或其他原因导致经过该节点的部分或全部流量需要转移至其他节点,这部分需要转移的流量的路由路径发生了变化,该过程称为路由切换(routing switching)。可选地,在本实施例中,对一个或者多个目标服务进程进行路由切换。
可选地,在本实施例中,设置一个路由节点的负载告警阈值为Lw,负载调度缓冲量为Ls,上述第二负载阈值即为负载告警阈值Lw,上述第一负载阈值为负载告警阈值为Lw与负载调度缓冲量Ls的和,即Lw+Ls。
可选地,在本实施例中,可以通过设置负载的百分比来确定每个路由节点的Lw和Ls。比如:设置路由节点能够承载的最大负载的80%为Lw,路由节点能够承载的最大负载的95%为Ls,那么对于一个最大负载为Lm1的路由节点来说,其对应的Lw1=Lm1×80%,Ls1=Lm1×95%,对于一个最大负载为Lm2的路由节点来说,其对应的Lw2=Lm2×80%,Ls1=Lm2×95%,以此类推。
在一个可选的实施方式中,如图3所示,路由节点集群302包括路由节点302-1至302-n,服务进程集群304包括服务进程304-1至304-m,以路由节点302-1为例,路由节点302-1承载的多个服务进程分别为服务进程304-1,服务进程304-2,服务进程304-3和服务进程304-4,其中,服务进程304-1的负载为L1,服务进程304-2的负载为L2,服务进程304-3的负载为L3和服务进程304-4的负载为L4。确定路由节点302-1上承载的当前负载超出第一负载阈值T1,即L1+L2+L3+L4>T1,从服务进程304-1,服务进程304-2,服务进程304-3和服务进程304-4中获取的目标服务进程为服务进程304-1和服务进程304-2,其中,L1+L2+L3+L4-L1-L2即L3+L4低于第二负载阈值T2,则对服务进程304-1和服务进程304-2进行转移。
可见,通过上述步骤,设定如果路由节点的负载超出第一负载阈值则对路由节点的负载进行调度,从该路由节点承载的多个服务进程中获取能够使得路由节点剩余的负载低于第二负载阈值的一个或者多个目标服务进程,将一个或者多个目标服务进程转移出去,使得路由节点剩余的负载能够落在一个较为安全的范围内,按照服务进程对负载进行转移能够确保转移后服务进程的一致性,同时也能够在路由节点承载过剩的时候,及时对负载进行转移,从而实现了提高对路由节点的负载进行转移的转移效率的技术效果,进而解决了相关技术中对路由节点的负载进行转移的效率较低的技术问题。
作为一种可选的方案,从所述多个服务进程中获取所述一个或者多个目标服务进程,包括:
S1,从所述多个服务进程中获取多个第一服务进程子集合,其中,所述第一服务进程子集合所对应的总负载高于第三负载阈值,所述第三负载阈值为所述当前负载与所述第二负载阈值的差值;
S2,将所述多个第一服务进程子集合中所对应的总负载最小的服务进程子集合确定为第二服务进程子集合;
S3,将所述第二服务进程子集合中所包括的服务进程确定为所述一个或者多个目标服务进程。
一次路由切换会造成前端流量的路由路径发生变化,这种变化对前端业务的影响称为路由切换的成本(cost of routing switching)。根据前端业务的不同,该成本的计算方式可能不同。举例说明,对于游戏业务产生的流量来说,为了保证玩家体验的连贯性和一致性,需要尽可能保证客户端收包顺序与服务器发包顺序一致,而路由切换可能导致不同路径上的包的到达顺序产生不一致的情况,这种情况下,路由切换成本可以视为当次进行路由切换的流量大小。
可选地,在本实施例中,在全部满足总负载高于第三负载阈值的多个第一服务进程子集合中将总负载最小的服务进程子集合确定为进行负载转移的第二服务进程子集合,对第二服务进程子集合中的服务进程进行转移,对于游戏业务或者对数据包的到达顺序较为敏感的业务来说,使得端到端的通信路径在发生路由切换时,受影响的流量尽可能的小,从而最大程度地降低了玩家或用户体验的损失。
作为一种可选的方案,从所述多个服务进程中获取所述多个第一服务进程子集合,包括:
S1,确定初始的当前服务进程集合中包括所述多个服务进程,初始的约束目标为所述第三负载阈值;
S2,从所述当前服务进程集合中选取一个或者多个服务进程,其中,包括所述一个或者多个服务进程的子集合所对应的总负载高于所述约束目标;
S3,将包括所述一个或者多个元素的子集合确定为所述第一服务进程子集合。
可选地,在本实施例中,获取满足总负载高于第三负载阈值的条件的多个第一服务进程子集合的方式可以但不限于通过递归的过程来进行,确定初始的当前服务进程集合中包括上述多个服务进程,初始的约束目标为第三负载阈值。通过选取的过程从当前服务进程集合中得到全部能够使得总负载高于约束目标的子集合。
在一个可选的实施方式中,假定需要进行负载调度的路由节点当前负载是Lc(Lc>Lw+Ls),满足目标的负载集合的总负载应满足Lm>Lc-Lw。假定该路由节点上的承载的前端进程分别为c_i,c_i+1,…,c_i+m,其对应产生的负载分别为Lc_i,Lc_i+1,…Lc_i+m,称为负载集合Lcm,那么获取的目标为:从负载集合Lcm中选出一个子集合Lcm_s,在所有满足负载之和不低于Lc-Lw的子集合中,Lcm_s内元素之和最小。用数学语言描述如下:
Lcm_s=MIN(each_sub{Lc_i,Lc_i+1,…Lc_i+m});
Lcm_s>Lc-Lw
可选地,在本实施例中,从所述当前服务进程集合中选取一个或者多个服务进程的过程可以但不限于通过以下方式实现:
重复执行以下步骤,直至所述当前服务进程集合为空或者所述约束目标小于0,得到所述一个或者多个服务进程;
S1,从所述当前服务进程集合中获取一个当前服务进程;
S2,在所述当前服务进程在所述一个或者多个服务进程中的情况下,将所述当前服务进程添加到包括所述一个或者多个元素的子集合中,并将所述当前服务进程从所述当前服务进程集合中移除,以及将所述约束目标更新为所述第三负载阈值与所述当前服务进程的负载的差值;
S3,在所述当前服务进程不在所述一个或者多个服务进程中的情况下,将所述当前服务进程从所述当前服务进程集合中移除。
在上述可选的实施方式中,如图4所示,求解Lcm_s的流程过程可以但不限于包括以下步骤:
步骤1,设置负载集合,初次循环中,负载集合为需要调度的理由节点的当前负载集合,即初始负载集合设置为{Lc_i,Lc_i+1,…Lc_i+m},设置初始约束目标:Lc-Lw,初始当次解集合为S={};
步骤2,选定当前负载集合中的某元素,比如:Lc_i。
步骤3,假定Lc_i在最终的解集合Lcm_s中,将Lc_i放入当次解集合S中,同时问题变更为
a)Lcm_s2=MIN(each_sub{Lc_i+1,…Lc_i+m});
b)Lcm_s2>Lc-Lw-Lc_i;
其中:a)中集合{Lc_i+1,…Lc_i+m}相对原始集合,其元素数量减少了1个,重复这样的部署总会使得该步骤中的集合成为空集合,当该集合成为空集合时,该步骤为终止步骤,不再继续向后执行;b)中的约束目标相对原始约束目标变更为一个更小的值,重复该步骤总会使得约束目标小于0,当约束目标小于0时,该步骤为终止步骤,不再继续向后执行。
步骤4,假定Lc_i不在最终的解集合Lcm_s中,则问题变更为
a)Lcm_s2=MIN(each_sub{Lc_i+1,…Lc_i+m});
b)Lcm_s2>Lc-Lw;
其中:a)中集合{Lc_i+1,…Lc_i+m}相对原始集合,其元素数量减少了1个,重复这样的部署总会使得该步骤中的集合成为空集合,当该集合成为空集合时,该步骤为终止步骤,不再继续向后执行。
步骤5,重复以上步骤,直至步骤3和步骤4中的某步骤成为终止步骤,这样就可以获取满足初始约束的所有解集合。
需要说明的是,在循环过程中,如果出现了负载集合成为空集合,但约束条件仍为大于0的数,则可以确定该解集合不满足条件,将其舍弃。
例如:路由节点承载了四个服务进程,C1,C2和C3,其负载分别为4,5,8。则Lc=17,设置的Lw=10,Ls=4,由于Lc>Lw+Ls,确定该路由节点需要进行负载的转移,那么初始条件为
Lcm_s=MIN(each_sub{4,5,8});
Lcm_s>7
从集合中取出C1对应的负载4,假定其在最终的解集合中,则将其放入集合S中S={4},同时问题变更为
a)Lcm_s2=MIN(each_sub{5,8});
b)Lcm_s2>3;
对于这种情况,由于没有达到终止步骤的条件,则继续从集合中取出C2对应的负载5,假定其在最终的解集合中,则将其放入集合S中S={4,5},同时问题变更为
a)Lcm_s3=MIN(each_sub{8});
b)Lcm_s3>-2;
由于已经达到终止步骤的条件,则得到一个解集合为S1={4,5}。
假定5不在解集合中,则问题变更为
a)Lcm_s3=MIN(each_sub{8});
b)Lcm_s3>3;
由于没有达到终止步骤的条件,则继续从集合中取出C3对应的负载8,假定其在最终的解集合中,则将其放入集合S中S={4,8},同时问题变更为
a)Lcm_s4=MIN(each_sub{});
b)Lcm_s4>-5;
由于已经达到终止步骤的条件,则得到一个解集合为S2={4,8}。
再假设4不在最终的解集合中,则问题变更为
a)Lcm_s2=MIN(each_sub{5,8});
b)Lcm_s2>7。
由于没有达到终止步骤的条件,则继续从集合中取出C2对应的负载5,假定其在最终的解集合中,则将其放入集合S中S={5},同时问题变更为
a)Lcm_s3=MIN(each_sub{8});
b)Lcm_s3>2;
由于没有达到终止步骤的条件,则继续从集合中取出C3对应的负载8,假定其在最终的解集合中,则将其放入集合S中S={5,8},同时问题变更为
a)Lcm_s3=MIN(each_sub{});
b)Lcm_s3>-6;
由于已经达到终止步骤的条件,则得到一个解集合为S3={5,8}。
再假设5不在最终的解集合中,则问题变更为
a)Lcm_s3=MIN(each_sub{8});
b)Lcm_s3>7。
由于没有达到终止步骤的条件,则继续从集合中取出C3对应的负载8,假定其在最终的解集合中,则将其放入集合S中S={8},同时问题变更为
a)Lcm_s3=MIN(each_sub{});
b)Lcm_s3>-1;
由于已经达到终止步骤的条件,则得到一个解集合为S4={8}。
通过上述过程,得到的多个第一服务进程子集合为S1={C1=4,C2=5},S2={C1=4,C3=8},S3={C2=5,C3=8}以及S4={C3=8}。其对应的总负载分别为9,12,13和8,由于S4对应的总负载最小,则可以将进程C3确定为目标服务进程。
作为一种可选的方案,从所述多个服务进程中获取多个第一服务进程子集合,包括:
S1,确定所述多个服务进程对应的多个第三服务进程子集合;
S2,从所述多个第三服务进程子集合中获取所述多个第一服务进程子集合。
可选地,在本实施例中,还可以通过在全部子集合中查找满足条件的子集合的方式获取多个第一服务进程子集合。
可选地,在本实施例中,多个第三服务进程子集合可以但不限于包括服务进程的全部非空的子集合。
在一个可选的实施方式中,路由节点承载了四个服务进程,C1,C2和C3,其负载分别为4,5,8。则Lc=17,设置的Lw=10,Ls=4,由于Lc>Lw+Ls,确定该路由节点需要进行负载的转移,那么确定四个服务进程对应的多个第三服务进程子集合包括:S11={C1},S12={C2},S13={C3},S21={C1,C2},S22={C1,C3},S23={C2,C3},S31={C1,C2,C3},其总负载分别为4,5,8,9,12,13,17。从上述子集合中获取总负载大于7的多个第一服务进程子集合为S13={C3},S21={C1,C2},S22={C1,C3},S23={C2,C3},S31={C1,C2,C3},其中总负载最小的为S13={C3},则确定C3为目标服务进程。
作为一种可选的方案,对所述一个或者多个目标服务进程进行转移,包括:
S1,从所述路由节点所在的路由集群中获取一个或者多个目标路由节点;
S2,将所述一个或者多个目标服务进程转移至所述一个或者多个目标服务节点。
可选地,在本实施例中,在服务进程的转移过程中可以将获取的一个或者多个目标服务进程转移到与路由节点属于同一个路由集群的一个或者多个目标路由节点上。
可选地,在本实施例中,可以但不限于根据目标路由节点的负载情况对一个或者多个目标服务进程进行分配。
作为一种可选的方案,确定所述路由节点上承载的所述当前负载超出所述第一负载阈值,包括:
S1,获取所述第二负载阈值和第四负载阈值,其中,所述第二负载阈值与所述第四负载阈值之和小于所述路由节点的负载最大值;
S2,在所述当前负载超出所述第二负载阈值与所述第四负载阈值之和的情况下,确定所述路由节点上承载的所述当前负载超出所述第一负载阈值。
可选地,在本实施例中,为每个路由节点设置其对应的第二负载阈值和第四负载阈值。上述第二负载阈值可以但不限于为负载告警阈值Lw,上述第四负载阈值可以但不限于为负载调度缓冲量Ls,当路由节点的当前负载达到或超过Lw+Ls时,则将其部分负载转移出去,使其负载水平降至Lw以下。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述路由节点的负载转移方法的路由节点的负载转移装置,如图5所示,该装置包括:
确定模块52,用于确定路由节点上承载的当前负载超出第一负载阈值,其中,所述路由节点上承载了多个服务进程,所述当前负载为所述多个服务进程的负载之和;
获取模块54,用于从所述多个服务进程中获取一个或者多个目标服务进程,其中,所述当前负载与所述一个或者多个目标服务进程的总负载之间的差值低于第二负载阈值;
转移模块56,用于对所述一个或者多个目标服务进程进行转移。
可选地,所述获取模块,包括:
第一获取单元,用于从所述多个服务进程中获取多个第一服务进程子集合,其中,所述第一服务进程子集合所对应的总负载高于第三负载阈值,所述第三负载阈值为所述当前负载与所述第二负载阈值的差值;
第一确定单元,用于将所述多个第一服务进程子集合中所对应的总负载最小的服务进程子集合确定为第二服务进程子集合;
第二确定单元,用于将所述第二服务进程子集合中所包括的服务进程确定为所述一个或者多个目标服务进程。
可选地,所述第一获取单元,包括:
第一确定子单元,用于确定初始的当前服务进程集合中包括所述多个服务进程,初始的约束目标为所述第三负载阈值;
选取子单元,用于从所述当前服务进程集合中选取一个或者多个服务进程,其中,包括所述一个或者多个服务进程的子集合所对应的总负载高于所述约束目标;
第二确定子单元,用于将包括所述一个或者多个元素的子集合确定为所述第一服务进程子集合。
可选地,所述选取子单元,用于:
重复执行以下步骤,直至所述当前服务进程集合为空或者所述约束目标小于0,得到所述一个或者多个服务进程:
从所述当前服务进程集合中获取一个当前服务进程;
在所述当前服务进程在所述一个或者多个服务进程中的情况下,将所述当前服务进程添加到包括所述一个或者多个元素的子集合中,并将所述当前服务进程从所述当前服务进程集合中移除,以及将所述约束目标更新为所述第三负载阈值与所述当前服务进程的负载的差值;
在所述当前服务进程不在所述一个或者多个服务进程中的情况下,将所述当前服务进程从所述当前服务进程集合中移除。
可选地,第一获取单元,包括:
第三确定子单元,用于确定所述多个服务进程对应的多个第三服务进程子集合;
获取子单元,用于从所述多个第三服务进程子集合中获取所述多个第一服务进程子集合。
可选地,所述转移模块,包括:
第二获取单元,用于从所述路由节点所在的路由集群中获取一个或者多个目标路由节点;
转移单元,用于将所述一个或者多个目标服务进程转移至所述一个或者多个目标服务节点。
可选地,所述确定模块,包括:
第三获取单元,用于获取所述第二负载阈值和第四负载阈值,其中,所述第二负载阈值与所述第四负载阈值之和小于所述路由节点的负载最大值;
第三确定单元,用于在所述当前负载超出所述第二负载阈值与所述第四负载阈值之和的情况下,确定所述路由节点上承载的所述当前负载超出所述第一负载阈值。
作为一种可选的实施例,上述路由节点的负载转移方法可以但不限于应用于如图6所示的游戏应用路由系统的场景中。为了获取高性能、高可靠、高稳定的服务网络,许多后台服务的解决方案要求服务器进行分布式部署,部署于不同机器的服务进行通信时往往需要消息路由系统的支持。这里部署于不同机器的各个服务器产生的通信流程成为路由系统的前端流量,同样因为高性能和高可靠的要求,承载前端流量的路由节点也不是只有一个,而是集群化部署。那么集群内的节点之间如果分配负载,就需要一个负载均衡方案,当某节点负载水平超过危险值时,可以对其进行负载调度,使其负载降至安全水平。对于许多业务来说,不同的负载调度策略会对业务会产生不同的影响。对于网络游戏服务来说,一次负载调度影响到的流量越小,越能保证玩家体验的连贯性和一致性。在本场景中,如图6所示,R1-Rn为路由网络中的n个节点,它们作为一个路由集群为m个服务进程提供消息路由服务。
设置一个路由节点的负载告警阈值Lw及负载调度缓冲量Ls,并监控路由节点的当前负载。当路由节点的当前负载达到或超过Lw+Ls时,则将其部分负载转移出去,使其负载水平降至Lw以下。比如:R2的负载超过了Lw+Ls,如果将其承载的C2进行转移能够使其负载水平降至Lw以下,并且将其承载的C4进行转移也能够使其负载水平降至Lw以下,则将C2和C4中负载较小的C4进行转移,从而使R2的负载水平降至Lw以下的同时,转移的流量最小。
在本场景中,通过提供的上述面向网络游戏服务器中路由系统的负载调度技术,使得端到端的通信路径在发生路由切换时,受影响的流量尽可能的小,从而最大程度地降低了玩家体验的损失。
根据本发明实施例的又一个方面,还提供了一种用于实施上述路由节点的负载转移方法的电子装置,如图7所示,该电子装置包括:一个或多个(图中仅示出一个)处理器702、存储器704、传感器706、编码器708以及传输装置710,该存储器中存储有计算机程序,该处理器被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,确定路由节点上承载的当前负载超出第一负载阈值,其中,所述路由节点上承载了多个服务进程,所述当前负载为所述多个服务进程的负载之和;
S2,从所述多个服务进程中获取一个或者多个目标服务进程,其中,所述当前负载与所述一个或者多个目标服务进程的总负载之间的差值低于第二负载阈值;
S3,对所述一个或者多个目标服务进程进行转移。
可选地,本领域普通技术人员可以理解,图7所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图7其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。
其中,存储器704可用于存储软件程序以及模块,如本发明实施例中的路由节点的负载转移方法和装置对应的程序指令/模块,处理器702通过运行存储在存储器704内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的目标组件的控制方法。存储器704可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器704可进一步包括相对于处理器702远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置710用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置710包括一个网络适配器(NetworkInterface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置710为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器704用于存储应用程序。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,确定路由节点上承载的当前负载超出第一负载阈值,其中,所述路由节点上承载了多个服务进程,所述当前负载为所述多个服务进程的负载之和;
S2,从所述多个服务进程中获取一个或者多个目标服务进程,其中,所述当前负载与所述一个或者多个目标服务进程的总负载之间的差值低于第二负载阈值;
S3,对所述一个或者多个目标服务进程进行转移。
可选地,存储介质还被设置为存储用于执行上述实施例中的方法中所包括的步骤的计算机程序,本实施例中对此不再赘述。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种路由节点的负载转移方法,其特征在于,包括:
确定路由节点上承载的当前负载超出第一负载阈值,其中,所述路由节点上承载了多个服务进程,所述当前负载为所述多个服务进程的负载之和;
从所述多个服务进程中获取一个或者多个目标服务进程,其中,所述当前负载与所述一个或者多个目标服务进程的总负载之间的差值低于第二负载阈值;
对所述一个或者多个目标服务进程进行转移。
2.根据权利要求1所述的方法,其特征在于,从所述多个服务进程中获取所述一个或者多个目标服务进程,包括:
从所述多个服务进程中获取多个第一服务进程子集合,其中,所述第一服务进程子集合所对应的总负载高于第三负载阈值,所述第三负载阈值为所述当前负载与所述第二负载阈值的差值;
将所述多个第一服务进程子集合中所对应的总负载最小的服务进程子集合确定为第二服务进程子集合;
将所述第二服务进程子集合中所包括的服务进程确定为所述一个或者多个目标服务进程。
3.根据权利要求2所述的方法,其特征在于,从所述多个服务进程中获取所述多个第一服务进程子集合,包括:
确定初始的当前服务进程集合中包括所述多个服务进程,初始的约束目标为所述第三负载阈值;
从所述当前服务进程集合中选取一个或者多个服务进程,其中,包括所述一个或者多个服务进程的子集合所对应的总负载高于所述约束目标;
将包括所述一个或者多个元素的子集合确定为所述第一服务进程子集合。
4.根据权利要求3所述的方法,其特征在于,从所述当前服务进程集合中选取一个或者多个服务进程,包括:
重复执行以下步骤,直至所述当前服务进程集合为空或者所述约束目标小于0,得到所述一个或者多个服务进程:
从所述当前服务进程集合中获取一个当前服务进程;
在所述当前服务进程在所述一个或者多个服务进程中的情况下,将所述当前服务进程添加到包括所述一个或者多个元素的子集合中,并将所述当前服务进程从所述当前服务进程集合中移除,以及将所述约束目标更新为所述第三负载阈值与所述当前服务进程的负载的差值;
在所述当前服务进程不在所述一个或者多个服务进程中的情况下,将所述当前服务进程从所述当前服务进程集合中移除。
5.根据权利要求2所述的方法,其特征在于,从所述多个服务进程中获取多个第一服务进程子集合,包括:
确定所述多个服务进程对应的多个第三服务进程子集合;
从所述多个第三服务进程子集合中获取所述多个第一服务进程子集合。
6.根据权利要求1所述的方法,其特征在于,对所述一个或者多个目标服务进程进行转移,包括:
从所述路由节点所在的路由集群中获取一个或者多个目标路由节点;
将所述一个或者多个目标服务进程转移至所述一个或者多个目标服务节点。
7.根据权利要求1至6中任一项所述的方法,其特征在于,确定所述路由节点上承载的所述当前负载超出所述第一负载阈值,包括:
获取所述第二负载阈值和第四负载阈值,其中,所述第二负载阈值与所述第四负载阈值之和小于所述路由节点的负载最大值;
在所述当前负载超出所述第二负载阈值与所述第四负载阈值之和的情况下,确定所述路由节点上承载的所述当前负载超出所述第一负载阈值。
8.一种路由节点的负载转移装置,其特征在于,包括:
确定模块,用于确定路由节点上承载的当前负载超出第一负载阈值,其中,所述路由节点上承载了多个服务进程,所述当前负载为所述多个服务进程的负载之和;
获取模块,用于从所述多个服务进程中获取一个或者多个目标服务进程,其中,所述当前负载与所述一个或者多个目标服务进程的总负载之间的差值低于第二负载阈值;
转移模块,用于对所述一个或者多个目标服务进程进行转移。
9.根据权利要求8所述的装置,其特征在于,所述获取模块,包括:
第一获取单元,用于从所述多个服务进程中获取多个第一服务进程子集合,其中,所述第一服务进程子集合所对应的总负载高于第三负载阈值,所述第三负载阈值为所述当前负载与所述第二负载阈值的差值;
第一确定单元,用于将所述多个第一服务进程子集合中所对应的总负载最小的服务进程子集合确定为第二服务进程子集合;
第二确定单元,用于将所述第二服务进程子集合中所包括的服务进程确定为所述一个或者多个目标服务进程。
10.根据权利要求9所述的装置,其特征在于,所述第一获取单元,包括:
第一确定子单元,用于确定初始的当前服务进程集合中包括所述多个服务进程,初始的约束目标为所述第三负载阈值;
选取子单元,用于从所述当前服务进程集合中选取一个或者多个服务进程,其中,包括所述一个或者多个服务进程的子集合所对应的总负载高于所述约束目标;
第二确定子单元,用于将包括所述一个或者多个元素的子集合确定为所述第一服务进程子集合。
11.根据权利要求10所述的装置,其特征在于,所述选取子单元,用于:
重复执行以下步骤,直至所述当前服务进程集合为空或者所述约束目标小于0,得到所述一个或者多个服务进程:
从所述当前服务进程集合中获取一个当前服务进程;
在所述当前服务进程在所述一个或者多个服务进程中的情况下,将所述当前服务进程添加到包括所述一个或者多个元素的子集合中,并将所述当前服务进程从所述当前服务进程集合中移除,以及将所述约束目标更新为所述第三负载阈值与所述当前服务进程的负载的差值;
在所述当前服务进程不在所述一个或者多个服务进程中的情况下,将所述当前服务进程从所述当前服务进程集合中移除。
12.根据权利要求9所述的装置,其特征在于,第一获取单元,包括:
第三确定子单元,用于确定所述多个服务进程对应的多个第三服务进程子集合;
获取子单元,用于从所述多个第三服务进程子集合中获取所述多个第一服务进程子集合。
13.根据权利要求8所述的装置,其特征在于,所述转移模块,包括:
第二获取单元,用于从所述路由节点所在的路由集群中获取一个或者多个目标路由节点;
转移单元,用于将所述一个或者多个目标服务进程转移至所述一个或者多个目标服务节点。
14.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的方法。
15.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911067392.2A CN110851275B (zh) | 2019-11-04 | 2019-11-04 | 路由节点的负载转移方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911067392.2A CN110851275B (zh) | 2019-11-04 | 2019-11-04 | 路由节点的负载转移方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110851275A true CN110851275A (zh) | 2020-02-28 |
CN110851275B CN110851275B (zh) | 2022-07-29 |
Family
ID=69598742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911067392.2A Active CN110851275B (zh) | 2019-11-04 | 2019-11-04 | 路由节点的负载转移方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110851275B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113413586A (zh) * | 2021-06-23 | 2021-09-21 | 腾讯科技(上海)有限公司 | 一种虚拟对象传送方法、装置、设备及存储介质 |
CN113747192A (zh) * | 2021-11-03 | 2021-12-03 | 腾讯科技(深圳)有限公司 | 一种直播控制方法、装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101867528A (zh) * | 2010-06-25 | 2010-10-20 | 北京星网锐捷网络技术有限公司 | 组播业务处理方法及设备 |
US20110149733A1 (en) * | 2009-12-18 | 2011-06-23 | Hon Hai Precision Industry Co., Ltd. | Router and load balance method thereof |
CN102546355A (zh) * | 2010-12-09 | 2012-07-04 | 上海杉达学院 | 路由器的负载均衡方法 |
CN107835130A (zh) * | 2017-12-12 | 2018-03-23 | 中国联合网络通信集团有限公司 | 一种流量分配方法及装置 |
CN109791505A (zh) * | 2016-10-05 | 2019-05-21 | 瑞典爱立信有限公司 | 控制在数据中心中的资源分配 |
-
2019
- 2019-11-04 CN CN201911067392.2A patent/CN110851275B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110149733A1 (en) * | 2009-12-18 | 2011-06-23 | Hon Hai Precision Industry Co., Ltd. | Router and load balance method thereof |
CN101867528A (zh) * | 2010-06-25 | 2010-10-20 | 北京星网锐捷网络技术有限公司 | 组播业务处理方法及设备 |
CN102546355A (zh) * | 2010-12-09 | 2012-07-04 | 上海杉达学院 | 路由器的负载均衡方法 |
CN109791505A (zh) * | 2016-10-05 | 2019-05-21 | 瑞典爱立信有限公司 | 控制在数据中心中的资源分配 |
CN107835130A (zh) * | 2017-12-12 | 2018-03-23 | 中国联合网络通信集团有限公司 | 一种流量分配方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113413586A (zh) * | 2021-06-23 | 2021-09-21 | 腾讯科技(上海)有限公司 | 一种虚拟对象传送方法、装置、设备及存储介质 |
CN113413586B (zh) * | 2021-06-23 | 2023-09-15 | 腾讯科技(上海)有限公司 | 一种虚拟对象传送方法、装置、设备及存储介质 |
CN113747192A (zh) * | 2021-11-03 | 2021-12-03 | 腾讯科技(深圳)有限公司 | 一种直播控制方法、装置、电子设备和存储介质 |
CN113747192B (zh) * | 2021-11-03 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 一种直播控制方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110851275B (zh) | 2022-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6608545B2 (ja) | サービストラヒック分配方法及び装置 | |
JP6527584B2 (ja) | 積極的ネットワーク障害処理 | |
KR101913490B1 (ko) | 플로우 테이블 관리 방법, 및 관련 디바이스 및 시스템 | |
CN108401492B (zh) | 一种基于混合资源的路由选路方法、装置和服务器 | |
EP3069484A1 (en) | Shortening of service paths in service chains in a communications network | |
CN106797319B (zh) | 网络服务感知路由器及其应用 | |
CN104488234A (zh) | 用于在大型数据中心处的三层网络架构上缩放IPv6的系统和方法 | |
CN104734964A (zh) | 报文处理方法、节点及系统 | |
CN104601467A (zh) | 一种发送报文的方法和装置 | |
CN110851275B (zh) | 路由节点的负载转移方法及装置 | |
CN109040243A (zh) | 一种报文处理方法及装置 | |
JP6265427B2 (ja) | ネットワーク機能の負荷分散システム及び方法 | |
Lee et al. | A self-recovery scheme for service function chaining | |
CN104508651A (zh) | 镜像非对称集群多处理器系统中的连接网 | |
CN109150745A (zh) | 一种报文处理方法及装置 | |
CN110024329B (zh) | 业务功能链和覆盖传输环路预防 | |
CN107249038A (zh) | 业务数据转发方法及系统 | |
EP1515499A1 (en) | System and method for routing network traffic | |
US8964596B1 (en) | Network service aware routers, and applications thereof | |
CN110213170A (zh) | 一种报文传输的方法及装置 | |
US10212079B2 (en) | Router advertisement caching | |
CN105580330B (zh) | 一种数据传输的方法、设备和系统 | |
CN108965025A (zh) | 云计算系统中流量的管理方法和装置 | |
CN107454164A (zh) | 资源下载方法、系统、存储介质及计算机设备 | |
JP7088214B2 (ja) | 通信装置、トラヒック制御方法、制御プログラム、及び、制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40022951 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |