数据处理系统、方法及令牌管理方法与流程

文档序号:17757553发布日期:2019-05-24 21:25阅读:186来源:国知局
数据处理系统、方法及令牌管理方法与流程

本说明书涉及计算机网络技术领域,尤其涉及数据处理系统、方法及令牌管理方法。



背景技术:

在大数据的背景下,网络数据的吞吐量日益庞大,可能会造成网络系统的过载,造成网络拥塞。

对于网络系统中来说,系统内可以有多个业务单元,其中,每个业务单元均可以为物理机或者架设于物理机上的虚拟机。这些业务单元可以并行运行,在同一时刻可能存在多个业务单元或者同一业务单元的多个进程对同一资源发起并发访问,若不对其进行控制,将会对系统处理数据的能力造成影响。



技术实现要素:

本说明书实施方式的目的在于提供一种数据处理系统、方法及计算机存储介质。能够在流量输入和输出环节进行流量整形和速率限制。

本说明书实施方式提供一种数据处理系统,包括业务单元、令牌管理单元和处理单元,其中,所述业务单元用于向所述令牌管理单元发送令牌获取请求,以获得所述令牌后将业务数据提供给所述处理单元进行处理;所述令牌管理单元用于管理至少一个令牌集,并按照指定规则维持所述令牌集中令牌的数量;所述令牌管理单元在接收到所述令牌获取请求的情况下,将所述令牌集中的令牌发送给发出所述令牌获取请求的业务单元;所述处理单元用于按照指定处理规则对具有所述令牌的业务单元提供的业务数据进行处理。

本说明书实施方式提供一种数据处理方法,应用于业务单元;所述方法包括:业务单元向令牌管理单元发送令牌获取请求;接收令牌管理单元反馈的令牌;其中,所述令牌管理单元管理至少一个令牌集,并按照指定规则维持所述令牌集中令牌的数量;将业务数据和所述令牌提供给处理单元;其中,所述处理单元按照指定处理规则对具有所述令牌的业务数据进行处理。

本说明书实施方式提供一种数据处理方法,应用于令牌管理单元;所述方法包括:

接收业务单元发出的令牌获取请求;将令牌集中的令牌发送给所述业务单元,以用于所述业务单元将所述令牌和业务数据提供给处理单元;其中,所述处理单元对具有所述令牌的业务单元提供的业务数据进行处理;其中,所述令牌集的数量为至少一个,所述令牌集中令牌的数量被依照指定规则维持。

本说明书实施方式提供一种数据处理方法,应用于处理单元,所述方法包括:接收业务单元的业务处理请求;在所述业务处理请求具有令牌的情况下,根据指定处理规则对所述业务处理请求附带的业务数据进行处理;其中,所述业务单元从令牌管理单元得到所述令牌。

本说明书实施方式提供一种令牌管理方法,应用于令牌管理单元,所述令牌管理单元维持有至少两个令牌集;包括:选择一个所述令牌集;将所述令牌集与相邻的令牌集进行令牌数量比较,在数量较少的令牌集中增加指定数量的令牌;或者,将所述令牌集与相邻的令牌集进行令牌数量比较,在数量较多的令牌集中减少指定数量的令牌。

由以上本说明书实施方式提供的技术方案可见,本说明书实施方式通过令牌管理单元向业务单元发送令牌,在业务单元获得令牌的情况下,处理单元才对业务单元的业务数据进行处理的方式,限制了网络中数据流量的速度,调整了数据流量输出速率,降低了系统过载的可能性,并提高了业务数据处理的效率与性能。

附图说明

所包括的附图用来提供对本说明书实施方式的进一步的理解,其构成了说明书的一部分,用于例示本说明书的实施方式,并与文字描述一起来阐释本说明书的原理。显而易见地,下面描述中的附图仅仅是本说明书的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本说明书实施方式提供的数据处理系统的工作流程示意图;

图2为本说明书实施方式提供的数据处理系统结构框图

图3为本说明书实施方式提供的数据处理系统的一个场景示例示意图;

图4为本说明书实施方式提供的仅有一个令牌集时补充和消耗令牌的场景示例示意图;

图5为本说明书实施方式提供的有多个令牌集时补充和消耗令牌的场景示例示意图;

图6为本说明书实施方式提供的应用于业务单元的数据处理方法的工作流程示意图;

图7为本说明书实施方式提供的应用于令牌管理单元的数据处理方法的工作流程示意图;

图8为本说明书实施方式提供的应用于处理单元的数据处理方法的工作流程示意图;

图9为本说明书实施方式提供的令牌管理方法的工作流程示意图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施方式中的附图,对本说明书实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本说明书一部分实施方式,而不是全部的实施方式。基于本说明书中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施方式,都应当属于本说明书保护的范围。

请参阅图1和图2,本说明书实施方式提供一种数据处理系统,包括,业务单元20、令牌管理单元22和处理单元24。

在本实施方式中,所述数据处理系统可以是一个硬件或软件组件分布在不同的网络的计算机或可以联网的硬件设备上,彼此之间可以通过消息传递进行通信和协调的系统。可以采用更多的普通计算机对外提供服务。计算机越多,cpu、内存、存储资源等也就越多,能够处理的并发访问量也就越大。

在本实施方式中,如图1中步骤s10所示,业务单元20向令牌管理单元22发送令牌获取请求。所述业务单元20用于向所述令牌管理单元22发送令牌获取请求,以获得所述令牌后将业务数据提供给所述处理单元24进行处理。

