一种报文处理方法、装置及存储介质与流程

文档序号:26139131发布日期:2021-08-03 14:22阅读:105来源:国知局
一种报文处理方法、装置及存储介质与流程

本发明涉及信息处理技术,尤其涉及一种报文处理方法、装置及存储介质。



背景技术:

随着网络通信技术的发展,在信息处理中逐渐采用批处理(batch)技术。在网络输入输出(i/o)中采用批处理技术,可以在收发包及报文处理流程中,一次函数调用处理多个报文,从而,可以显著提高高速缓存(cache)命中率,分摊函数调用时堆栈/寄存器组上下文切换的开销,调用时间更少,系统负载更低。

现有的批处理技术中,批处理数往往设置为静态值,这样,无法同时满足不同流量模型下网络吞吐与时延的要求,造成批处理数与实际情况不匹配,批处理效率较低。



技术实现要素:

本发明实施例期望提出一种报文处理方法、装置及存储介质,能够根据实际情况,动态计算批处理数,从而提高处理效率。

本发明的技术方案是这样实现的:

本发明实施例提供一种报文处理方法,所述方法包括:

获取待处理报文的报文总数量、未处理的剩余报文数量和已处理的已处理报文数量;

基于所述报文总数量、所述剩余报文数量和所述已处理报文数量,得到批处理数,基于所述批处理数进行报文批处理。

上述方案中,所述报文总数量包括:第i个报文总数量;其中,所述第i个报文总数量为第i个轮询周期内待处理报文的总数量;所述第i个轮询周期为待处理的轮询周期,i为正整数;

所述剩余报文数量包括:第i个剩余报文数量至第i+(t-1)个剩余报文数量;其中,t为待处理轮询周期的周期数,t为大于等于2的整数;

所述已处理报文数量包括:第i个已处理报文数量至第i+(t-1)个已处理报文数量;

所述获取待处理报文的报文总数量、未处理的剩余报文数量和已处理的已处理报文数量,包括:

获取所述第i个轮询周期的所述第i个报文总数量;

在第j-1个批处理数的限制下,对所述待处理报文进行批处理,获取未处理的所述第i个剩余报文数量和已处理的所述第i个已处理报文数量;其中,j为大于等于2的整数;

在第j个批处理数的限制下,继续进行第i+1个轮询周期的批处理,直至到第i+(t-1)个轮询周期时,获取所述第i+(t-1)个已处理报文数量以及未处理的所述第i+(t-1)个剩余报文数量,从而完成了获取所述待处理报文的所述报文总数量、未处理的所述剩余报文数量和已处理的所述已处理报文数量;其中,t为待处理轮询周期的周期数,t为大于等于2的整数。

上述方案中,所述基于所述报文总数量、所述剩余报文数量和所述已处理报文数量,得到批处理数,基于所述批处理数进行报文批处理,包括:

根据所述第i+(t-1)个剩余报文数量、所述第i个报文总数量,以及所述第i个已处理报文数量至所述第i+(t-1)个已处理报文数量,确定第i+t个轮询周期至第i+2(t-1)个轮询周期对应的第j+1个批处理数,供后续进行批处理时使用,从而完成了基于所述报文总数量、所述剩余报文数量和所述已处理报文数量,得到批处理数,基于所述批处理数进行报文批处理。

上述方案中,获取所述第i个轮询周期的所述第i个报文总数量,包括:

若i大于1,则针对第i个轮询周期,获取第i-1个轮询周期的第i-1个剩余报文数量;

接收所述第i组报文,并获取所述第i组报文的第i个接收报文数量,将所述第i-1个剩余报文数量和所述第i个接收报文数量之和确定为所述第i个轮询周期的待处理报文的所述第i个报文总数量。

上述方案中,所述根据所述第i+(t-1)个剩余报文数量、所述第i个报文总数量,以及所述第i个已处理报文数量至所述第i+(t-1)个已处理报文数量,确定第i+t个轮询周期至第i+2(t-1)个轮询周期对应的第j+1个批处理数,包括:

将所述第i+(t-1)个剩余报文数量减去所述第i个报文总数量,再加上所述第i个已处理报文数量至所述第i+(t-1)个已处理报文数量之和,再将所得到的结果除以所述待处理轮询周期的周期数t,得到所述第i+t个轮询周期至所述第i+2(t-1)个轮询周期对应的所述第j+1个批处理数。

上述方案中,所述方法还包括:

若i等于1,则获取第1个轮询周期的待处理报文的第1个报文总数量;

在预设初始批处理数的限制下,对所述待处理报文进行批处理,获取未处理的第1个剩余报文数量和已处理的第1个已处理报文数量;

