一种数据分发方法及系统的制作方法

文档序号:7928639阅读:119来源:国知局

专利名称::一种数据分发方法及系统的制作方法
技术领域
:本发明涉及通信领域,尤其涉及一种数据分发方法及系统。
背景技术
:随着电信业务的不断发展,对于业务系统的处理能力要求也在不断的提高,目前主要通过由多节点组成系统来提高业务系统的处理能力。图l所示为一种多节点的通信系统结构示意图,由上级节点和下级节点l-n组成一个节点分级的多节点通信系统,其中的下级节点2作为上级节点,还可以与其下级节点A-N组成一个节点分级的多节点通信系统。在这种系统中,上级节点接收发送到系统的数据,再将数据分发给其多个下级节点进行处理。现有的数据分发方法是上级节点将需要处理的数据包有针对性的分发给适合处理该数据包的其下级节点,由该下级节点处理该数据包。以业务系统处理短消息数据包为例,现有的短消息数据包分发具体方法是由上级节点对其接收的每个短消息数据包进行解析,比如解析出主叫和被叫号段信息,根据解析结果将该短消息数据包分发给相应的下级节点进行处理。采用上述方法需要上级节点对每个数据包都进行收包、解包和分发等复杂运算,当系统需要处理大量数据包时,严重影响了数据包的分发效率,并且,系统中的多个下级节点各自的负载情况不同,上级节点不考虑下级节点的负载情况,直接将数据包分发给下级节点,可能造成个别下级节点的负载过大导致降低数据处理的效率,或造成个别下级节点的负载过小导致资源利用率较低,因而降低了业务系统的整体性能。并且,现有的数据分发方法没有完善的容灾处理功能,当下级节点出现异常时,无法做到快速容突处理。
发明内容本发明提供一种数据分发方法及系统,实现上级节点才艮据下级节点当前能够处理的数据量批量分发数据给下级节点,提高数据分发效率并使各下级节点负载均衡,进而提高系统处理数据的整体性能和效率。本发明实施例提供一种数据分发方法,包括多节点的通信系统中的上级节点保存分发周期内待分发的数据;所述上级节点在分发周期到达时,根据下级节点当前能够处理的数据量和当前待分发的数据量,给所述下级节点分发不大于其当前能够处理的数据量的数据。所述下级节点为所述分发周期内接收状态正常的有效下级节点。所述根据下级节点当前能够处理的数据量和当前待分发的数据量,给所述下级节点分发不大于其当前能够处理的数据量的数据,具体包括根据设置的下级节点循环链表,确定所述下级节点为前一个接收数据的下级节点在所述循环链表中的下一个下级节点;其中,所述循环链表为由所述有效下级节点逐一链接组成的闭环链表;获取所述下级节点当前能够处理的数据量;当所述下级节点当前能够处理的数据量大于所述当前待分发的数据量时,给所述下级节点分发所述当前待分发的数据;否则,给所述下级节点分发不大于其当前能够处理的数据量的数据;其中,所述当前待分发的数据量,为分发周期内待分发的数据的数据总量减去已分发的数据量。'所述根据下级节点当前能够处理的数据量和当前待分发的数据量,给所述下级节点分发不大于其当前能够处理的数据量的数据,具体包括获取所述下级节点当前能够处理的数据量;按预设策略确定出分发给所述下级节点的对应数据量;其中,所述对应数据量不大于所述下级节点当前能够处理的数据量;分发所述对应数据量的数据给所述下级节点。所述数据分发方法,还包括通过发送广播消息,确定返回响应消息的下级节点为接收状态正常的有效下级节点。所述数据分发方法,还包括接收所述下级节点发送的包含其当前能够处理的数据量的汇报信息并存储。本发明实施例还一种多节点的通信系统,包括上级节点和下级节点;所述上级节点,用于保存分发周期内待分发的数据;在分发周期到达时,根据下级节点当前能够处理的数据量和当前待分发的数据量,给所述下级节点分发不大于其当前能够处理的数据量的数据。所述下级节点,用于接收所述上级节点分发的数据。所述下级节点为所述分发周期内接收状态正常的有效下级节点。所述上级节点,具体用于根据设置的下级节点循环链表,确定所述下级节点为前一个接收数据的下级节点在所述循环链表中的下一个下级节点;其中,所述循环链表为由所述有效下级节点逐一链接组成的闭环链表;获取所述下级节点当前能够处理的数据量;当所述下级节点当前能够处理的数据量大于所述当前待分发的数据量时,给所述下级节点分发所述当前待分发的数据;否则,给所述下级节点分发不大于其当前能够处理的数据量的数据;其中,所述当前待分发的数据量,为分发周期内待分发的数据的数据总量减去已分发的数据量。所述上级节点,具体用于获取所述下级节点当前能够处理的数据量;按预设策略确定出分发给所述下级节点的对应数据量;其中,所述对应数据量不大于所述下级节点当前能够处理的数据量;分发所述对应数据量的数据给所述下级节点。所述上级节点,还用于通过发送广播消息,确定返回响应消息的下级节点为接收状态正常的有效下级节点;所述下级节点,还用于接收所述上级节点发送的广播消息,并发送响应消息给所述上级节点。所述下级节点,还用于发送包含其当前能够处理的数据量的汇报信息;所述上级节点,还用于接收所述下级节点发送的包含其当前能够处理的数据量的汇报信息并存储。本发明有益效果如下本发明实施例提供的方法,包括上级节点保存分发周期内待分发的数据;在分发周期到达时,根据下级节点当前能够处理的数据量和当前待分发的数据量,给下级节点分发不大于其当前能够处理的数据量的数据。采用本发明提供的方法及系统,实现数据的批量分发,提高了数据的分发效率,同时实现根据下级节点当前能够处理的数据量,给下级节点分发不大于其当前能够处理的数据量的数据,避免下级节点的负载过大而降低数据处理的效率,同时也可以避免下级节点的负载过小导致资源利用率较低,因此,可以使各下级节点负载均衡,提高了系统处理数据的整体性能和效率。图1为多节点的通信系统结构示意图;图2为本发明实施例提供的一种数据分发方法流程图;图3为本发明实施例一提供的一种数据分发方法流程图;图4为本发明实施例二提供的一种数据分发方法流程图;图5为本发明实施例二提供的一种数据分发方法中下级节点循环链表更新流程图6为本发明实施例三提供的一种多节点的通信系统结构示意图。具体实施例方式本发明实施例提供一种数据分发方法,应用于图l所示的多节点的通信系统中上级节点向下级节点分发数据,如图2所示,具体包括步骤S201、上级节点保存分发周期内待分发的数据;步骤S202、根据下级节点当前能够处理的数据量和当前待分发的数据量,给下级节点分发不大于其当前能够处理的数据量的数据。下面结合附图,用具体实施例对本发明提供的方法及相应系统进行详细描述。实施例一实施例一提供一种数据分发方法,如图3所示,具体包括步骤S301、确定出分发周期内接收状态正常的各有效下级节点。实施例一中,系统的上级节点周期地将待分发的数据分发给其下级节点。在分发周期到达时,根据本地存储的系统中各下级节点的接收状态信息,确定出当前接收状态正常的各有效下级节点。上级节点可以通过周期地向其全部下级节点发送广播消息确定各下级节点是否接收状态正常,发送广播消息的周期与上述分发周期相互独立,不存在必然的关系。上级节点发送广播消息后,如果在设定时间内收到下级节点返回的响应消息,则表示该下级节点接收状态正常,否则,表示该下级节点接收状态异常。上级节点确定出下级节点的接收状态后,存储下级节点的接收状态信息。步骤S302、获取各有效下级节点当前能够处理的数据量。通过步骤S301确定出当前接收状态正常的各有效下级节点后,根据本地存储的各下级节点当前能够处理的数据量,获取当前各有效下级节点当前能够处理的数振量。本实施例一中下级节点当前能够处理的数据量由该下级节点在当前分发周期内能够处理的数据量来表示,例如,由该下级节点在当前分发周期内能够处理的数据包的数量来表示。具体的,下级节点当前能够处理的数据量与该下级节点当前时刻的CPU负荷、内存负荷、磁盘负荷和设定的阀值等信息有关,具体如何根据这些信息确定下级节点当前能够处理的数据量可采用现有技术中的各种方法,在此不做详细描述。本实施例一中,上级节点接收下级节点周期地发送的包含该下级节点当前能够处理的数据量的汇报信息,并存储汇报信息中包含的该下级节点当前能够处理的数据量信息,下级节点发送汇报信息的周期与上述分发周期相互独立,不存在必然的关系,较佳地,可以设置发送汇报信息的周期小于分发周期,以便及时更新下级节点当前能够处理的数据量。具体的,上级节点接收到下级节点发送的汇才艮信息后,即更新下级节点数据处理能力表中该下级节点当前能够处理的数据量信息。上级节点可以通过查询下级节点数据处理能力表来获取各有效下级节点当前能够处理的数据量。步骤S303、确定当前待分发的数据量。在分发周期到达时,上级节点确定当前待分发的数据量为在当前分发周期内需要处理的数据量。该步骤与上述步骤S301-S302没有严格的先后顺序,其他实施例中,也可以将该步骤在步骤S301-S302之前执行,也可以与步骤S301-S302同时执行。步骤S304、确定出分发给各有效下级节点的对应数据量。按预设策略,根据各有效下级节点当前能够处理的数据量和在当前分发周期内待分发的数据量,确定出分发给各有效下级节点的对应数据量,其中,确定出的分发给各有效下级节点的对应数据量不大于各有效下级节点当前能够处理的数据量。具体策略可以采取多种方式,例如第一种方式当当前待分发的数据量小于等于各有效下级节点当前能够处理的数据量之和时,确定出的分发给各有效下级节点的对应数据量的比值等于各有效下级节点当前能够处理的数据量的比值;否则,确定出的分发给各有效下级节点的对应数据量为各有效下级节点当前能够处理的数据量。第二种方式优先将数据分发给当前能够处理的数据量最多的有效下级节点,即确定出分发给该有效下级节点其能够处理的数据量,然后将剩余的数据采用相同方法分发给其他各有效下级节点,即也优先将数据分发给其他各有效下级节点中当前能够处理的数据量最多的下级节点,依此类推,直至确定出分发给各有效下级节点的对应数据量。其他实施例中,也可以根据具体情况采用其他具体方式。其他实施例中,有效下级节点当前能够处理的翁:据量也可以由K倍的该有效下级节点当前能够处理的数据量代替,其中,0<K<1。步骤S305、分发对应数据量的数据接给各有效下级节点。采用实施例一提供的数据分发方法,实现上级节点根据下级节点当前能够处理的数据量批量分发数据给下级节点,提高数据分发效率并使各下级节点负载均衡,进而提高系统处理数据的整体性能和效率。实施例二实施例二提供一种数据分发方法,其流程图如图4所示,具体包括步骤S401、实施例二中,系统的上级节点周期地将待分发的数据分发给其下级节点。步骤S402、在当前分发周期到达时,上级节点确定出在当前分发周期内待的数据的数据总量,进而确定当前待分发的数据量为当前分发周期内待分发的数据的数据总量减去已分发的数据量。步骤S403、实施例二中,上级节点可以根据设置的下级节点循环链表,确定出当前接收数据的有效下级节点,其中,该循环链表为由各有效下级节点逐一链接组成的闭环链表,即循环链表中每个有效下级节点指向一个有效下级节点,每个有效下级节点也对应一个指向它的一个有效下级节点。具体确定方法为查询该循环链表,确定当前接收数据的有效下级节点为该循环链表中前一个接收数据的有效下级节点的下一个下级节点。本实施例二中上级节点通过周期地向其全部下级节点发送广播消息确定各下级节点是否接收状态正常,并根据下级节点的原接收状态确定该下级节点的接收状态是否发生改变,在发生改变时,更新下级节点循环链表,具体更新方法在后续实施例中描述。步骤S404、通过步骤S403确定出当前接收数据的有效下级节点后,根据本地存储的各下级节点当前能够处理的数据量,获取当前接收数据的有效下级节点当前能够处理的数据量。本实施例二中下级节点当前能够处理的数据量由该下级节点在当前分发周期内能够处理的数据量来表示,例如,由该下级节点在当前分发周期内能够处理的数据包的数量来表示。具体的,下级节点当前能够处理的数据量与该下级节点当前时刻的CPU负荷、内存负荷、》兹盘负荷和设定的阀值等信息有关,具体如何根据这些信息确定下级节点当前能够处理的数据量可采用现有技术中的各种方法,在此不做详细描述。本实施例二,上级节点接收下级节点周期地发送的包含该下级节点当前能够处理的数据量的汇报信息,并存储汇报信息中包含的该下级节点当前能够处理的数据量信息,下级节点发送汇报信息的周期与上述分发周期相互独立,不存在必然的关系,较佳地,可以设置发送汇报信息的周期小于分发周期,以便及时更新下级节点当前能够处理的数据量。具体的,上级节点接收到下级节点发送的汇报信息后,即更新下级节点数据处理能力表中该下级节点当前能够处理的数据量信息。上级节点可以通过查询下级节点数据处理能力表来获取当前接收数据的有效下级节点当前能够处理的数据量。上述步骤S402与步骤S403-S404之间没有严格的先后顺序,其他实施例中,步骤S402可以在步骤S403-S404之后执行,也可以与步骤S403-S404同时执行。步骤S405、判断当前接收数据的有效下级节点当前能够处理的数据量是否大于当前待分发的数据量,如果是,则进入步骤S407,如果不是,则进入步骤S406。步骤S406、给该有效下级节点分发其当前能够处理的数据量的数据。步骤S407、给该有效下级节点分发当前待分发的数据。步骤S408、进入当前分发周期的下一个分发周期的处理流程。其他实施例中,在步骤S405中也可以判断K倍的当前接收数据的有效下级节点当前能够处理的数据量是否大于当前待分发的数据量,其中,0<K<1;相应的,在步骤S407中给该有效下级节点分发K倍的其当前能够处理的数据量的数据。采用实施例二提供的数据分发方法,实现上级节点根据下级节点当前能够处理的数据量批量分发数据给下级节点,提高数据分发效率并使各下级节点负载均衡,进而提高系统处理数据的整体性能和效率。上述实施例一和实施例二提供的数据分发方法中,还包括了上级节点通过发送广播消息确定其下属的各下级节点是否接收状态正常,因此,在下级节点出现异常时,可以及时获取该信息,实现快速容灾处理。上述实施例一和实施例二提供的数据分发方法中,还包括了下级节点主动发送包含其当前能够处理的数据量的汇报信息,使得上级节点可以在需要获取下级节点当前能够处理的数据量时,快速从本地存储的该信息中获取,提高了业务系统的处理效率。本发明实施例还具体给出实施例二中的下级节点循环链表更新方法,其流程图如图5所示,包括步骤S501、上级节点周期地向其全部下级节点发送广播消息,并且发送广播消息的周期与上述分发周期相互独立,不存在必然的关系。步骤S502、如果下级节点接收状态正常,则该下级节点在接收到上级节点发送的广播消息后,将向上级节点返回响应信息,如果接收状态异常,则不返回响应信息。因此,本步骤中,根据在设定时间内上级节点是否接收到其下级节点返回的响应信息确定该下级节点的当前接收状态,与该下级节点的原接收状态比较后,判断该下级节点的接收状态是否发生改变,如果是,则进入步骤S504,否则,进步步骤S503。步骤S503、相比原接收状态,上级节点的各下级节点的接收状态没有改变,则不更新下级节点循环链表。步骤S504、如果确定下级节点的接收状态由正常接收状态改变为异常接收状态,则在下级节点循环链表中删除该下级节点,同时更新原下级节点循环链表中指向该下级节点的下级节点指向原下级节点循环链表中该下级节点指向的下级节点。如果确定下级节点的接收状态由异常接收状态改变为正常接收状态,则在下级节点循环链表中添加该下级节点,可以添加在任何位置,即可以添加在任意两个下级节点之间,添加后满足,指向该下级节点的下级节点在原下级节点循环链表中指向更新后的下级节点链表中该下级节点指向的下级节点。具体实例如下假设系统中包括一个上级节点和7个下级节点(下级节点l-下级节点7),当前下级节点循环链表如表1所示,如下表l:下级节点循环链表<table>tableseeoriginaldocumentpage14</column></row><table>根据表1所示的下级节点循环链表可知,下级节点5处于异常状态。假设上级节点发送广播消息后,在设定时间内只接收到下级节点1-2、下级节点4和下级节点6-7返回的响应信息,表示下级节点3和下级节点5接收状态异常,进而可知下级节点3的接收状态由正常接收状态改变为异常接收状态,则更新表1所示的下级节点循环链表,更新后的下级节点循环链表如表2所示,如下表2:下级节点循环链表<table>tableseeoriginaldocumentpage15</column></row><table>相比表l不同的是,表2中删除下级节点3,并且下级节点2指向下级节点4。假设再次发送广播消息后,只接收到下级节点1-2、下级节点4-7返回的信息,则表示下级节点3接收状态异常,进而可知下级节点5的接收状态由异常接收状态改变为正常接收状态,则更新表2所示的下级节点循环链表,更新后的下级节点循环链表如表3所示,如下表3:下级节点循环链表<table>tableseeoriginaldocumentpage15</column></row><table>相比表2不同的是,表3中在下级节点4和下级节点6之间添加了下级节点5,并且下级节点4指向下级节点5,下级节点5指向下级节点6。基于同一发明构思,根据本发明实施例一和实施例二提供的数据分发方法,相应地,本发明实施例还提供了一种多节点的通信系统,其结构示意图如图6所示,具体包括上级节点601和下级节点602;上级节点601,用于保存分发周期内待分发的数据;在分发周期到达时,根据下级节点602当前能够处理的数据量和当前待分发的数据量,给下级节点602分发不大于其当前能够处理的数据量的数据。下级节点602,用于接收上级节点601分发的数据。其他实施例中,上述下级节点602为分发周期内接收状态正常的有效下级节点602。其他实施例中,上述上级节点601,具体用于4艮据设置的下级节点循环链表,确定下级节点602为前一个接收数据的下级节点602在循环链表中的下一个下级节点602;其中,循环链表为由有效下级节点602逐一链接組成的闭环链表;获取下级节点602当前能够处理的数据量;当下级节点602当前能够处理的数据量大于当前待分发的凄t据量时,给下级节点602分发当前待分发的数据;否则,给下级节点602分发不大于其当前能够处理的数据量的数据;其中,当前待分发的数据量,为分发周期内待分发的数据的数据总量减去已分发的数据量。其他实施例中,上述上级节点601,具体用于获取下级节点602当前能够处理的数据量;按预设策略确定出分发给下级节点602的对应数据量;其中,对应数据量不大于下级节点当前能够处理的数据量;分发对应数据量的数据给下级节点602。较佳地,其他实施例中,上述上级节点601,还用于通过发送广播消息,确定返回响应消息的下级节点602为接收状态正常的有效下级节点602;上述下级节点602,还用于接收上级节点601发送的广播消息,并发送响应消息给上级节点601。较佳地,其他实施例中,上述下级节点602,还用于发送包含其当前能够处理的数据量的汇才艮信息;上述上级节点601,还用于接收下级节点602发送的包含其当前能够处理的数据量的汇报信息并存储。综上所述,本发明实施例提供的方案,上级节点保存分发周期内待分发的数据;在分发周期到达时,才艮据下级节点当前能够处理的数据量和当前待分发的数据量,给下级节点分发不大于其当前能够处理的凄史据量的数据,实现上级节点根据下级节点当前能够处理的数据量批量分发数据给下级节点,提高数据分发效率并使各下级节点负载均衡,进而提高系统处理数据的整体性能和效率。明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。权利要求1、一种数据分发方法,其特征在于,包括多节点的通信系统中的上级节点保存分发周期内待分发的数据;所述上级节点在分发周期到达时,根据下级节点当前能够处理的数据量和当前待分发的数据量,给所述下级节点分发不大于其当前能够处理的数据量的数据。2、如权利要求1所述的方法,其特征在于,所述下级节点为所述分发周期内接收状态正常的有效下级节点。3、如权利要求2所述的方法,其特征在于,所述根据下级节点当前能够处理的数据量和当前待分发的数据量,给所述下级节点分发不大于其当前能够处理的数据量的数据,具体包括根据设置的下级节点循环链表,确定所述下级节点为前一个接收数据的下级节点在所述循环链表中的下一个下级节点;其中,所述循环链表为由所述有效下级节点逐一链接组成的闭环链表;获取所述下级节点当前能够处理的数据量;当所述下级节点当前能够处理的数据量大于所述当前待分发的数据量时,给所述下级节点分发所述当前待分发的数据;否贝'J,给所述下级节点分发不大于其当前能够处理的数据量的数据;其中,所述当前待分发的数据量,为分发周期内待分发的数据的数据总量减去已分发的数据量。4、如权利要求2所述的方法,其特征在于,所述根据下级节点当前能够处理的数据量和当前待分发的数据量,给所述下级节点分发不大于其当前能够处理的数据量的数据,具体包括获取所述下级节点当前能够处理的数据量;按预设策略确定出分发给所述下级节点的对应数据量;其中,所述对应数据量不大于所述下级节点当前能够处理的数据量;分发所述对应数据量的数据给所述下级节点。5、如权利要求2所述的方法,其特征在于,还包括通过发送广播消息,确定返回响应消息的下级节点为接收状态正常的有效下级节点。6、如权利要求1所述的方法,其特征在于,还包括接收所述下级节点发送的包含其当前能够处理的数据量的汇报信息并存储。7、一种多节点的通信系统,其特征在于,包括上级节点和下级节点;所述上级节点,用于保存分发周期内待分发的数据;在分发周期到达时,根据下级节点当前能够处理的数据量和当前待分发的数据量,给所述下级节点分发不大于其当前能够处理的数据量的数据;所述下级节点,用于接收所述上级节点分发的数据。8、如权利要求7所述的系统,其特征在于,所述下级节点为所述分发周期内接收状态正常的有效下级节点。9、如权利要求8所述的系统,其特征在于,所述上级节点,具体用于根据设置的下级节点循环链表,确定所述下级节点为前一个接收数据的下级节点在所述循环链表中的下一个下级节点;其中,所述循环链表为由所述有效下级节点逐一链接组成的闭环链表;获取所述下级节点当前能够处理的数据量;当所述下级节点当前能够处理的数据量大于所述当前待分发的数据量时,给所述下级节点分发所述当前待分发的数据;否则,给所述下级节点分发不大于其当前能够处理的数据量的数据;其中,所述当前待分发的数据量,为分发周期内待分发的数据的数据总量减去已分发的数据量。10、如权利要求8所述的系统,其特征在于,所述上级节点,具体用于获取所述下级节点当前能够处理的数据量;按预设策略确定出分发给所述下级节点的对应数据量;其中,所述对应数据量不大于所述下级节点当前能够处理的数据量;分发所述对应数据量的数据给所述下级节点。11、如权利要求8所述的系统,其特征在于,所述上级节点,还用于通过发送广播消息,确定返回响应消息的下级节点为接收状态正常的有效下级节点;所述下级节点,还用于接收所述上级节点发送的广播消息,并发送响应消息给所述上级节点。12、如权利要求7所述的系统,其特征在于,所述下级节点,还用于发送包含其当前能够处理的数据量的汇报信息;所述上级节点,还用于接收所述下级节点发送的包含其当前能够处理的数据量的汇报信息并存储。全文摘要本发明公开了一种数据分发方法及系统,包括上级节点保存分发周期内待分发的数据;在分发周期到达时,根据下级节点当前能够处理的数据量和当前待分发的数据量,给下级节点分发不大于其当前能够处理的数据量的数据。采用本发明提供的方法及系统,实现上级节点根据下级节点当前能够处理的数据量批量分发数据给下级节点,提高数据分发效率并使各下级节点负载均衡,进而提高系统处理数据的整体性能和效率。文档编号H04L29/06GK101420462SQ20081023937公开日2009年4月29日申请日期2008年12月11日优先权日2008年12月11日发明者南刘,毅哈,李志杰,杨晓范,波水,邹生根申请人:中国移动通信集团北京有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1