在本实施方式中,所述业务单元20可以包括在网络中有数据需要被处理并拥有网络地址的网络节点设备和驱动该硬件设备工作所必须要的软件。当然,业务单元20也可以仅为具有数据处理能力的硬件设备,或者,仅为运行在硬件设备中的软件。通过所述网络地址可以与所述网络节点设备进行网络数据通信。所述业务单元20包括:工作站、服务器,计算机、用户终端其他网络设备,业务单元20可以提供用于数据交互的网络接口。所述业务单元20可以遵循网络通信协议进行数据信息交互。

在本实施方式中,所述业务单元20可以实现一定的业务功能,通过向令牌管理单元22获取令牌,在得到令牌后才能将业务数据提供给所述处理单元处理24进而实现业务功能。

在本实施方式中,所述令牌可以是遵循一定格式的数据,其用于表示一定的权限。业务单元20获得令牌之后,即具有了所述令牌所表示的权限,从而可以基于所述权限进行资源访问。当数据信息从一个网络节点发送到另一个网络节点时,只有获得令牌的网络节点才有权发送数据。

在本实施方式中,令牌获取请求可以是满足通信协议并遵循一定格式的字符串或代码,其用于表示发出该令牌获取请求的业务单元20请求获得相应的令牌。

在本实施方式中,所述令牌管理单元22用于管理至少一个令牌集,并按照指定规则维持所述令牌集中令牌的数量;所述令牌管理单元22在接收到所述令牌获取请求的情况下,将所述令牌集中的令牌发送给发出所述令牌获取请求的业务单元20。

在本实施方式中,所述令牌管理单元22可以是服务器也可以是其他电子设备。所述令牌管理单元22可以包括具有数据信息处理功能的硬件设备和驱动该硬件设备工作所需必要的软件。当然,所述令牌管理单元22也可以仅为具有数据处理能力的硬件设备,或者,仅为运行在硬件设备中的软件。所述令牌管理单元22可以提供有接口,通过该接口可以进行数据交互。所述令牌管理单元22可以基于可以遵循网络通信协议进行网络数据信息交互。所述令牌管理单元22预设有一定数量的令牌。

在本实施方式中,所述令牌集可以是所述令牌在所述令牌管理单元22的集合。在令牌集中至少包含一个令牌,当所述令牌管理单元22接收到所述业务单元20发送的令牌获取请求时,所述令牌管理单元22可以从所述至少一个令牌集中的一个令牌集中取出至少一个令牌分配所述业务单元20,保证多个令牌获取请求对应的业务单元20都能够获取令牌。

在本实施方式中,所述令牌集可以有最大令牌数量限制。所述令牌集的最大令牌数量小于或等于所述处理单元处理业务数据的能力,如果大于所述处理单元24处理业务数据的能力会造成获取令牌的业务数据要大于处理单元24的处理能力,导致一些业务数据不能够被处理,也不能达到限流的作用。

在本实施方式中,令牌管理单元22可以按照指定规则维持所述令牌集中的令牌数量,所述指定规则可以是预先设定的,也可以是根据当前网络状况而设定的。当所述令牌集的数量满足至少一个指定规则时,由所述令牌管理单元22向所述令牌集补充令牌。通过指定规则维持令牌集中的令牌数量,可以使所述处理单元24按照预先设定的速率和方式处理业务数据或者根据当前网络状况而改变处理速率和方式从而适应当前网络状况,使网络状况维持在一个可控的范围内。

在本实施方式中,指定规则可以包括:每间隔指定时间,向所述令牌集中添加指定数量的令牌;当所述业务单元20使用得到令牌之后,所述令牌管理单元22向所述令牌集增加相应数量的令牌。

在本实施方式中,将所述令牌集中的令牌发送给发出所述令牌获取请求的业务单元20可以包括,如图1中步骤11所示,所述令牌管理单元22接收令牌获取请求。所述令牌管理单元22在接收到所述业务单元20发送的令牌获取请求后,如图1中步骤12所示,令牌管理单元22检查令牌集中的令牌数量是否大于令牌获取数额,所述令牌管理单元20可以检查当前所述至少一个令牌集中的令牌数量,并与所述业务单元20发送的令牌获取数额比较。如果所述令牌管理单元22当前所述至少一个令牌集中的令牌数量大于所述业务单元发送的令牌获取数额时,如图1中步骤s13所示,将令牌发送给所述业务单元20。具体地,可以从所述令牌集中扣减相应数量的令牌,根据请求令牌的业务单元20的网络地址将所述令牌发送给所述业务单元20。如果所述令牌管理单元22当前的总令牌数量小于所述业务单元20发送的令牌获取数额,如图1中步骤s15所示,业务单元等待令牌管理单元补充令牌。具体地,所述令牌管理单元22可以向所述业务单元20反馈信息,并将所述业务单元20发送的获取请求列入请求队列,等待令牌管理单元22补充令牌;也可以将所述令牌获取请求放入请求队列,在所述令牌集中具有令牌时,向令牌获取请求相对应的业务单元20发送通知信息,通知所述业务单元20重新发送令牌获取请求。在所述令牌管理单元补充完令牌后,如图1中步骤s16所示,将令牌发送给所述业务单元20,具体地,所述令牌管理单元22可以根据请求令牌的业务单元20的网络地址将所述令牌发送给所述业务单元20。

在本实施方式中,所述处理单元24用于按照指定处理规则对具有所述令牌的业务单元20提供的业务数据进行处理。

在本实施方式中,所述处理单元24可以包括能够处理并行数据的服务器或者是其他电子设备和驱动硬件设备工作所必须要的软件。当然,处理也可以仅为具有数据处理能力的硬件设备,或者,仅为运行在硬件设备中的软件。所述并行数据可以是服务器或其他电子设备内包含的一组处理单元,每个处理单元存储一个或多个数据元素。当机器执行顺序程序时,可对应于全部或部分的内部处理单元所存的数据同时操作。所述处理单元24可以提供有接口,通过该接口可以进行数据交互。所述处理单元可以基于可以遵循网络通信协议进行网络数据信息交互。