在预设初始批处理数的限制下,继续进行第2个轮询周期的批处理,直至到第t个轮询周期时,获取第t个已处理报文数量以及未处理的第t个剩余报文数量;其中,t为待处理轮询周期的周期数,t大于等于2;

根据所述第t个剩余报文数量、所述第1个报文总数量,以及所述第1个已处理报文数量至所述第t个已处理报文数量,确定第1+t个轮询周期至第2t-1个轮询周期对应的第2个批处理数,供后续进行批处理时使用。

上述方案中,所述获取第1个轮询周期的待处理报文的第1个报文总数量,包括:

接收所述第1组报文,并获取所述第1组报文的第1个接收报文数量,将所述第1个接收报文数量确定为所述第1个轮询周期的待处理报文的所述第1个报文总数量。

上述方案中,所述根据所述第t个剩余报文数量、所述第1个报文总数量,以及所述第1个已处理报文数量至所述第t个已处理报文数量,确定第1+t个轮询周期至第2t-1个轮询周期对应的第2个批处理数,包括:

将所述第t个剩余报文数量减去所述第1个报文总数量,再加上所述第1个已处理报文数量至所述第t个已处理报文数量之和,再将所得到的结果除以所述待处理轮询周期的周期数t,得到所述第1+t个轮询周期至所述第1+2(t-1)个轮询周期对应的所述第2个批处理数。

上述方案中,所述在第j个批处理数的限制下,对所述待处理报文进行批处理,获取未处理的第i个剩余报文数量和已处理的第i个已处理报文数量,包括:

若在第i个轮询周期处理报文的预定数量大于第j-1个批处理数,则将所述预定数量减少为所述第j-1个批处理数;

对所述待处理报文中满足所述预定数量的报文进行批处理;

获取未处理的第i个剩余报文数量和已处理的第i个已处理报文数量。

本发明实施例还提供一种报文处理装置,包括:

获取单元,用于获取待处理报文的报文总数量、未处理的剩余报文数量和已处理的已处理报文数量;

确定单元,用于基于所述报文总数量、所述剩余报文数量和所述已处理报文数量,得到批处理数;

批处理单元,用于基于所述批处理数进行报文批处理。

上述方案中,所述报文总数量包括:第i个报文总数量,其中,所述第i个报文总数量为第i个轮询周期内待处理报文的总数量,所述第i个轮询周期为待处理的轮询周期,i为正整数;所述剩余报文数量包括:第i个剩余报文数量至第i+(t-1)个剩余报文数量;其中,t为待处理轮询周期的周期数,t为大于等于2的整数;所述已处理报文数量包括:第i个已处理报文数量至第i+(t-1)个已处理报文数量;

所述获取单元,还用于获取第i个轮询周期的第i个报文总数量;获取未处理的所述第i个剩余报文数量和已处理的所述第i个已处理报文数量;以及,获取所述第i+(t-1)个已处理报文数量以及未处理的所述第i+(t-1)个剩余报文数量,其中,t为待处理轮询周期的周期数,t大于等于2;

所述批处理单元,还用于在第j-1个批处理数的限制下,对所述第i个轮询周期的待处理报文进行批处理;以及,在第j个批处理数的限制下,继续进行第i+1个轮询周期的批处理,直至到第i+(t-1)个轮询周期时;

所述确定单元,还用于根据所述第i+(t-1)个剩余报文数量、所述第i个报文总数量,以及所述第i个已处理报文数量至所述第i+(t-1)个已处理报文数量,确定第i+t个轮询周期至第i+2(t-1)个轮询周期对应的第j+1个批处理数,供后续进行批处理时使用。

本发明实施例还提供一种报文处理装置,包括:

存储器,用于存储可执行指令;

处理器,用于执行所述存储器中存储的可执行指令时,实现上述方案中的报文处理方法。

本发明实施例还提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现上述方案中的报文处理方法。

由此可见,本发明实施例提供了一种报文处理方法、装置及存储介质,能够在获取待处理报文的报文总数量、未处理的剩余报文数量和已处理的已处理报文数量之后,基于报文总数量、剩余报文数量和已处理报文数量,得到批处理数,从而基于批处理数进行报文批处理。这样,能够根据进行批处理的实际情况,确定并更新批处理数,从而,自适应调整批处理数,使批处理数与实际情况相匹配,提高了处理效率。

附图说明

图1为本发明实施例提供的一种报文处理方法的应用场景示意图;

图2为本发明实施例提供的一种报文处理方法的流程图一;

图3为本发明实施例提供的一种报文处理方法的流程图二;

图4为本发明实施例提供的一种报文处理方法的流程图三;

图5为本发明实施例提供的一种报文处理方法的流程图四;

图6为本发明实施例提供的一种报文处理方法的流程图五;

图7为本发明实施例提供的一种报文处理方法的流程图六;

