具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本实施例公开一种分布式系统的业务数据管理方法,该方法适用于分布式系统中的中央管理节点,如图1所示,该方法包括如下步骤:
设中央管理节点为A;a、b、c为业务节点。
101,在分布式系统中设置中央管理节点,该中央管理节点接收到各个业务节点定期发送过来的该业务节点当前的负载信息。
所述该业务节点当前的负载信息可以是各个业务节点定期向中央管理节点发送过去,也可以是中央管理节点定期收集过来。
具体执行可为:中央管理节点A接收到来自a业务节点,b业务节点,c业务节点定期发送过来的当前的负载信息a1,b1,c1。
102,中央管理节点根据接收到的负载信息在分布式系统的各个业务节点中查找负载过重的重载业务节点。
具体执行可为:中央管理节点A在读取a 1里的信息时,了解到a业务节点目前负载过重并将a业务节点归入重载业务节点范围内。
103,中央管理节点根据接收到的负载信息在分布式系统的各个业务节点中查找负载较轻的轻载业务节点。
具体执行可为:中央管理节点A在读取b1、c1里的信息时,到b业务节点和c业务节点目前负载较轻并将b业务节点和c业务节点归入轻载业务节点范围内。
104,中央管理节点根据接收到负载信息判断查找到的重载节点上的部分业务数据是否能够迁移到查找到的轻载业务节点上去,如果中央管理节点判定该重载业务节点上的部分业务数据可以迁移到该轻载节点上则执行步骤105;如果中央管理节点判定该重载业务节点上的部分业务数据不可以迁移到该轻载节点上则执行步骤106。
具体可执行可为:中央管理节点A在读取a1时,了解到a业务节点上目前占用资源最多的部分业务数据是X,则中央管理节点A根据读取b1信息时了解到的负载信息判断部分业务数据X对应的负载如果迁移到b业务节点上是否会使b业务节点变得负载较重,如果会使b业务节点变得负载较重,则继续根据读取c1信息时了解到的负载信息判断部分业务数据X对应的负载如果迁移到c业务节点上是否会使c业务节点变得负载较重,如果不会使c业务节点变得负载较重,则执行步骤105,否则执行步骤106。
105,中央管理节点向该重载业务节点发送迁移信号,该迁移控制信号控制重载业务节点将部分业务数据迁移到该轻载业务节点上。
具体执行可为:中央管理节点A向a业务节点发送迁移控制信号,该迁移控制信号指示a业务节点将部分数据X迁移到c业务节点上。
106,结束流程。
其中,上述实施例中的102、103不限定执行的先后顺序,甚至可以同时执行。
上述实施例所描述的本发明,通过采用设置可以定期了解各个业务节点当前负载信息的中央管理节点的技术方案,解决了现有技术当中由于分布式系统中各个业务节点是处于平等地位,而无法及时了解到其它业务节点的负载信息的技术问题,从而取得了可以根据定期接收到的信息及时为重载业务节点减轻负载的有益效果。
本实施例继续公开一种分布式系统的业务数据管理方法,该方法适合分布式系统中的业务节点,如图2所示,该方法包括:
设中央管理节点为A;a0为a业务节点的管理单元,、b0为b业务节点的管理单元,c0为c业务节点的管理节点。
201,在分布式系统中每个业务节点上设置管理单元,该管理单元定期获取所在业务节点当前的负载信息。
具体执行可为:a0定期收集a业务节点当前的负载信息a1,b0定期收集a业务节点当前的负载信息b1,c0定期收集c业务节点当前的负载信息c1。
202,管理单元将定期获取的所在业务节点当前的负载信息向中央管理节点发送。
具体执行可为:a0将定期收集的a业务节点当前的负载信息a1向中央管理节点A发送,b0将定期收集的b业务节点当前的负载信息b1向中央管理节点A发送,c0将定期收集的c业务节点当前的负载信息c1向中央管理节点A发送。
该负载信息的发送过程可以是由管理单元定期主动发送给中央管理节点,也可以是中央管理节点定期向管理单元索取。
203,业务节点接收到中中央管理节点发送过来的迁移控制信号,在该信号中包含有轻载业务节点的信息,例如:轻载节点的地址等。在该迁移控制信号中还包含有重载业务节点可以转移的部分业务数据信息。
具体执行可为:a业务节点接收到中央管理节点A发来的迁移控制信号。该迁移控制信号指示a业务节点将部分业务数据X迁移到c业务节点上并且在迁移信号中还含有c业务节点的地址。
204,根据中央管理节点发来的迁移控制信号的信息,重载业务节点将部分业务数据剪切到上述轻载业务节点上。
具体执行可为:a业务节点根据迁移控制信号的指示将部分业务数据X剪切到c业务节点上。
本实施例所提供的分布式系统的业务数据管理方法具有如下有益效果:
将重载业务节点上的部分业务数据迁移到轻载业务节点上,在减轻重载业务节点的负载量的同时,有效的利用了轻载业务节点的资源。在分布式系统中,对于共同参与处理一项高层业务数据的各个业务节点来说,及时迁移减轻重载业务节点的负载量,有利于提高整个高层业务数据处理的速度,减少处理该高层业务数据时所消耗的时间。
实施例2
本实施例具体地对上述一种分布式系统的业务数据管理方法进行描述,如图3所示,该方法包括:
在分布式系统中设置中央管理节点,同时在每个业务节点上设置管理单元。
301,每个节点上的管理单元定期获取所在节点当前的负载信息。该负载信息中包括该业务节点的当前总负载以及当前的各个业务数据类型对应的分负载。所述业务数据类型对应的分负载为:处理该业务数据的业务组件的负载信息。
302,管理单元将定期获取的所在业务节点当前的负载信息向中央管理节点发送。
该负载信息的发送过程可以是由管理单元定期主动发送给中央管理节点,也可以是中央管理节点定期向管理单元索取。
303,中央管理节点接收到各个业务节点定期发送过来的该业务节点当前的负载信息。
所述该业务节点当前的负载信息可以是各个业务节点定期向中央管理节点发送过去,也可以是中央管理节点定期收集过来。
在现有技术当中的分布式系统里由于各个业务节点在处理和控制能力上是处于平等地位的,所以无法及时的了解其它业务节点的负载信息。本实施例提供的方案因为采用了可以定期了解各个业务节点当前负载信息的中央管理节点的技术方案,所以取得了可以根据了解到的负载信息由中央管理节点及时采取措施,以便平衡各个业务节点的负载的有益效果。
304,每个业务节点的总负载都有预设的第一重载门限,则超过该业务节点预设的第一重载门限的业务节点为重载业务节点;每个业务节点上所运行的业务组件有时也可有预设的第二重载门限,该第二重载门限即为运行在业务节点上的业务组建的重载门限。对于有第二重载门限的业务组件所在的业务节点来说,超过该预设的第二重载门限的业务组件所在的业务节点也为重载业务节点,即分负载超过预设的第二重载门限的业务节点也为重载业务节点。中央管理节点根据接收到的包含总负载和分负载的负载信息里查找符合上述描述的重载业务节点。对于查找到的重载业务节点可将其部分业务数据进行迁移。
305,每个业务节点的总负载可能有预设的第一轻载门限,则不超过该业务节点预设的第一轻载门限的业务节点为轻载节点;每个业务节点上所运行的业务组件有时也可能有预设的第二轻载门限,对于有第二轻载门限的业务组件所在的业务节点来说,该业务节点上业务组件不超过该预设的第二轻载门限,同时总负载不超过预设的第一轻载门限的业务节点业务为轻载节点,即分负载不超过预设的第二轻载门限,同时总负载不超过预设的第一轻载门限的业务节点为轻载业务节点。中央管理节点根据接收到的包含总负载和分负载的负载信息里查找符合上述描述的轻载业务节点。
在305步骤中,预设的第一轻载门限可以等于预设的第一重载门限,此时轻载业务节点为:总负载再不超过预设的第一重载门限的业务节点;同时在305步骤中,预设的第二轻载门限也可以等于预设的第二重载门限。此时轻载业务节点为:分负载不超过预设的第二重载门限,且总负载也不超过预设的第一重载门限的业务节点。
306,确定查找到的重载业务节点上需要转移的部分业务数据。所述重载业务节点,可能是总负载超过预设的第一重载门限的重载业务节点,也可能是分负载超过预设的第二重载门限的重载业务节点。所述需要转移的部分业务数据可为重载业务节点当前占用资源最多的业务组建,也可以为超过第二重载门限的业务组建。
307,当是总负载超过预设的第一重载门限的重载业务节点的情况时,判断是否查找到轻载业务节点,如果没有查找到轻载业务节点,则判定不能够迁移所述重载业务节点中的部分业务数据并执行步骤313;如果查找到轻载业务节点,则判断该轻载业务节点的总负载加上306步骤中部分业务数据对应的负载后,是否超过该轻载业务节点的预设的第一重载门限,如果判断的结果为超过预设的第一重载门限,则判定该重载业务节点的部分业务数据不能够迁移所述轻载业务节点中并执行步骤313;如果判断的结果为不超过预设的第一重载门限,则判定该重载业务节点的部分业务数据能够迁移所述轻载业务节点并执行步骤308;
当是分负载超过预设的第二重载门限的重载业务节点时,判断是否查找到轻载业务节点,当没有查找到轻载业务节点时,则判定不能够迁移所述重载业务节点中的部分业务数据并执行步骤313;如果查找到轻载业务节点,则判断分负载加上306步骤中部分业务数据对应的负载是否超过所述预设的第二重载门限且总负载加上306步骤中部分业务数据对应的负载是否超过所述预设的第一重载门限,如果分负载加上所述部分业务数据对应的负载不超过所述预设的第二重载门限并且总负载加上所述部分业务数据对应的负载也不超过所述预设的第一重载门限则,则判定所述部分业务数据能够迁移到所述轻载业务节点上并执行步骤308;否则,则判定所述部分业务数据不能够迁移到所述轻载业务节点上并执行步骤313。
308,中央管理节点向该重载业务节点发送迁移信号,该迁移控制信号控制重载业务节点将部分业务数据迁移到该轻载业务节点上。
通过上述步骤中所提供的对重载业务节点和轻载业务节点的查找以及判定的技术方案,可以取得在将重载业务节点的部分业务进行迁移时,不会使目标轻载业务节点在接收所述部分业务数据对应的负载后变成重载业务节点的有益效果。
309,中央管理节点将该部分业务数据的地址修改为判定可以进行迁移的目标轻载业务节点的地址。
将迁移的部分业务数据的地址修改为目标轻载业务节点的地址可以取得当需要调用被迁移的部分业务数据进行计算时,不会因为找不到该部分业务数据,而使该部分业务数据丧失其可用性的有益效果。
310,重载业务节点接收到中央管理节点发送过来的迁移控制信号,在该信号中包含有轻载业务节点的信息,例如:轻载节点的地址等。在该迁移控制信号中还包含有重载业务节点可以转移的部分业务数据信息。
311,根据中央管理节点发来的迁移控制信号的信息,重载业务节点将部分业务数据剪切到上述轻载业务节点上,并执行步骤316。
312,当该重载业务节点未接收到中央管理节点发送过来的迁移控制信号时,重载业务节点自动进入反压状态。
313,运行在处于反压状态的重载业务节点上的业务组件对发送过来的业务数据处理的请求发送“请稍后”信号。
314,该重载业务节点上所运行的业务组件丢弃当前正在处理的不重要或者不可靠的业务数据,例如:一些暂时不用并且在需要时可以从其它地方再次获取的业务数据。并将丢弃的业务数据所占用的资源进行回收。
本实施例通过采用丢弃不可靠(如用户数据报协议)或者不重要(如可再次从其它地方获取或者优先级别较低)的业务数据的技术方案,取得了在不能进行迁移的情况下,仍旧可以通过回收资源的方式来到达减轻重载业务节点的负载的有益效果。
315,判断丢弃不重要或者不可靠的业务数据后的业务组件所在的重载业务节点的负载是否仍超过预设的第一重载门限,如果不再超过预设的第一重载门限则执行步骤316;如果仍超过预设的第一重载门限则执行步骤314。
有的重载业务节点上所运行的业务组件有预设的第二重载门限,此时先判断在丢弃不重要或者不可靠的业务数据后的业务组件是否仍超过预设的第二重载门限,如果仍超过预设的第二重载门限则执行步骤314,如果不再超过预设的第二重载门限则再按照315步骤所描述的去执行。
316,停止反压状态并优先发送“可服务”信号给优先级别高并且发送过业务数据处理请求的业务组件。
317,结束反压流程或者迁移流程。
在现有的分布式系统中,由于每个业务节点在处理和控制能力上都是处于同等地位的,所以当它们共同处理一项高层业务数据时,因为无法及时的得知其它业务节点的负载信息,所以导致了某个负载较重的业务节点即重载节点在处理自己应该完成的部分高层业务数据时,无法及时对其进行处理。以至于正项高层业务数据无法按时完成。而本实施例所提供的分布式系统的业务数据管理方法,因为采用了可以定期了解各个业务节点负载信息的中央管理节点的技术方案,所述取得了当有重载业务节点出现时,可以及时将该重载业务节点上的部分业务数据迁移到轻载业务节点的技术效果。在有效的利用了轻载业务节点的资源的同时还取得了加快各个业务节点共同处理的高层业务数据速度的有益效果。
实施例3
本实施例公开一种分布式系统的业务数据管理装置,该装置适合部署在中央管理节点上,如图4所示,该装置包括:接收模块41,重载查找模块42,轻载查找模块43,判断模块44,迁移控制模块45。
接收模块41用于接收业务节点定期发送的该业务节点当前的负载信息;重载查找模块42用于根据接收模块41发送过来的负载信息查找重载业务节点;轻载查找模块33用于根据接收模块41发送过来的负载信息查找轻载业务节点;判断模块44用于在重载查找模块42查找到重载业务节点后判断是否能够迁移所述重载业务节点中的部分业务数据;迁移控制模块45用于当判断模块44能够迁移所述重载业务节点中的业务数据时,向所述重载业务节点发送迁移控制信号,该迁移控制信号控制重载业务节点将部分业务数据迁移到所述轻载业务节点上。
根据接收模块41接收的负载信息中包括的业务节点的总负载信息,重载查找模块42将总负载超过预设的第一重载门限的业务节点作为重载业务节点,轻载查找模块43将总负载不超过预设的第一轻载门限的业务节点作为轻载业务节点。
根据接收模块41接收的负载信息中包括的业务节点的总负载信息及各个业务数据类型对应的分负载信息,重载查找模块42将分负载超过预设的第二重载门限的业务节点作为重载业务节点,轻载查找模块43将分负载不超过预设的第二轻载门限、且总负载不超过预设的第一轻载门限的业务节点作为轻载业务节点。
进一步地,该装置中还包括:修改模块46用于在迁移模块45向所述重载业务节点发送迁移控制信号后,将所述业务数据的地址修改为所述轻载业务节点的地址。
在本实施例中判断模块44包括:第一确定单元441,第一判断单元442,第二判断单元443。
第一确定单元441用于确定查找到的重载业务节点中需要迁移的部分业务数据;第一判断单元442用于判断是否查找到轻载业务节点,当没有查找到轻载业务节点时,判定不能够迁移所述重载业务节点中的部分业务数据;第二判断单元443用于当查找到轻载业务节点时,判断总负载加上所述部分业务数据对应的负载是否超过所述预设的第一重载门限;如果总负载加上所述部分业务数据对应的负载不超过所述预设的第一重载门限,则判定所述部分业务数据能够迁移到所述轻载业务节点上;如果总负载加上所述部分业务数据对应的负载超过所述预设的第一重载门限,则判定所述部分业务数据不能够迁移到所述轻载业务节点上。
进一步地,在本实施例中判断模块44还包括:第二确定单元444,第三判断单元445,第四判断单元446。
第二确定单元444用于确定查找到的重载业务节点中需要迁移的部分业务数据;第三判断单元445用于判断是否查找到轻载业务节点,当没有查找到轻载业务节点时,判定不能够迁移所述重载业务节点中的部分业务数据;第四判断单元446用于当查找到轻载业务节点时,判断分负载加上所述部分业务数据对应的负载是否超过所述预设的第二重载门限,同时总负载加上所述部分业务数据对应的负载是否超过所述预设的第一重载门限;如果分负载加上所述部分业务数据对应的负载不超过所述预设的第二重载门限,同时总负载加上所述部分业务数据对应的负载也不超过所述预设的第一重载门限则,则判定所述部分业务数据能够迁移到所述轻载业务节点上;否则,则判定所述部分业务数据不能够迁移到所述轻载业务节点上。
上述实施例提供的分布式系统的业务数据管理装置,因为有了接收模块41接收到的负载信息,所以方便了重载查找模块42和轻载查找模块43查找重载业务节点和轻载业务节点的过程,解决了现有技术当中,在分布式系统里由于各个业务节点是处于平等的地位而无法及时了解到其它业务节点负载信息的技术问题。
本实施例公开还一种分布式系统的业务数据管理装置,该装置适合部署在业务节点上,如图5所示,该装置包括:管理模块51,发送模块52,第一接收模块53,剪切模块54。
管理模块51用于定期获取业务节点当前的负载信息;发送模块52用于将管理模块51定期获取的信息向中央管理节点发送所述负载信息;第一接收模块53用于接收中央管理节点发来的迁移控制信号,该迁移控制信号中包括轻载业务节点的信息;剪切模块54用于根据第一接收模块53接收到的迁移控制信号里的信息将业务节点中的部分业务数据剪切到所述轻载业务节点。
进一步地,本实施中适合部署在业务节点上的装置还包括:稍后模块55,丢弃模块56。
当第一接收模块53没有接收到迁移控制信号时,稍后模块55用于对业务数据请求发送稍后信号;丢弃模块56用于丢弃当前正在处理的不重要或者不可靠的业务数据。
本实施例提供的分布式系统的业务数据管理装置,有利于分布式系统的业务数据管理方法的实现。取得了在分布式系统中,能够动态的平衡各个业务节点负载量,提供整个分布式系统自我调节能力的有益效果。
实施例4
本实施例具体提供一种分布式系统,如图6所示,该系统包括:业务节点实体61,中央管理实体62。
其中,业务节点实体61用于定期获取业务节点当前的负载信息并向中央管理节点发送所述负载信息。中央管理实体62用于接收业务节点定期发送的该业务节点当前的负载信息;根据负载信息查找重载业务节点和轻载业务节点,并判断是否能够迁移所述重载业务节点中的部分业务数据,当能够迁移所述重载业务节点中的业务数据时,向所述重载业务节点发送迁移控制信号,该迁移控制信号控制重载业务节点将部分业务数据迁移到所述轻载业务节点上。
并且该业务节点实体61还用于在接收所述迁移控制信号时,将业务节点中的部分业务数据剪切到所述轻载业务节点。
本方案的分布式系统具有如下有益效果:动态平衡各个业务节点之间的负载,有效利用分布式系统中各个业务节点的资源,并及时的可减轻重载业务节点负担。
在本实施例中的中央管理实体62还用于将所述业务数据的地址修改为所述轻载业务节点的地址,并且当不能够迁移所述重载业务节点中的业务数据时,不向所述重载业务节点发送迁移控制信号。业务节点实体61还用于当未接收到中央管理节点发来的迁移控制信号时,对业务数据请求发送稍后信号并丢弃当前正在处理的不重要或者不可靠的业务数据。
本发明实施例主要运用于分布式系统中,实现在分布式系统中的业务节点的负载平衡。当然在含有分布式技术的其它系统或者领域中也有可能运用本发明实施例并且随着网络技术的发展有可能应用到本领域的其它场景或者转用到类似或者相近的技术领域上去。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台设备(可以是路由器、也可以是计算机等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。