具体地,所述处理单元24可以是网关,在消息投递过程中,至少一个业务单元20同时向用户终端发送消息,通过调用网关接口,网关将至少一个业务单元20发送的消息重新打包,并发送给用户终端;所述处理单元24也可以是搜索引擎,由用户通过用户终端输入搜索信息,执行搜索任务的线程调用搜索引擎接口,由搜索引擎搜索相应的信息。当然,所属领域技术人员在本说明书技术精髓启示下,还可以做出其它变更,所述处理单元24还可以处理其它的业务功能,但只要其实现的功能或效果与本申请相同或相似,均应涵盖于本申请保护范围内。

在本实施方式中,所述指定处理规则可以是预先设定的也可是根据当前网络状况而变化的。如图1中步骤s14和s17所示,业务单元24处理业务数据,当业务单元24提供的业务数据满足至少一个预先设定的指定处理规则时,便对所述业务数据进行处理。所述指定处理规则可以包括,当业务单元20提供的业务数据中包含有令牌时,则所述处理单元24对业务数据进行处理;当多个具有不同优先级且包含有令牌的业务数据同时到达时,将优先级高的业务数据优先处理。

请参阅图3,在一个场景示例中,数据处理系统的架构为一个平台服务器,一个令牌服务器,一个信息发送网关。

在本场景示例中平台要组织限时促销活动,在限时促销活动尚未开始时,平台服务器要向平台的注册会员的手机以短信的形式发送限时促销活动的相关信息。

在本场景示例中平台服务器要发送的短信数量为20万条,在发送这20万条短信的过程中需要调用信息发送网关的接口将这20万条短信发送给注册会员的手机,另外,平台服务器还要向令牌服务器发送令牌获取请求来获取令牌,从而使这20万条短信可以通过信息发送网关发送给注册会员的手机,并且平台服务器规定当没有短信需要发出时就不再向令牌服务器发送令牌获取请求。

在本场景示例中,信息发送网关每秒能够处理并向注册会员的手机发送短信的能力是2万条。

在本场景示例中,令牌服务器管理1个令牌集,这个令牌集中包含2万个令牌,且令牌服务器设定每间隔1秒向令牌集补充一次令牌,每次补充都将令牌集的容量补满。

在本场景示例中,令牌服务器接收到平台服务器发送的20万条令牌获取请求,查询到令牌集中有2万个令牌,将这2万个令牌发送给平台服务器,并向平台服务器发送反馈信息,通知平台服务器当前令牌集的令牌数为0,让平台服务器在接收到令牌后每间隔1秒发送2万条令牌获取请求,直到数据处理完毕。在发送完令牌和反馈信息后令牌补充单元开始补充令牌。业务服务器接收到令牌服务器发送的2万条令牌以及反馈信息后,将接收到的2万个令牌随机分配给2万个执行短信发送任务的线程,每个线程执行1条短信发送任务,并由这2万个线程同时调用信息发送网关的接口,信息发送网关将这2万条短信发送给注册会员的手机。

在本场景示例中,平台服务器在接收到令牌后1秒向令牌服务器发送2万条令牌获取请求,令牌服务器将补充的2万个令牌发送给平台服务器,平台服务器再次将2万个令牌随机分配给2万个执行短信发送任务的线程,这些线程调用信息发送网关接口,发送出2万条短信给注册会员的手机。再次重复8次后,将20万条短信发送给注册会员的手机。

在本场景示例中,通过只有当业务单元从令牌管理单元的至少一个令牌集中获取令牌后,业务单元提供的业务数据才会被处理单元处理的方式,能够减少网络传输数据过程中发生的网络堵塞进而发送数据包丢失的情况,并且通过控制令牌集的令牌补充速率可以进一步控制网络流量。

请参阅图4,在一个场景示例中,数据处理系统的架构为多个移动终端,一个令牌服务器,一个搜索引擎。

在本场景示例中,有3个用户通过移动终端发送搜索世界杯资讯的搜索请求,由搜索引擎响应并处理这些搜索请求,去搜索世界杯资讯。

在本场景示例中,用户通过移动终端向令牌服务器发送令牌获取请求,由令牌服务器从其管理的令牌集取出令牌发送给相应的移动终端,移动终端在获得令牌后,搜索引擎才处理移动终端发送的搜索请求。

在本场景示例中,令牌服务器管理1个令牌集,该令牌集的令牌最大数量为2个令牌,并设定每间隔1秒添加2个令牌,如果令牌数量达到最大令牌数了就不再添加,如果未达到最大令牌数则继续添加。

在本场景示例中,3个用户通过移动终端搜索世界杯资讯,这3个用户终端先后向令牌服务器发送请求获得1个令牌的令牌获取请求,有2个令牌获取请求同时到达令牌服务器,由令牌服务器从令牌集中取出2个令牌,分别将这2个令牌分别发送给这发送这两个令牌获取请求的移动终端,并在1秒后补充令牌。2个获得令牌的移动终端发送的搜索世界杯资讯的搜索请求被搜索引擎处理,这两个用户通过搜索引擎获得了世界杯资讯。