图8为本发明实施例提供的一种报文处理方法的流程图七;

图9为本发明实施例提供的一种报文处理方法的流程图八;

图10为本发明实施例提供的一种报文处理方法的效果示意图;

图11为本发明实施例提供的一种报文处理装置的结构示意图一;

图12为本发明实施例提供的一种报文处理装置的结构示意图二。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明的技术方案进一步详细阐述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

如果发明文件中出现“第一/第二”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。

图1是本发明实施例提供的应用场景示意图,如图1所示,报文处理装置可以应用在服务器300中;服务器300与云平台301、客户端1和客户端2保持通信连接,从而,服务器300可以从云平台301、客户端1和客户端2处接收到待处理报文,进而对待处理报文进行批处理。

图2是本发明实施例提供的报文处理方法的一个可选的流程示意图,将结合图2示出的步骤进行说明。

s101、获取待处理报文的报文总数量、未处理的剩余报文数量和已处理的已处理报文数量。

本发明实施例中,报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文处理装置可以采用轮询(polling)的方式对报文进行批处理,即批处理装置定时对报文进行批处理,每次进行批处理的时段称为一个轮询周期。

本发明实施例中,待处理报文的报文总数量包括:第i个报文总数量;其中,第i个报文总数量为第i个轮询周期内待处理报文的总数量;第i个轮询周期为待处理的轮询周期,i为正整数;

剩余报文数量包括:第i个剩余报文数量至第i+(t-1)个剩余报文数量;其中,第i个剩余报文数量至第i+(t-1)个剩余报文数量分别为第i个轮询周期至第i+(t-1)个轮询周期进行批处理后剩余的报文数量;t为待处理轮询周期的周期数,t为大于等于2的整数;

已处理报文数量包括:第i个已处理报文数量至第i+(t-1)个已处理报文数量;其中,第i个已处理报文数量至第i+(t-1)个已处理报文数量分别为第i个轮询周期至第i+(t-1)个轮询周期进行批处理时,被批处理的报文数量。

报文处理装置可以获取第i个轮询周期的第i个报文总数量;然后,在第j-1个批处理数的限制下,对待处理报文进行批处理,获取未处理的第i个剩余报文数量和已处理的第i个已处理报文数量;其中,j为大于等于2的整数;最后,在第j个批处理数的限制下,继续进行第i+1个轮询周期的批处理,直至到第i+(t-1)个轮询周期时,获取第i+(t-1)个已处理报文数量以及未处理的第i+(t-1)个剩余报文数量,从而完成了获取待处理报文的报文总数量、未处理的剩余报文数量和已处理的已处理报文数量。

s102、基于报文总数量、剩余报文数量和已处理报文数量,得到批处理数,基于批处理数进行报文批处理。

本发明实施例中,报文处理装置在获取了第i+(t-1)个剩余报文数量、第i个报文总数量,以及第i个已处理报文数量至第i+(t-1)个已处理报文数量之后,可以根据上述报文数量,确定第i+t个轮询周期至第i+2(t-1)个轮询周期对应的第j+1个批处理数,供后续进行批处理时使用,从而完成了基于报文总数量、剩余报文数量和已处理报文数量,得到批处理数,基于批处理数进行报文批处理。

在本发明的一些实施例中,报文总数量包括:第i个报文总数量;其中,第i个报文总数量为第i个轮询周期内待处理报文的总数量;第i个轮询周期为待处理的轮询周期,i为正整数;剩余报文数量包括:第i个剩余报文数量至第i+(t-1)个剩余报文数量;其中,t为待处理轮询周期的周期数,t为大于等于2的整数;已处理报文数量包括:第i个已处理报文数量至第i+(t-1)个已处理报文数量;可以通过图3示出的s201-s203来实现上述图2示出的s101,将结合各步骤进行说明。

s201、获取第i个轮询周期的第i个报文总数量。

本发明实施例中,报文处理装置可以在上一个轮询周期结束后接收一定量的新到达报文;在本轮询周期开始后,对本轮询周期的所有报文中的部分或者全部进行批处理,其中,本轮询周期的所有报文包括了上一个轮询周期未处理的剩余报文和本轮询周期新到达报文;本轮询周期批处理完成后,结束本轮询周期。例如,第2个轮询周期进行批处理后,剩余了4个未处理报文;第2个轮询周期结束后,接收到了2个新到达报文;在第3个轮询周期开始后,则对包括了第2个轮询周期剩余的4个未处理报文和第2个轮询周期结束后接收的2个新到达报文的本轮询周期所有报文,共计6个报文,中的部分或者全部进行批处理;第3个轮询周期批处理完成后,结束第3个轮询周期。