在本场景示例中,第3个令牌获取请求在前2个令牌获取请求达到令牌服务器之后到达令牌服务器,令牌服务器管理的令牌集中没有令牌,令牌服务器就向发送第三个令牌获取请求的移动终端反馈信息,通知第三个移动终端在1秒后再次发送令牌获取请求,1秒后第三个移动终端再次发送令牌获取请求,令牌服务器接收道令牌获取请求后从令牌集中的2个令牌中取出1个令牌分配给移动终端,在1秒后令牌服务器再次补充令牌。在获得令牌后,第三个移动终端发送的搜索世界杯资讯的搜索请求被搜索引擎处理,用户通过搜索引擎获得了世界杯资讯。之后没有用户终端再次发送令牌获取请求,令牌服务器管理的令牌集中始终有2个令牌,并且在令牌没有被消耗的情况下,不再补充令牌。

请参阅图5,在一个场景示例中,数据处理系统的构架为,多个移动终端,一个令牌管理单元,一个搜索引擎。

在本实施方式中,1个用户通过移动终端发送搜索世界杯资讯的搜索请求,由搜索引擎响应并处理这条搜索请求,去搜索世界杯资讯。

在本场景示例中,用户通过移动终端向令牌服务器发送令牌获取请求,由令牌服务器从其管理的令牌集取出令牌发送给相应的移动终端,移动终端在获得令牌后,搜索引擎才处理移动终端发送的搜索请求。

在本场景示例中,令牌服务器管理5个令牌集,这5个令牌集的令牌最大数量为10个,7个,9个,4个,8个,每个令牌集的当前的令牌数量分别是9个,6个,8个,3个,7个,并且为这5个令牌集编号。并设定每间隔1秒添加1个令牌,如果令牌数量达到最大令牌数了就不再添加,如果未达到最大令牌数则继续添加。

在本场景示例中,1个用户通过移动终端搜索世界杯资讯,移动终端先令牌服务器发送请求获得1个令牌的令牌获取请求,令牌获取请求同时到达令牌服务器,令牌服务器随机选中令牌集2,查询令牌集中的令牌数,从令牌集2中的6个令牌取出1个,发送给用户的移动终端,移动终端在获得令牌后,发送的搜索请求被搜索引擎处理,用户获得世界杯资讯的搜索结果。

在本场景示例中,如果选中的令牌集2中的令牌数为0,令牌服务器查询与令牌集2前后相邻的令牌集1和令牌集3中的令牌个数,分别是9个和8个,令牌服务器选择从令牌集1中取出1个令牌,发送给移动终端,移动终端在获得令牌后,发送的搜索请求被搜索引擎处理,用户获得世界杯资讯的搜索结果。

在本场景示例中,令牌服务器每秒添加1个令牌,令牌服务器随机选择一个令牌集,选中令牌集3,令牌集3中有8个令牌,令牌服务器查询与令牌集3前后相邻的令牌集2和令牌集4中令牌的个数,分别是6个和3个,其中令牌集4中的令牌数最少,且令牌集4中的令牌数未达到最大令牌数,向令牌集4中添加1个令牌。

在一个实施方式中,所述业务单元具有需要被所述处理单元进行处理的业务数据之后,才向所述令牌管理单元发送所述令牌获取请求。

在本实施方式中,在业务单元有业务数据需要被所述处理单元进行处理时,业务单元才可以向令牌管理单元发送令牌获取请求,从而从令牌管理单元获取令牌;在业务单元没有需要所述处理单元处理的数据时,业务单元不可以向令牌管理单元发送令牌获取请求,进而无法获得令牌。

在本实施方式中,通过限制所述业务单元向所述令牌管理单元发送令牌获取请求的方式,即只有当业务单元有需要被所述处理单元处理的业务数据时,业务单元才可以向所述令牌管理单元发送令牌获取请求,提高了令牌分配效率,减少了当有业务数据需要处理的业务单元需求令牌时,所述令牌集中无令牌可用,而没有业务数据需要处理的业务单元又有空闲的令牌所造成的网络资源浪费。

在一个实施方式中,所述业务单元包括多个任务,该多个任务具有不同的任务优先级;具有指定任务优先级的任务能在具有业务数据之前,向所述令牌管理单元发送所述令牌获取请求。

在本实施方式中,所述业务单元包括多个任务。可以为,所述业务单元可以实现一定的业务功能,业务功能的实现需要业务单元执行多个不同的任务。所述业务单元中具有执行不同任务的线程,相应的至少一条业务数据可以被分配到不同的线程中以备执行,并由这些线程从所述令牌管理单元获取令牌或和/或调用处理单元接口让所述处理单元对这多个业务数据进行处理进而实现业务功能。

在本实施方式中,该多个任务具有不同的任务优先级。可以为,所述业务单元中具有执行不同任务的线程,相应的业务数据可以被分配到不同的线程中以备执行,所述业务单元为不同的任务线程设定不同的优先级,其中,优先级高的线程中的业务数据可以优先被执行。

在本实施方式中,所述指定优先级可以是预先设定的,当任务满足预先设定的优先级要求时,执行该任务的线程可以优先其他线程,在需要被处理单元处理的业务数据产生之前就可以像所述令牌管理单元发送令牌获取请求。

具体地,例如,平台服务器向用户客户端推送消息,用户可以分为vip用户和普通用户,平台服务器将执行vip用户消息推送的线程设定为高优先级,将执行普通用户消息推送的线程中设定为低优先级。执行vip用户消息推送的线程可以在要进行消息推送之前就提前向令牌管理单元发送令牌获取请求,在具有业务数据时可以立即获得令牌,保证推送给vip用户的消息可以被优先处理。

在本实施方式中,通过为所述业务单元的不同任务设置不同优先级,具有指定优先级的任务可以在具有业务数据之前,向所述令牌管理单元发送所述令牌获取请求的方式。保证重要的业务数据可以被优先处理,也降低了重要的业务数据被丢失的可能性,进一步提高了数据处理的效率与性能。

在一个实施方式中,所述业务单元之间具有不同的业务优先级;具有指定业务优先级的业务单元的任务能在具有业务数据之前,向所述令牌管理单元发送所述令牌获取请求。

在本实施方式中,所述业务单元之间具有不同的业务优先级。可以为不同的业务单元可以实现不同的业务功能,业务功能的实现需要执行一定的任务,业务单元中具有至少一个线程来执行任务。不同业务单元所要实现的不同的业务功能之间可以有不同的优先级,因此为不同的业务单元设定不同的优先级。相应的业务数据可以被分配到各个相应的业务单元的执行线程中以备执行,其中,优先级高的线程中的业务数据可以优先被执行。

在本实施方式中,所述指定业务优先级可以是预先设定的,当业务单元满足预先设定的优先级要求时,执行该业务单元的业务数据的线程可以优先其他线程,在需要被处理单元处理的业务数据产生之前就可以向所述令牌管理单元发送令牌获取请求。

具体地,例如,用户通过用户终端访问网站,用户可以分为vip用户和普通用户,在网站访问量较大的情况下,vip用户登录用户终端,这时用户终端在执行网站访问任务的线程中设置有优先级为高的优先级信息;普通用户登录用户终端,这时用户终端在执行网站访问的线程中设置有优先级为低的优先级信息。vip用户终端执行网站访问的线程就可以在用户要访问网站之前就向令牌管理单元发送令牌获取请求,而普通用户终端只能等到用户进行网站访问时才可以向令牌管理单元发送令牌获取请求,保证了vip用户可以优先访问网站。

在本实施方式中,通过为所述业务单元设置不同优先级,具有指定业务优先级的业务单元可以在具有业务数据之前,向所述令牌管理单元发送所述令牌获取请求的方式。保证重要的业务单元的业务数据可以被优先处理,也降低了重要的业务单元的业务数据被丢失的可能性,进一步提高了数据处理的效率和性能。

在一个实施方式中,所述指定规则包括以下至少之一:每间隔指定时间,向所述令牌集中添加指定数量的令牌;或者,当所述业务单元使用得到的令牌之后,所述令牌管理单元向所述令牌集增加相应数量的令牌。

在本实施方式中,所述指定时间可以是预先设定的也可以是根据当前网络状况设定的,每当间隔所述指定时间后,所述令牌管理单元就向所述令牌集中添加令牌。所述指定时间可以是恒定的也可以是变化的。

具体地,所述令牌管理单元预先设定,每当间隔2秒就向令牌集中添加一定数量的令牌;或者所述令牌管理单元预先设定,第一次向业务单元发送令牌后,间隔2秒向令牌集补充令牌,第二次向业务单元发送令牌后,间隔5秒向令牌集补充令牌,每次向业务单元发送令牌后,间隔不同时间补充令牌;或者当前需要处理的网络数据较多时,每间隔1秒就向令牌集补充令牌,当需要处理的网络数据较少时,调整指定时间,每间隔5秒就像令牌集补充令牌。

在本实施方式中,所述指定数量可以是预先设定的也可以是根据当前网络状况设定的,每当间隔预先设定的指定时间,所述令牌管理单元就向所述令牌集中添加所述指定数量的令牌。所述指定数量可以是恒定的也可以是变化的。

具体地,所述令牌管理单元预先设定,每隔2秒就向就向令牌集中添加2个令牌,无论每一次令牌发放间隔时间多少每次都添加两个令牌;或者所述令牌管理单元预先设定,第一次向业务单元发送令牌后,间隔2秒向令牌集补充2个令牌,第二次向业务单元发送令牌后,间隔5秒向令牌集补充5个令牌,每次向令牌集添加令牌后,间隔不同的时间发送不同数量的令牌;或者当需要处理的网络数据较多时,每次补充5张令牌,当需要处理的网络数据较少时,调整指定数量,每次补充1张令牌。

在本实施方式中,所述令牌管理单元预先设定或根据当前获取网络状况设定,在业务单元获取并使用从令牌管理单元获取的令牌后,所述业务单元使用了多少令牌,就由令牌管理单元向令牌集补充多少令牌。

具体地,令牌管理单元向业务单元发送5个令牌,业务单元将这5个令牌全部使用了,这时令牌管理单元就向所述令牌集补充5个令牌。

在本实施方式中,通过指定一定的规则,由令牌管理单元向所述令牌集中补充令牌的方式。根据网络状况,控制令牌补充的速率和数量,进一步完善网络流量的整形,避免网络拥塞。

在一个实施方式中,在所述令牌集中令牌的数量达到最大令牌数时,停止向所述令牌集中添加令牌。

在本实施方式中,所述令牌集数量达到最大令牌数可以为,所述令牌集存在数量阀值,该阀值即为该令牌集的最大容量。所述令牌集的数量阀值必须小于或等于所述处理单元的最大处理能力,否则就不能起到限流的作用。

在本实施方式中,所述令牌管理单元可以预先设定当令牌集中的令牌数量达到最大令牌数时,无论满足任何令牌补充规则,都不再向令牌集中补充令牌。只有当令牌集中的令牌没有达到令牌最大令牌数,且满足预先设定的令牌补充规则时,才可以向所述令牌集补充令牌。

在本实施方式中,通过设定最大令牌数的方式限制令牌管理单元向所述令牌集补充令牌的方式。在令牌集达到最大令牌数后停止向令牌集补充令牌可以节约网络资源。