本发明实施例中,报文处理装置可以预设待处理轮询周期的周期数t,t为大于等于2的整数,将一个待处理轮询周期之后的第t-1个轮询周期确定为下一个待处理轮询周期,依次递推。例如,若预设t为4,将第4个轮询周期确定为第一个待处理轮询周期,则可以确定第4个轮询周期之后的第3个轮询周期,即第7个轮询周期为下一个待处理轮询周期;第7个轮询周期之后的第3个轮询周期,即第10个轮询周期为下下一个待处理轮询周期;依次递推可以得到,当i=1+3n(n>0)时,第i个轮询周期为待处理的轮询周期。又如,若预设t为2,将第1个轮询周期确定为第一个待处理轮询周期,则可以确定第1个轮询周期之后的第1个轮询周期,即第2个轮询周期为下一个待处理轮询周期;第2个轮询周期之后的第1个轮询周期,即第3个轮询周期为下下一个待处理轮询周期;依次递推可以得到,当i=n(n>0)时,第i个轮询周期为待处理的轮询周期。

本发明实施例中,第i个轮询周期的待处理报文的第i个报文总数量包括了:第i-1个轮询周期的第i-1个剩余报文数量,以及所接收的第i组报文的第i个接收报文数量。将第i-1个剩余报文数量与第i个接收报文数量之和确定为第i个报文总数量。

可以理解的是,周期性地设置待处理轮询周期使得待处理轮询周期均匀分布,保证了每次计算批处理数时所采集数据的均匀性,且避免了数据的遗漏采集或者重复采集,从而可以使得所计算的批处理数更加稳定与可靠。

s202、在第j-1个批处理数的限制下,对待处理报文进行批处理,获取未处理的第i个剩余报文数量和已处理的第i个已处理报文数量;其中,j为大于等于2的整数。

本发明实施例中,报文处理装置在第i个轮询周期前的上一个待处理的轮询周期中,确定出第j-1个批处理数,j为大于1的整数。然后,在第j-1个批处理数的限制下,对第i个轮询周期的待处理报文进行批处理,并获取未处理的第i个剩余报文数量和已处理的第i个已处理报文数量。

其中,第i-(t-1)个轮询周期为第i个轮询周期前的上一个待处理的轮询周期,在第i-(t-1)个轮询周期中确定了第j-1个批处理数,第j-1个批处理数用于限制第i-(t-1)+1个轮询周期,直至第i个轮询周期中所进行的批处理。也就是说,每个待处理的轮询周期中会确定一个批处理数,所确定的批处理数用于限制该待处理的轮询周期后的下一个轮询周期,直至该待处理的轮询周期后的下一个待处理轮询周期中所进行的批处理。例如,若预设t为4,第7个轮询周期为一个待处理的轮询周期,则第7个轮询周期中所确定的批处理数会用于限制第8个轮询周期,直至第10个轮询周期(即第7个轮询周期后的下一个待处理的轮询周期,可以代入i+(t-1)中推算得到)中所进行的批处理。

其中,未处理的第i个剩余报文数量,为第i个轮询周期中进行批处理后剩余的报文数量;已处理的第i个已处理报文数量,为第i个轮询周期中进行批处理的报文数量。

本发明实施例中,报文处理装置可以在第i个轮询周期批处理报文前,对第i个轮询周期处理报文的预定数量进行判定。若在第i个轮询周期处理报文的预定数量大于第j-1个批处理数,则报文处理装置将预定数量减少为第j-1个批处理数。也就是说,批处理数限制了一个轮询周期中批处理报文数量的上限,当处理报文的预定数量大于批处理数时,将预定数量减少为批处理数。

可以理解的是,每个待处理的轮询周期中确定的批处理数用于限制该待处理的轮询周期后的下一个轮询周期,直至该待处理的轮询周期后的下一个待处理轮询周期中所进行的批处理。这样,可以实现对批处理数的周期性动态更新,保证了批处理过程的动态调整。

s203、在第j个批处理数的限制下,继续进行第i+1个轮询周期的批处理,直至到第i+(t-1)个轮询周期时,获取第i+(t-1)个已处理报文数量以及未处理的第i+(t-1)个剩余报文数量,从而完成了获取待处理报文的报文总数量、未处理的剩余报文数量和已处理的已处理报文数量。

本发明实施例中,报文处理装置在第j个批处理数的限制下,继续进行第i+1个轮询周期的批处理,同时,获取第i+1个已处理报文数量以及未处理的第i+1个剩余报文数量。直至到第i+(t-1)个轮询周期时,进行第i+(t-1)个轮询周期的批处理,并获取第i+(t-1)个已处理报文数量以及未处理的第i+(t-1)个剩余报文数量,其中,t为待处理轮询周期的周期数,t为大于等于2的整数。这样,在第j个批处理数的限制下,进行了第i+1个轮询周期到第i+(t-1)个轮询周期中每一个轮询周期的批处理,并得到了每一个轮询周期的已处理报文数量以及未处理的剩余报文数量。