在一个实施方式中,在所述令牌管理单元接收到所述令牌获取请求时,所述令牌集中没有令牌的情况下,所述令牌管理单元对所述令牌获取请求的处理方式包括至少以下之一:向发出所述令牌获取请求的业务单元发出反馈信息,以通知所述业务单元重新发出令牌获取请求;或者,将所述令牌获取请求放入请求队列,在所述令牌集中具有令牌时,将所述令牌分配给所述请求队列中令牌获取请求对应的业务单元;或者,将所述令牌获取请求放入请求队列,在所述令牌集中具有令牌时,向所述请求队列中的令牌获取请求对应的业务单元发出通知信息,以通知所述业务单元重新发出令牌获取请求。

在本实施方式中,所述反馈信息可以是按照固定格式编写的字符串或代码,所述令牌管理单元查询当前令牌集中的令牌数量,若令牌集中令牌数量为0,向业务单元发送所述反馈信息。其中,所述反馈信息中可以包括:当前令牌集中令牌的数量,间隔多长时间业务单元可以再次发送令牌获取请求,可以请求的令牌数量等。通知所述业务单元令牌获取失败,在间隔一定时间后或者立即再次发送令牌获取请求的时间信息等。

具体地,业务单元向令牌管理单元发送令牌获取请求,令牌管理单元查询当前令牌集中的令牌数量,当前令牌集中的令牌数量为0,令牌管理单元向业务单元发送反馈信息,通知业务单元当前令牌集中令牌数量为0,并通知业务单元在1秒后再次向令牌管理单元发送令牌获取请求。

在本实施方式中,所述请求队列可以是缓存区或者是存储单元,用于存储所述未请求到令牌的令牌获取请求。请求队列对进入请求队列的令牌获取请求编号,编号的方式可以包括,按照进入的时间来编号;按照发送令牌获取请求业务单元或者任务的优先级编号,优先级越高,编号越靠前,在所述令牌集补充令牌后,按照编号依次对令牌获取请求对应的业务单元分配令牌。

具体地,多个业务单元可以同时向令牌管理单元发送令牌获取请求,令牌管理单元查询当前令牌集中的令牌数量,当令牌集中令牌数量为0时,可以将令牌获取请求按照请求时间依次放入请求队列并编号,当令牌集补充令牌后,对请求队列中的令牌获取请求对应的业务单元按照编号依次分配令牌。

在本实施方式中,在令牌集补充令牌后,可以由令牌补充单元按照编号依次向所述请求队列中的令牌获取请求对应的业务单元发送通知信息,通知所述业务单元可以立即或者间隔一段时间后再次发送令牌获取请求。

在本实施方式中,在所述令牌集中没有令牌的情况下,通过向所述业务单元发送反馈信息和/或将令牌获取请求放入请求队列的方式分配令牌。减少了当业务单元发送令牌获取请求时刚好令牌集中没有令牌所导致的业务数据处理失败的情况,提高了处理业务数据的效率与稳定性。

在一个实施方式中,所述令牌集的数量为多个;所述指定规则包括:在多个令牌集中选择一个令牌集,将所述令牌集与相邻的令牌集数量进行比较,在数量较少的令牌集中增加指定数量的令牌。

在本实施方式中,所述令牌管理单元可以管理多个令牌集,通过管理多个令牌集,防止所述业务单元对单一令牌集每秒的读写次数变大造成的系统可靠性降低。

在所述多个令牌集中,所述令牌管理单元可以随机选择一个令牌集,也可以指向性或按照预先设定的规则选择一个令牌集。查询被选择的令牌集的当前令牌数量,并查询与被选择的令牌集前后相邻或者左右相邻或者上下相邻的令牌集的令牌数量。比较这些令牌集的令牌数量,选择数量较少的令牌集,对数量较小的令牌集补充令牌。

在本实施方式中,所述指定数量可以是预先设定的也可以是根据当前网络状况设定的,可以包括,增加固定的令牌数量;增加变化的令牌数量;间隔固定的时间增加固定的令牌数量;间隔固定的时间增加变化的令牌数量;间隔变化的时间增加固定的令牌数量;间隔变化的时间增加变化的令牌数量等。

在本实施方式中,通过管理多个令牌集,并从中选择一个令牌集,比较被选择的令牌集与相邻的令牌集的令牌数的多少,为令牌数较少的令牌集补充令牌的方式,进一步降低了业务单元发送令牌获取请求后,所述令牌管理单元选择到空令牌集向业务单元分配令牌的可能性,并减少了令牌获取的等待时间。

在一个实施方式中,在所述被选择的令牌集及其相邻的令牌集中令牌的数量均达到最大令牌数时,停止添加令牌。

在本实施方式中,所述令牌管理单元可以预先设定,当选择令牌集后,查询被选择的令牌集当前的令牌数量与被选择的令牌集相邻的令牌集的当前令牌数量,如果被选择的令牌集与被选择的令牌集相邻的令牌集的令牌数量均达到各自的最大令牌数时,则无论满足任何令牌补充规则都停止令牌的补充。

在本实施方式中,通过设定最大令牌数的方式限制令牌管理单元向被选择的令牌集以及与被选择的令牌集相邻的令牌集补充令牌。在令牌集达到最大令牌数后停止向令牌集补充令牌可以节约网络资源。

在一个实施方式中,所述令牌集的数量为多个;每个所述令牌集对应一个最大令牌数;其中,至少部分令牌集的最大令牌数与其他令牌的最大令牌数不同。

在本实施方式中,令牌管理单元管理多个令牌集,其中每一个令牌集都对应一个最大令牌数,且最大令牌数小于或者等与所述处理单元的业务数据处理能力。在所述令牌管理单元管理的令牌集中可以至少有一个与其他的令牌集的令牌数量不同,也可以所有的令牌集的令牌数量均不同。

具体地,令牌管理单元管理5个令牌集,这5个令牌集中的最大令牌数分别为5个,4个,6个,7个,2个,令牌集之间最大令牌个数互不相同。

在本实施方式中,令牌管理单元可以随意设置多个令牌集的最大令牌数量,令牌管理单元管理的总令牌数小于或等于所述处理单元的处理能力即可,没有将各个令牌集的最大令牌数设置为相同的必要。

在一个实施方式中,所述令牌集的数量为多个;所述令牌管理单元在接收到令牌获取请求后,选择一个令牌集,将所述令牌集与相邻的令牌集进行令牌数量比较,在数量较多的令牌集中分配令牌给发出所述令牌获取请求的业务单元。

在本实施方式中,所述令牌管理单元可以比较选择的令牌集以及与被选择的令牌集相邻的令牌集的令牌数量。从中选择令牌数较多的令牌集,并从该令牌数较多的令牌集中分配令牌给相应的业务单元。

在本实施方式中,通过比较被选择的令牌集以及与被选择的令牌集相邻的令牌集的令牌数量,选择令牌较多的令牌集分配令牌给相应的业务单元的方式。提高所述业务单元在发送令牌获取请求后不需要等待即可以获得令牌的可能性,提高了相应业务数据被处理的效率。

在一个实施方式中,所述令牌集数量为多个,所述令牌管理单元在接收到所述令牌获取请求后,选择一个令牌集,在所述令牌集中令牌数量不能匹配所述令牌获取请求时,在与所述令牌集相邻的令牌集中分配令牌给发出所述令牌获取请求的业务单元。

在本实施方式中,所述令牌管理单元在接收到业务单元发送的令牌获取请求后,可以选择一个令牌集向业务单元分配令牌。

在本实施方式中,如果被选择的令牌集中的令牌数量小于令牌获取请求中请求的令牌数量,所述令牌管理单元可以查询与被选择的令牌集相邻的令牌集当前的令牌数量。

在本实施方式中,如果从与被选择的令牌集相邻的令牌集中有一个满足令牌获取请求的请求数量,则从满足令牌获取请求的请求数量的令牌集中分配令牌给业务单元。

在本实施方式中,如果相邻的令牌集都满足令牌获取请求的请求数额,可以从相邻的令牌集中随机选择一个令牌集,从中分配令牌给业务单元;也可以从相邻的令牌集中选择当前令牌数最多的令牌集,从中分配令牌给业务单元。

在本实施方式中,如果相邻令牌集的当前令牌数都不能满足令牌获取请求的请求数额,则通知所述业务单元等待一段时间再次获取。

在本实施方式中,通过从与被选择的令牌集相邻的令牌集中分配令牌给所述业务单元的方式解决了当所述令牌管理单元选择的令牌集无法满足所述业务单元发送的令牌获取请求中的请求数量是而造成的所述业务单元获取不到令牌或者需要等待才能够获取令牌的问题。从而进一步提高了业务单元获取到令牌的可能性,提高了业务数据处理的效率。

本说明书实施方式提供的一种数据处理系统,通过业务单元向令牌管理单元发送令牌获取请求,由令牌管理单元从其管理的至少一个令牌集中分配令牌给业务单元,业务单元的业务数据在有令牌的情况下才能够被处理单元所处理的方式,限制了网络中数据流量的速度,调整了数据流量输出速率,降低了系统过载的可能性,并提高了业务数据的处理效率与性能,并且本系统可以适用于任何需要流量整形和速率限制的场景。

请参阅图6,本说明书实施方式提供一种数据处理方法,所述数据处理方法可以应用于业务单元。所述方法可以包括以下步骤。

步骤s60:业务单元向令牌管理单元发送令牌获取请求。

步骤s62:接收令牌管理单元反馈的令牌;其中,所述令牌管理单元管理至少一个令牌集,并按照指定规则维持所述令牌集中令牌的数量。

步骤s64:将业务数据和所述令牌提供给处理单元;其中,所述处理单元按照指定处理规则对具有所述令牌的业务数据进行处理。

在本实施方式中,执行上述步骤的主体可以是业务单元。

在本实施方式中,所述业务单元可以发送令牌获取请求、接收所述令牌管理单元反馈的令牌、向处理单元提供业务数据和所述令牌。所述业务单元可以提供有预定端口,通过该预定端口可以向所述令牌管理单元发送令牌获取请求信息、接收所述令牌管理单元反馈的配令牌、向处理单元提供业务数据和所述令牌。所述业务服务器可以基于http、tcp/ip或ftp等网络协议与令牌管理单元进行网络数据交互。

本实施方式中所提及的术语和功能,请参照其它实施方式对照解释,在此不再赘述。

请参阅图7,本说明书实施方式提供一种数据处理方法,所述数据处理方法可以应用于令牌管理单元。所述方法可以包括以下步骤。

步骤s70:接收业务单元发出的令牌获取请求。

步骤s72:将令牌集中的令牌发送给所述业务单元,以用于所述业务单元将所述令牌和业务数据提供给处理单元;其中,所述处理单元对具有所述令牌的业务单元提供的业务数据进行处理;其中,所述令牌集的数量为至少一个,所述令牌集中令牌的数量被依照指定规则维持。

本实施方式中所提及的术语和功能,请参照其它实施方式对照解释,在此不再赘述。

请参阅图8,本说明书实施方式提供一种数据处理方法,所述数据处理方法可以应用于处理单元。所述方法可以包括以下步骤。

步骤s80:接收业务单元的业务处理请求。