其中,第j个批处理数为报文处理装置在待处理的第i个轮询周期中,确定出的批处理数。报文处理装置在第i个轮询周期中确定了第j个批处理数,第j个批处理数用于限制第i+1个轮询周期,直至第i+(t-1)个轮询周期中所进行的批处理。

其中,未处理的第i+1个剩余报文数量为第i+1个轮询周期中进行批处理之后,剩余的报文数量;已处理的第i+1个已处理报文数量为第i+1个轮询周期中进行批处理的报文数量。未处理的第i+(t-1)个剩余报文数量为第i+(t-1)个轮询周期中进行批处理之后,剩余的报文数量;已处理的第i+(t-1)个已处理报文数量为第i+(t-1)个轮询周期中进行批处理的报文数量。第i个轮询周期和第i+(t-1)个轮询周期是相邻两个待处理的轮询周期。也就是说,报文处理装置获取包括相邻两个待处理的轮询周期与这两个轮询周期之间所有轮询周期进行批处理的相关数据,来为确定下一个批处理数做准备。

可以理解的是,获取第i+1个轮询周期到第i+(t-1)个轮询周期中每一个轮询周期的已处理报文数量以及未处理的剩余报文数量,能够为批处理数的确定积累足够的数据基础,使得所确定的批处理数贴近实际、更加可靠。

在本发明的一些实施例中,可以通过图3示出的s204来实现上述图2示出的s102,将结合各步骤进行说明。

s204、根据第i+(t-1)个剩余报文数量、第i个报文总数量,以及第i个已处理报文数量至第i+(t-1)个已处理报文数量,确定第i+t个轮询周期至第i+2(t-1)个轮询周期对应的第j+1个批处理数,供后续进行批处理时使用,从而完成了基于报文总数量、剩余报文数量和已处理报文数量,得到批处理数,基于批处理数进行报文批处理。

本发明实施例中,报文处理装置根据第i+(t-1)个剩余报文数量、第i个报文总数量,以及第i个已处理报文数量至第i+(t-1)个已处理报文数量,确定出第j+1个批处理数,供第i+t个轮询周期至第i+2(t-1)个轮询周期进行批处理时使用。

本发明实施例中,报文处理装置的管理人员可以在任意时刻结束对批处理数的确定与更新;也可以设置循环上限,当对批处理数的确定与更新的次数达到循环上限时,结束对批处理数的确定与更新。在此不做限制。

可以理解的是,本发明实施例根据第i个轮询周期到第i+(t-1)个轮询周期进行批处理的数据,来确定用于限制第i+t个轮询周期至第i+2(t-1)个轮询周期的第j+1个批处理数,也就是说,按照预设周期数,定期根据一段历史轮询周期进行批处理的数据,来确定下一段轮询周期的批处理数。从而,实现了定期根据最相近的历史数据动态更新批处理数,从而,自适应调整批处理数,使批处理数与实际情况相匹配,提高了处理效率。

在本发明的一些实施例中,可以通过图4示出的s2011-s2012来实现上述图3示出的s201,将结合各步骤进行说明。

s2011、若i大于1,则针对第i个轮询周期,获取第i-1个轮询周期的第i-1个剩余报文数量。

本发明实施例中,报文处理装置获取第i-1个轮询周期的第i-1个剩余报文数量,用于确定第i个轮询周期的待处理报文的总数量。其中,第i-1个轮询周期的第i-1个剩余报文数量为第i-1个轮询周期中进行批处理之后,剩余的报文数量。

s2012、接收第i组报文,并获取第i组报文的第i个接收报文数量,将第i-1个剩余报文数量和第i个接收报文数量之和确定为第i个轮询周期的待处理报文的第i个报文总数量。

本发明实施例中,报文处理装置接收第i组报文,并获取第i组报文的第i个接收报文数量;然后将获取到的第i-1个剩余报文数量和第i个接收报文数量相加,所得到的相加之和确定为第i个轮询周期的待处理报文的第i个报文总数量。也就是说,一个轮询周期的报文总数量为上一个轮询周期的剩余报文数量与本轮询周期新接收的报文数量之和。

在本发明的一些实施例中,可以通过图5示出的s2041来实现上述图3示出的s204,将结合各步骤进行说明。

s2041、将第i+(t-1)个剩余报文数量减去第i个报文总数量,再加上第i个已处理报文数量至第i+(t-1)个已处理报文数量之和,再将所得到的结果除以待处理轮询周期的周期数t,得到第i+t个轮询周期至第i+2(t-1)个轮询周期对应的第j+1个批处理数。

本发明实施例中,报文处理装置可以通过计算公式实现上述s2041,示例性的,具体计算公式(1)为:

其中,bj+1为第j+1个批处理数,li+(t-1)为第i+(t-1)个剩余报文数量,li为第i个报文总数量,ba为第a个已处理报文数量,t为待处理轮询周期的周期数。

可以理解的是,根据第i个轮询周期到第i+(t-1)个轮询周期进行批处理的数据,确定用于限制第i+t个轮询周期至第i+2(t-1)个轮询周期的第j+1个批处理数,也就是说,按照预设周期数,定期根据一段历史轮询周期进行批处理的数据,来确定下一段轮询周期的批处理数。从而,实现了定期根据最相近的历史数据动态更新批处理数,使批处理数与实际情况相匹配,提高了处理效率。

在本发明的一些实施例中,若i等于1,可以通过图6示出的s301-s304来实现上述图3示出的s201-s204,将结合各步骤进行说明。

s301、若i等于1,则获取第1个轮询周期的第1个报文总数量。

本发明实施例中,报文处理装置获取第1个轮询周期的第1个报文总数量,其中,第1个报文总数量是第1个轮询周期中待处理报文的总数量。

s302、在预设初始批处理数的限制下,对待处理报文进行批处理,获取未处理的第1个剩余报文数量和已处理的第1个已处理报文数量。

本发明实施例中,报文处理装置对于第1个轮询周期到第t个轮询周期,由于没有足够的批处理历史数据,需要使用预设初始批处理数对批处理进行限制。报文处理装置在预设初始批处理数的限制下,对第1个轮询周期的待处理报文进行批处理,并获取未处理的第1个剩余报文数量和已处理的第1个已处理报文数量。

s303、在预设初始批处理数的限制下,继续进行第2个轮询周期的批处理,直至到第t个轮询周期时,获取第t个已处理报文数量以及未处理的第t个剩余报文数量;其中,t为待处理轮询周期的周期数,t大于等于2。

本发明实施例中,报文处理装置在预设初始批处理数的限制下,继续进行第2个轮询周期的批处理,同时,获取第2个轮询周期的第2个已处理报文数量以及未处理的第2个剩余报文数量。直至到第t个轮询周期时,进行第t个轮询周期的批处理,并获取第t个已处理报文数量以及未处理的第t个剩余报文数量,其中,t为待处理轮询周期的周期数,t大于等于2。

s304、根据第t个剩余报文数量、第1个报文总数量,以及第1个已处理报文数量至第t个已处理报文数量,确定第1+t个轮询周期至第2t-1个轮询周期对应的第2个批处理数,供后续进行批处理时使用。

本发明实施例中,报文处理装置根据第t个剩余报文数量、第1个报文总数量,以及第1个已处理报文数量至第t个已处理报文数量,确定出第2个批处理数,供第1+t个轮询周期至第2t-1个轮询周期进行批处理时使用。

可以理解的是,对于第1个轮询周期至第t个轮询周期,没有足够的历史批处理数据,从而无法通过计算确定出批处理数。因此,设定预设初始批处理数对第1个轮询周期至第t个轮询周期加以限制,可以保证第1个轮询周期至第t个轮询周期的批处理有效进行。

在本发明的一些实施例中,可以通过图7示出的s3011来实现上述图6示出的s301,将结合各步骤进行说明。

s3011、接收第1组报文,并获取第1组报文的第1个接收报文数量,将第1个接收报文数量确定为第1个轮询周期的待处理报文的第1个报文总数量。

本发明实施例中,报文处理装置接收第1组报文,并获取第1组报文的第1个接收报文数量;然后将获取到的第1个接收报文数量确定为第1个轮询周期的待处理报文的第1个报文总数量。

可以理解的是,对于第1个轮询周期,并不存在上一个轮询周期未处理的剩余的报文。因此,将第1个接收报文数量确定为第1个轮询周期的待处理报文的第1个报文总数量。

在本发明的一些实施例中,可以通过图8示出的s3041来实现上述图6示出的s304,将结合各步骤进行说明。

s3041、将第t个剩余报文数量减去第1个报文总数量,再加上第1个已处理报文数量至第t个已处理报文数量之和,再将所得到的结果除以待处理轮询周期的周期数t,得到第1+t个轮询周期至第1+2(t-1)个轮询周期对应的第2个批处理数。

本发明实施例中,报文处理装置可以通过计算公式实现上述s3041,示例性的,具体计算公式(2)为:

其中,b2为第2个批处理数,lt为第t个剩余报文数量,l1为第1个报文总数量,ba为第a个已处理报文数量,t为待处理轮询周期的周期数。

在本发明的一些实施例中,可以通过图9示出的s2021-s2023来实现上述图3示出的s202,将结合各步骤进行说明。