步骤s82:在所述业务处理请求具有令牌的情况下,根据指定处理规则对所述业务处理请求附带的业务数据进行处理;其中,所述业务单元从令牌管理单元得到所述令牌。

在本实施方式中,所述业务处理请求可以是,满足通信协议并遵循一定格式的字符串或代码,其可以用于表示发出该业务处理请求的业务单元有需要所述处理单元处理的业务数据。所述业务处理请求可以包括,用户通过客户端向搜索引擎发出的搜索请求;平台向用户推送消息的推送请求等。

在本实施方式中,在所述业务单元获得令牌后,可以将令牌附带在业务处理请求中发送给所述处理单元,处理单元可以根据所述业务处理请求是否具有令牌选择是否对业务处理请求中附带的业务数据进行处理。在具有令牌的情况下,所述处理单元可以按照业务处理请求对相应的业务数据进行处理。具体地,2个用户同时使用客户端向搜索引擎发送搜索娱乐新闻的搜索请求,这两个搜索请求一个具有令牌一个没有令牌,搜索引擎可以处理有令牌的搜索请求,搜索相关的娱乐新闻;对于没有令牌的搜索请求可以不做处理。

在本实施方式中,所述指定处理规则可以是预先设定的也可是根据当前网络状况而变化的。当业务单元提供的业务数据满足至少一个预先设定的指定处理规则时,便可以对所述业务数据进行处理。所述指定处理规则可以包括,当业务单元提供的业务数据中包含有令牌时,则所述处理单元对业务数据进行处理;当多个具有不同优先级且包含有令牌的业务数据同时到达时,将优先级高的业务数据优先处理。

在本实施方式中,所述处理单元通过接收所述业务单元发送的业务处理请求,处理具有令牌的业务处理请求,可以调整了数据流量输出速率,降低了系统过载的可能性,并提高了业务数据处理的效率与性能。

请参阅图9,本说明书实施方式提供一种令牌管理方法,所述令牌管理方法可以应用于令牌管理单元,所述令牌管理单元可以维持有至少两个令牌集。所述方法可以包括以下步骤。

s90:选择一个所述令牌集。

s92:将所述令牌集与相邻的令牌集进行令牌数量比较,在数量较少的令牌集中增加指定数量的令牌;或者,将所述令牌集与相邻的令牌集进行令牌数量比较,在数量较多的令牌集中减少指定数量的令牌。

在本实施方式中,选择一个所述令牌集的方式可以包括,从所述至少两个令牌集中随机选择一个令牌集;从所述至少两个令牌集中选择一个指定的令牌集,具体地,例如,为所述至少两个令牌集编号,选择指定编号的令牌集,或者根据所述至少两个令牌集中令牌集的位置选择一个令牌集,例如,选择最左边的令牌集或者最右边的令牌集等。

在本实施方式中,所述相邻的令牌集可以包括,与选择的一个所述令牌集前后相邻,左右相邻,上下相邻等。

在本实施方式中,所述令牌管理单元可以查询选择的一个所述令牌集以及与该选择的一个所述令牌集相邻的令牌集中令牌的数量,在数量较少的令牌集中增加指定数量的令牌或者在数量较多的令牌集中减少指定数量的令牌。

在本实施方式中,所述指定数量可以是预先设定的也可以是根据当前网络状况设定的,可以包括,增加固定的令牌数量;增加变化的令牌数量;间隔固定的时间增加固定的令牌数量;间隔固定的时间增加变化的令牌数量;间隔变化的时间增加固定的令牌数量;间隔变化的时间增加变化的令牌数量等。

在本实施方式中,所述令牌管理单元通过管理至少两个令牌集,并从中选择一个令牌集,比较被选择的令牌集与相邻的令牌集的令牌数的多少,为令牌数较少的令牌集补充令牌,从令牌数多的令牌集中减少令牌的方式,降低了业务单元发送令牌获取请求后,所述令牌管理单元选择到空令牌集向业务单元分配令牌的可能性,并减少了令牌获取的等待时间。

本说明书提供数据处理系统、方法及令牌管理方法,所述数据处理系统包括:业务单元、令牌管理单元和处理单元,其中,所述业务单元用于向所述令牌管理单元发送令牌获取请求,以获得所述令牌后将业务数据提供给所述处理单元进行处理;所述令牌管理单元用于管理至少一个令牌集,并按照指定规则维持所述令牌集中令牌的数量;所述令牌管理单元在接收到所述令牌获取请求的情况下,将所述令牌集中的令牌发送给发出所述令牌获取请求的业务单元;所述处理单元用于按照指定处理规则对具有所述令牌的业务单元提供的业务数据进行处理。本说明书提供的数据处理系统限制了网络中数据流量的速度,调整了数据流量输出速率,降低了系统过载的可能性,并提高了业务数据处理的效率与性能。

上面对本说明书的各种实施方式的描述以描述的目的提供给本领域技术人员。其不旨在是穷举的、或者不旨在将本发明限制于单个公开的实施方式。如上所述,本说明书的各种替代和变化对于上述技术所属领域技术人员而言将是显而易见的。因此,虽然已经具体讨论了一些另选的实施方式,但是其它实施方式将是显而易见的,或者本领域技术人员相对容易得出。本说明书旨在包括在此已经讨论过的本发明的所有替代、修改、和变化,以及落在上述申请的精神和范围内的其它实施方式。

本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,对于应用于业务单元的数据处理方法、应用于令牌管理单元的数据处理方法、应用于处理单元的数据处理方法以及令牌管理方法的实施方式而言,由于其基本相似于数据处理系统的实施方式,所以描述的比较简单,相关之处参见数据处理系统的实施方式的部分说明即可。

本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

虽然通过实施方式描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1