s2021、若在第i个轮询周期处理报文的预定数量大于第j-1个批处理数,则将预定数量减少为第j-1个批处理数。

本发明实施例中,报文处理装置可以在第i个轮询周期批处理报文前,对第i个轮询周期处理报文的预定数量进行判定。若在第i个轮询周期处理报文的预定数量大于第j-1个批处理数,则报文处理装置将预定数量减少为第j-1个批处理数。也就是说,批处理数限制了一个轮询周期中批处理报文数量的上限,当处理报文的预定数量大于批处理数时,将预定数量减少为批处理数。

s2022、对待处理报文中满足预定数量的报文进行批处理。

本发明实施例中,报文处理装置获取待处理报文中满足预定数量的一批报文,然后对获取到的这批报文进行批处理。

s2023、获取未处理的第i个剩余报文数量和已处理的第i个已处理报文数量。

本发明实施例中,报文处理装置在完成第i个轮询周期的批处理后,获取第i个轮询周期中未处理的第i个剩余报文数量和已处理的第i个已处理报文数量。

以下根据应用场景,说明本发明实施例提供的报文处理方法,如图10所示,包括如下:

在网络输入输出系统(netbios,networkbasicinput/outputsystem)中,对报文进行批处理,就是在收发包及报文处理流程中,一次函数调用处理多个报文。根据“时间/空间局部性原理”可得知,批处理可以显著提高处理器高速缓存(cpucache)的命中率,分摊函数调用时堆栈/寄存器组上下文切换的开销。然而,批处理数设置越小,则会增加单包处理开销,降低处理器处理能力,降低网络吞吐,但能够降低单包处理时延,降低网络时延;批处理数设置越大,则会降低单包处理开销,增加处理器处理能力,提高网络吞吐,但会增加单包处理时延,增加网络时延。因此,静态批处理数无法同时满足不同流量模型下网络高吞吐及低时延要求。

s401、设定待处理轮询周期的周期数t=4,轮询周期计数t=1。

s402、在第1个轮询周期中,对待处理报文进行批处理,确认轮询周期计数t没有达到周期数t=4,将轮询周期计数t变更为2。

本发明实施例中,如图10所示,在第1个轮询周期中,第1个轮询周期新到达报文数量为7,第1个轮询周期批处理报文数量为5,第1个轮询周期未处理报文数量为2。报文处理装置在完成批处理后,确认轮询周期计数t没有达到待处理轮询周期的周期数t=4,则将轮询周期计数t变更为2。

s403、在第2个轮询周期中,对待处理报文进行批处理,确认轮询周期计数t没有达到周期数t=4,将轮询周期计数t变更为3。

本发明实施例中,如图10所示,在第2个在轮询周期中,第2个轮询周期新到达报文数量为2,第2个轮询周期批处理报文数量为2,第2个轮询周期未处理报文数量为2。报文处理装置在完成批处理后,确认轮询周期计数t没有达到待处理轮询周期的周期数t=4,则将轮询周期计数t变更为3。

s404、在第3个轮询周期中,对待处理报文进行批处理,确认轮询周期计数t没有达到周期数t=4,将轮询周期计数t变更为4。

本发明实施例中,如图10所示,在第3个在轮询周期中,第3个轮询周期新到达报文数量为2,第3个轮询周期批处理报文数量为2,第3个轮询周期未处理报文数量为2。报文处理装置在完成批处理后,确认轮询周期计数t没有达到待处理轮询周期的周期数t=4,则将轮询周期计数t变更为4。

s405、在第4个轮询周期中,对待处理报文进行批处理,确认轮询周期计数t达到周期数t=4,计算并更新批处理数,将轮询周期计数t变更为1。

本发明实施例中,如图10所示,在第4个在轮询周期中,第4个轮询周期新到达报文数量为0,第4个轮询周期批处理报文数量为2,第4个轮询周期未处理报文数量为0。报文处理装置在完成批处理后,确认轮询周期计数t已经达到待处理轮询周期的周期数t=4,则在第1个轮询周期至第4个轮询周期的批处理数据的基础上,计算并更新批处理数。报文处理装置在完成计算后,将轮询周期计数t变更为1,以供接下来的轮询周期重新计数。

本发明实施例中,报文处理装置在第1个轮询周期至第4个轮询周期的批处理数据的基础上,确定第4个轮询周期的剩余报文数量l4=0,第1个轮询周期的第1个报文总数量l1=7,第1个轮询周期至第4个轮询周期的已处理报文数量分别为b1=5,b2=2,b3=2,b4=2,并将以上数值代入公式(1)中得到计算式(3),计算得到第5个轮询周期至第7个轮询周期对应的第2个批处理数b2:

图11为本发明实施例提供的报文处理装置的一个可选的结构示意图。如图11所示,本发明实施例还提供了一种报文处理装置800,包括:获取单元804、确定单元805、批处理单元806,其中:

获取单元804,用于获取待处理报文的报文总数量、未处理的剩余报文数量和已处理的已处理报文数量;

确定单元805,用于基于报文总数量、剩余报文数量和已处理报文数量,得到批处理数;

批处理单元806,用于基于批处理数进行报文批处理。

在本发明的一些实施例中,报文总数量包括:第i个报文总数量;其中,第i个报文总数量为第i个轮询周期内待处理报文的总数量,第i个轮询周期为待处理的轮询周期,i为正整数;剩余报文数量包括:第i个剩余报文数量至第i+(t-1)个剩余报文数量;其中,t为待处理轮询周期的周期数,t为大于等于2的整数;已处理报文数量包括:第i个已处理报文数量至第i+(t-1)个已处理报文数量;

所述获取单元804,还用于获取第i个轮询周期的第i个报文总数量;获取未处理的第i个剩余报文数量和已处理的第i个已处理报文数量;以及,获取第i+(t-1)个已处理报文数量以及未处理的第i+(t-1)个剩余报文数量;

所述批处理单元806,还用于在第j-1个批处理数的限制下,对第i个轮询周期的待处理报文进行批处理;以及,在第j个批处理数的限制下,继续进行第i+1个轮询周期的批处理,直至到第i+(t-1)个轮询周期时;

所述确定单元805,还用于根据第i+(t-1)个剩余报文数量、第i个报文总数量,以及第i个已处理报文数量至第i+(t-1)个已处理报文数量,确定第i+t个轮询周期至第i+2(t-1)个轮询周期对应的第j+1个批处理数,供后续进行批处理时使用。

在本发明的一些实施例中,所述获取单元804,还用于若i大于1,则针对第i个轮询周期,获取第i-1个轮询周期的第i-1个剩余报文数量;接收第i组报文,并获取第i组报文的第i个接收报文数量,将第i-1个剩余报文数量和第i个接收报文数量之和确定为第i个轮询周期的待处理报文的第i个报文总数量。

在本发明的一些实施例中,所述确定单元805,还用于将第i+(t-1)个剩余报文数量减去第i个报文总数量,再加上第i个已处理报文数量至第i+(t-1)个已处理报文数量之和,再将所得到的结果除以待处理轮询周期的周期数t,得到第i+t个轮询周期至第i+2(t-1)个轮询周期对应的第j+1个批处理数。

在本发明的一些实施例中,所述获取单元804,还用于若i等于1,则获取第1个轮询周期的待处理报文的第1个报文总数量;获取未处理的第1个剩余报文数量和已处理的第1个已处理报文数量;以及,获取第t个已处理报文数量以及未处理的第t个剩余报文数量,其中,t为待处理轮询周期的周期数,t大于等于2;

所述批处理单元806,还用于在预设初始批处理数的限制下,对第1个轮询周期的待处理报文进行批处理;以及,在预设初始批处理数的限制下,继续进行第2个轮询周期的批处理,直至到第t个轮询周期时;

所述确定单元805,还用于根据第t个剩余报文数量、第1个报文总数量,以及第1个已处理报文数量至第t个已处理报文数量,确定第1+t个轮询周期至第2t-1个轮询周期对应的第2个批处理数,供后续进行批处理时使用。

在本发明的一些实施例中,所述获取单元804,还用于接收第1组报文,并获取第1组报文的第1个接收报文数量,将第1个接收报文数量确定为第1个轮询周期的待处理报文的第1个报文总数量。

在本发明的一些实施例中,所述确定单元805,还用于将第t个剩余报文数量减去第1个报文总数量,再加上第1个已处理报文数量至第t个已处理报文数量之和,再将所得到的结果除以待处理轮询周期的周期数t,得到第1+t个轮询周期至第1+2(t-1)个轮询周期对应的第2个批处理数。

在本发明的一些实施例中,所述批处理单元806,还用于若在第i个轮询周期处理报文的预定数量大于第j-1个批处理数,则将预定数量减少为第j-1个批处理数;对待处理报文中满足预定数量的报文进行批处理。

需要说明的是,图12为本发明实施例提供的报文处理装置的一个可选的结构示意图,如图12所示,报文处理装置800的硬件实体包括:处理器801、通信接口802和存储器803,其中:

处理器801通常控制报文处理装置800的总体操作。

通信接口802可以使报文处理装置800通过网络与其他装置或设备通信。

存储器803配置为存储由处理器801可执行的指令和应用,还可以缓存待处理器801以及报文处理装置800中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(randomaccessmemory,ram)实现。

需要说明的是,本发明实施例中,如果以软件功能模块的形式实现上述的检测恶意行为的方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得报文处理装置800(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。

对应地,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的步骤。

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