CN113949668B - 一种数据传输控制方法、装置、服务器及存储介质 - Google Patents
一种数据传输控制方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN113949668B CN113949668B CN202111016076.XA CN202111016076A CN113949668B CN 113949668 B CN113949668 B CN 113949668B CN 202111016076 A CN202111016076 A CN 202111016076A CN 113949668 B CN113949668 B CN 113949668B
- Authority
- CN
- China
- Prior art keywords
- token bucket
- token
- queue
- request data
- data transmission
- 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.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 84
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000012545 processing Methods 0.000 claims abstract description 95
- 230000004044 response Effects 0.000 claims abstract description 17
- 230000002441 reversible effect Effects 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 241001633663 Iris pseudacorus Species 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
Classifications
-
- 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/215—Flow control; Congestion control using token-bucket
Abstract
本公开关于一种数据传输控制方法、装置、电子设备及存储介质。所述方法包括:获取请求数据;从令牌桶队列的首个令牌桶开始,依次利用所述令牌桶队列中的令牌桶对所述请求数据进行处理,直至当前令牌桶的处理结果为不满足所述当前令牌桶的数据传输约束条件或遍历完所述令牌桶队列,所述令牌桶队列中包括多个令牌桶,每个令牌桶对应有相应的数据传输约束条件;获取所述令牌桶队列中令牌桶的处理结果,根据所述令牌桶的处理结果确定所述请求数据的处理结果所述请求数据的响应结果。本公开实施例方案,可以实现多约束条件下的数据传输控制,并可以有效提高系统的运行效率。
Description
技术领域
本公开涉及网络报文数据传输技术领域,尤其涉及一种数据传输控制方法、装置、服务器及存储介质。
背景技术
在数据通信网络中,流量模型多属于突发模式。因此需要采取一些限制网络流量的方法来控制突发流量给网络带来的问题,如减缓网络通信阻塞、限制恶意用户快速爬取数据内容等。
相关技术中,常常使用一种基于令牌漏桶的报文限流方法来进行数据传输的控制。在当前报文到来时触发令牌注入的操作,计算该报文与前一报文到来的事件间隔内向令牌漏桶内注入的令牌数;判断桶内的令牌数满足传送该报文的要求时,领取传送该报文所需的令牌数,并允许该报文通过,否则丢弃该报文。而一些应用场景需要考虑多种情况下的约束条件,如每秒不超过1次、每分钟不超过10次、用户查询其他用户的头像、查询其他用户的直播信息等。目前常规的基于令牌漏桶的报文限流方法无法满足上述需求。
发明内容
本公开提供一种数据传输控制方法、装置、服务器及存储介质,以至少解决相关技术中多约束条件下的数据传输限速问题的技术问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种数据传输控制方法,包括:
获取请求数据;
从令牌桶队列的首个令牌桶开始,依次利用所述令牌桶队列中的令牌桶对所述请求数据进行处理,直至当前令牌桶的处理结果为不满足所述当前令牌桶的数据传输约束条件或遍历完所述令牌桶队列,所述令牌桶队列中包括多个令牌桶,每个令牌桶对应有相应的数据传输约束条件;
获取所述令牌桶队列中令牌桶的处理结果,根据所述令牌桶的处理结果确定所述请求数据的响应结果。
可选的,所述方法中,所述根据所述令牌桶队列中令牌桶的处理结果确定所述请求数据的响应结果之后,还包括:
获取预设时间段内各个令牌桶分配令牌失败的次数;
按照所述次数对所述令牌桶队列中的令牌桶进行降序排序,得到重新排列后的令牌桶队列;
根据所述重新排列后的令牌桶队列中的令牌桶对新获取的请求数据进行处理。
可选的,所述方法中,所述预设时间段包括:
与处理所述请求数据的时间点邻近最近的历史时间段。
可选的,所述方法中,所述按照所述次数对所述令牌桶队列中的令牌桶进行降序排序包括:
获取所述令牌桶的三色标记结果,所述三色标记结果包括红色标记、黄色标记、和绿色标记,其中,所述红色标记表征突发流量大于配置的超额突发尺寸,所述黄色标记表征所述突发流量大于配置的承诺突发尺寸且小于所述超额突发尺寸,所述绿色标记表征流量速率小于配置的承诺信息速率;
在所述令牌桶队列中,按照所述三色标记结果中红色标记的个数对令牌桶进行降序排序;当红色标记的个数相同时,按照黄色标记的个数对红色标记个数相同的令牌桶进行降序排序;
将仅包含绿色标记的令牌桶排列在包含黄色标记的令牌桶的后面。
可选的,所述方法中,所述当前令牌桶的处理结果为不满足所述当前令牌桶的数据传输约束条件时,还包括:
从所述当前令牌桶开始,将所述请求数据已获得的令牌桶的令牌相应的归还至所述令牌桶队列中的各个令牌桶。
可选的,所述方法中,所述将所述请求数据已获得的令牌桶的令牌归还至所述令牌桶队列中的各个令牌桶,包括:
倒序归还所述已获得的令牌桶的令牌。
根据本公开实施例的第二方面,还供一种数据传输控制装置,包括:
请求获取模块,用于获取请求数据;
令牌桶队列处理模块,用于从令牌桶队列的首个令牌桶开始,依次利用所述令牌桶队列中的令牌桶对所述请求数据进行处理,直至当前令牌桶的处理结果为不满足所述当前令牌桶的数据传输约束条件或遍历完所述令牌桶队列,所述令牌桶队列中包括多个令牌桶,每个令牌桶对应有相应的数据传输约束条件;
请求结果模块,用于获取所述令牌桶队列中令牌桶的处理结果,根据所述令牌桶的处理结果确定所述请求数据的处理结果所述请求数据的响应结果。
可选的,所述装置中,还包括:
排序模块,用于根据所述令牌桶队列中令牌桶的处理结果确定所述请求数据的响应结果之后获取预设时间段内各个令牌桶分配令牌失败的次数;按照所述次数对所述令牌桶队列中的令牌桶进行降序排序,得到重新排列后的令牌桶队列;根据所述重新排列后的令牌桶队列中的令牌桶对新获取的请求数据进行处理序。可选的,所述装置中,所述预设时间段包括:与处理所述请求数据的时间点邻近最近的历史时间段。
可选的,所述装置中,所述按照所述次数对所述令牌桶队列中的令牌桶进行降序排序包括:
获取所述令牌桶的三色标记结果,所述三色标记结果包括红色标记、黄色标记和绿色标记,其中,所述红色标记表征突发流量大于配置的超额突发尺寸,所述黄色标记表征所述突发流量大于配置的承诺突发尺寸且小于所述超额突发尺寸,所述绿色标记表征流量速率小于配置的承诺信息速率;
在所述令牌桶队列中,按照所述三色标记结果中红色标记的个数对令牌桶进行降序排序;当红色标记的个数相同时,按照黄色标记的个数对红色标记个数相同的令牌桶进行降序排序;
将仅包含绿色标记的令牌桶排列在包含黄色标记的令牌桶的后面。
可选的,所述装置中,还包括:
令牌归还模块,以用于当前令牌桶的处理结果为不满足所述当前令牌桶的数据传输约束条件时,从所述当前令牌桶开始,将所述请求数据已获得的令牌桶的令牌相应的归还至所述令牌桶队列中的各个令牌桶。
可选的,所述装置中,所述将所述请求数据已获得的令牌桶的令牌归还至所述令牌桶队列中的各个令牌桶,包括:
倒序归还所述已获得的令牌桶的令牌。
本公开实施例的第三方面,还提供一种电子设备,包括:
至少一个处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现本公开第一方面任一所述的方法。
本公开实施例的第四方面,还提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令被电子设备的处理器执行时,使得所述电子设备能够执行本公开第一方面任一所述的方法。
本公开实施例的第五方面,还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现本公开第一方面任一所述的方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开实施例方案,提供多约束条件下的令牌桶限速方案,解决了多约束场景下的限速问题,能够将多个约束条件转化为多个令牌桶,多个令牌桶组成令牌桶队列。依次根据令牌桶队列中的令牌桶对请求数据进行处理,根据本公开实施例方案,可以实现多个约束条件下的请求数据处理,解决了多约束条件的数据传输控制场景问题,提高系统的运行效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种数据传输控制方法的应用环境图。
图2是根据一示例性实施例示出的一种数据传输控制方法的流程图。
图3是根据一示例性实施例示出的一种令牌桶的数据传输控制示意图。
图4是根据一示例性实施例示出的一种令牌桶队列的示意图。
图5是根据一示例性实施例示出的一种数据传输控制方法的流程图。
图6是根据一示例性实施例示出的一种令牌桶队列重新排序的流程示意图。
图7是根据一示例性实施例示出的一种数据传输控制方法的流程图。
图8是根据一示例性实施例示出的一种数据传输控制方法的流程图。
图9是根据一示例性实施例示出的倒序归还令牌的场景示意图。
图10是根据一示例性实施例示出的一种数据传输控制装置的框图。
图11是根据一示例性实施例示出的一种数据传输控制装置的框图。
图12是根据一示例性实施例示出的一种数据传输控制装置的框图。
图13是根据一示例性实施例示出的一种用于数据传输控制的设备S00的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本公开所提供的一种数据传输控制方法,可以应用于如图1所示的应用环境中。其中,多个终端110可以向服务器120请求数据。服务器120可以根据多个约束条件设置的令牌桶来对请求进行处理,并可以将处理结果返回给终端110。本公开实施例中所述的终端110可以包括但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑、可穿戴设备、车载设备、医疗设备等。所述的终端110可以是可移动的,如智能手机,也可以是相对固定的,如自助拍摄终端,也可以是可拆卸的终端设备,如服务平台连接的拍摄设备。本公开实施例中所述的服务器可以是单台服务器、服务器集群、分布式分系统、云处理平台、包含区块链节点的服务器以及其组合的设备。
目前常规的基于令牌漏桶的报文限流方法只能解决单个约束条件下的限速问题,其主要是方案是定义一套CIR、CBS、EBS,本质上都是进行了单个约束条件限速,把流量调控在CIR附近。目前的方案缺少可以应用于有多个数据传输约束条件的场景中。
还需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
下面以某个账户登录的移动终端向服务器请求数据以获取数据内容的实施场景对本公开实施例方案进行说明。图2是根据一示例性实施例示出的一种数据传输控制方法的流程图,如图2所示,所述方法可以用于终端120中,可以包括以下步骤。
在步骤S202中,获取请求数据。
本公开实施例中,账户所在的终端可以向服务器发送请求,服务器可以获取账户的请求数据。所述账户可以包括由用户名和密码组成的账户。所述请求数据可以包括如http(Hyper Text Transfer Protocol,HTTP,超文本传输协议)请求,又或者在某个内容平台上,发送的查询请求,以获取相关数据。移动终端可以根据所述请求数据实现与服务器的通信,服务器可以接收终端账户发送的请求数据,向移动终端发送所述请求数据对应响应数据,如请求是否通过或者在请求通过时返回的其他数据信息。
在步骤S204中,从令牌桶队列的首个令牌桶开始,依次利用所述令牌桶队列中的令牌桶对所述请求数据进行处理,直至当前令牌桶的处理结果为不满足所述当前令牌桶的数据传输约束条件或遍历完所述令牌桶队列,所述令牌桶队列中包括多个令牌桶,每个令牌桶对应有相应的数据传输约束条。
本实施例中可以应用于有多个数据传输约束条件的数据请求应用场景中。服务器可以将数据传输的多个约束条件转换为对应的多个令牌桶。所述多个令牌桶可以按照预设的顺序连接一起组成令牌桶队列。服务器接收到请求数据之后,可以从令牌桶的首个令牌桶开始,依次访问令牌桶队列中令牌桶。每次访问到的令牌桶(可以成为当前令牌桶)可以根据当前令牌桶对应的数据传输约束条件来确定接受所述请求数据还是拒绝所述请求数据。直至当前令牌桶的处理结果为不满足所述当前令牌桶的数据传输约束条件或遍历完所述令牌桶队列。所述令牌桶队列中包括多个令牌桶,每个令牌桶对应有相应的数据传输约束条。所述的数据传输约束条件可以包括但不限于数据传输的速率约束条件。
本公开实施例中,所述数据传输约束条件可以用于约束账户(终端)的访问,限制账户过于频繁的请求。在一个示例中,所述数据传输约束条件可以包括多个,如每秒不超过1次、每分钟不超过10次,每小时不超过100次,每天不超过200次等4个约束条件。在另一个示例中,所述约束条件还可以包括同一账户访问某个平台时长,在这个平台上获取数据量的大小、获取数据类型的个数等。本公开实施例中,所述令牌桶队列包括的多个令牌桶,可以通常将RFC2697中定义的单速三色标记法(srTCM)作为单个令牌桶的实现,如图3所示。图3中,Conform表示配置绿色标记的令牌,Exceed表示配置黄色标记的令牌,Violate表示配置红色标记的令牌,Packets表示请求数据的报文,也可以成为B,Tokens表示令牌,YES表示账户的请求通过,NO表示账户的请求不通过。令牌桶存放一定数量令牌,一般用于对流量进行限速。本公开的一些实施例中可以使用单速率三色标记(single rate three colormarker,scTCM)算法,其主要关注报文尺寸的突发;也可以使用双速率三色标记(two ratethree color marker,trTCM)算法,其主要关注报文速率的突发。在令牌桶中通常可以定义或设置承诺信息速率(Committed Information Rate,CIR):允许传输或者转发报文的平均速率、承诺突发尺寸(Commited Burst Size,CBS):瞬间能够通过的承诺突发流量、超额突发尺寸(Excess Burst Size,EBS):瞬间能够通过的超出突发流量等。
本公开实施例中,参考图4所示,所述按照所述令牌桶队列中令牌桶的排列顺序依次获取下一个令牌桶的数据传输约束条件。如可以为令牌桶队列中的所有令牌桶设置初始的排列顺序,例如:srTCM(1)、srTCM(2)…srTCM(i)、srTCM(n),则请求数据也按照此排列顺序依次访问每个令牌桶。首先访问令牌桶srTCM(1),根据令牌桶srTCM(1)对应的约束条件对该请求数据进行处理。若满足所述令牌桶srTCM(1)的数据传输约束条件,该令牌桶srTCM(1)的处理结果为通过,进入令牌桶srTCM(2),进一步再根据令牌桶srTCM(2)对应的数据传输约束条件对所述请求数据进行处理,若满足所述令牌桶srTCM(1)的数据传输约束条件,则进入令牌桶srTCM(3),依次类推。若所述请求数据遍历完所有的令牌桶队列,如本例中遍历完n个令牌桶,则遍历结束。此时,若所有令牌桶的处理结果均是通过,则可以表示所述请求数据的请求通过,则可以进一步的获得相应数据的访问权限或者其他执行响应操作。在另一个示例中,若遍历的过程中,当前令牌桶的处理结果为不满足所述当前令牌桶的数据传输约束条件,即,当前令牌桶的处理结果为不通过,则遍历结束。此时可以拒绝该请求数据。
在步骤S206中,获取所述令牌桶队列中令牌桶的处理结果,根据所述令牌桶的处理结果确定所述请求数据的响应结果。
本公开实施例中,在利用所有令牌桶的数据传输约束条件对所述请求数据进行处理后或者所述当前令牌桶的处理结果为不通过,则可以获取得到所述令牌桶队列中令牌桶的处理结果。这个处理结果可以是整个令牌桶队列相对应所述请求数据的响应结果。例如一个请求数据经过3个令牌桶的令牌桶队列,前两个令牌桶的处理结果是通过,第3个令牌桶的处理结果是不通过,则该请求数据的整个处理结果是不通过。在一个示例中,所述令牌桶的处理结果可以包括CBS(Committed Burst Size,承诺突发尺寸)是否通过、EBS(Extended burst size,超额突发尺寸)是否通过。在一些实施例中,一般的红色标记通常可以表示账户的请求未通过,被拒绝了(超过了CBS、也超过了EBS);黄色标记可以表示账户的请求虽然成功(通过),但是超过了CBS;绿色标记可以表示账户的请求成功了,未超过CBS也未超过EBS。
在所述请求数据未遍历完所有令牌桶的情况下,可以默认设置所述令牌桶队列的令牌桶的处理结果为不通过。在所述令牌桶队列的令牌桶的处理结果为不通过的情况下,可以设置请求数据的访问权限被禁止,以更加有效的防止未账户过于频繁的请求。
本方案可以将多个数据传输的约束条件转化为多个令牌桶,账户发送的请求数据需要经过多个令牌桶的令牌桶队列,根据令牌桶队列中令牌桶的处理结果来确定该请求数据的响应结果。本公开实施例方案,提供了多个数据传输约束条件下的令牌桶限速方案,解决了多约束场景下的限速问题,能够将多个数据传输约束条件转化为多个令牌桶,多个令牌桶组成令牌桶队列。根据令牌桶队列中的令牌桶对请求数据进行处理,解决了多约束条件的数据传输控制场景问题。
图5是根据一示例性实施例示出的一种数据传输控制方法的流程图。本公开提供的所述方法的另一个实施例中,进一步的,所述根据所述令牌桶队列中令牌桶的处理结果确定所述请求数据的响应结果之后,还可以包括:
S502:获取预设时间段内各个令牌桶分配令牌失败的次数;
S504:按照所述次数对所述令牌桶队列中的令牌桶进行降序排序,得到重新排列后的令牌桶队列;
S506:根据所述重新排列后的令牌桶队列中的令牌桶对新获取的请求数据进行处理。
所述预设时间段可以是自定义的设置,可以是最近几天或几小时等,也可以是其他设定的采集时间段。本公开实施例中,可以根据令牌桶分配令牌失败的次数对令牌桶中的令牌桶排列顺序进行重新排序。在令牌桶中,请求数据经过令牌桶处理后通常会输出该请求数据的标记结果,该标记结果有不同的颜色。该标记结果通常是三色标记结果,所述三色标记结果包括红色标记、黄色标记、和绿色标记,其中,所述红色标记表征突发流量大于配置的超额突发尺寸,所述黄色标记表征所述突发流量大于配置的承诺突发尺寸且小于所述超额突发尺寸,所述绿色标记表征流量速率小于配置的承诺信息速率。本公开的一些实施例可以根据标记的分配令牌失败的次数对令牌桶进行重新排序。具体的例如可以将红色标记表示的失败次数最多的令牌桶排在令牌桶队列队首。本公开不排除其他的实施例中也可以是黄山标记的令牌。
本实施例可以在每次三色标记完成以后进行令牌桶队列的重新排序。排序的方法可以包括多种实施方式。如一个示例中,可以以每个令牌桶最近对请求进行的三种标记(红、黄、绿)为依据,将最近最多红色标记的令牌桶移动到队列的头部,其次将最近最多黄色标记的令牌桶排在最近最多红色标记的令牌桶后面,最后则是绿色标记的令牌桶(这种属于令牌通常比较充裕的)。
本公开的一些实施例中按照失败次数对令牌桶进行降序排序的方案不限于一定是红色标记的令牌。如B令牌桶中虽然分配失败的红色标记的略少于A,但其黄色标记远多于A,则可以在令牌桶队列中将B令牌桶移到令牌桶A前面。
由于令牌桶队列的顺序可以直接关系到令牌桶对请求数据处理的先后顺序,影响着系统的效率。本公开提供的实施例中,在每次令牌请求之后,可以进行令牌通重新排序,根据三色标记的结果对令牌桶队列进行重新排序后按照降序排序,将失败次数较多的令牌桶拍照令牌桶队列前面。这样,若请求数据本身不能通过令牌桶队列,由于识别此时多的令牌桶排在令牌桶队列前面,则在令牌桶队列的第一个或前几个令牌桶处理时则可以快速得到请求数据不能通过的决策,提高判断速率,可以减少后续令牌桶的处理(如减少令牌归还的次数),进而提高系统的运行效率。
需要说明的是,上述中可以将每个约束条件转换成srTCM实现的令牌桶,也可以根据实际情况把约束条件转换为trTCM实现(RFC2698)的令牌桶,或者其它具有三色标记功能的令牌桶。
上述实施例采用了根据令牌桶三色标记结果进行令牌桶队列重新排序的方式。同时,本公开不排除也可以通过一些机器学习的算法、预测模型或其他排序模型对令牌桶进行排序的方式。
本公开可以通过将多个约束条件转换为令牌桶队列,根据每次三色标记结果进行令牌桶队列的重新排序,相当于是自动筛选出最紧缺的令牌桶,进行最优先的询问、判断。而三色标记结果作为原令牌桶算法的输出,也不需要额外的性能开销,自动更新令牌桶顺序也省去了人工维护的成本。
本公开的另一些实施例中,所述预设时间段可以包括:与处理所述请求数据的时间点邻近最近的历史时间段。
本实施例中国,可以获取最近一段时间内容分配令牌失败的次数,如与处理所述请求数据的时间点邻近最近的历史时间段。最近历史时间段内分配令牌失败的次数通常可以更加准确的反映出最近一段时间内账户发起请求数据的状况以及请求数据的处理情况,因此,利用本实施例方案可以更加及时、有效的对令牌桶进行排序动态调整,提高系统整体的处理效率。
如图7所示,本公开提供的另一些实施例中,所述按照所述次数对所述令牌桶队列中的令牌桶进行降序排序可以包括:
S702:获取所述令牌桶的三色标记结果,所述三色标记结果包括红色标记、黄色标记、和绿色标记,其中,所述红色标记表征突发流量大于配置的超额突发尺寸,所述黄色标记表征所述突发流量大于配置的承诺突发尺寸且小于所述超额突发尺寸,所述绿色标记表征流量速率小于配置的承诺信息速率;
S704:在所述令牌桶队列中,按照所述三色标记结果中红色标记的个数对令牌桶进行降序排序;当红色标记的个数相同时,按照黄色标记的个数对红色标记个数相同的令牌桶进行降序排序;
S706:将仅包含绿色标记的令牌桶排列在包含黄色标记的令牌桶的后面。
如前所部分实施例所述,可以根据令牌桶的三色标记结果对令牌桶队列中的令牌桶进行重新排序。红包标记通常表示请求数据不符合数据传输约束条件,可以优先的按照将红色标记的个数对令牌桶进行排序,再根据黄色标记的个数对令牌桶进行排序,当红色标记的个数相同时,同样可以按照黄色标记的个数对红色标记个数相同的令牌桶进行降序排序,这样可以在令牌桶队列的靠前端的令牌桶处理中更及早的识别出不符合数据传输约束条件的请求数据,进一步提高数据处理效率和系统运行效率。
需要说明的是,上述实施例中红色标记的个数相同的情况,包含红色标记的个数为0的情况。
图8是根据一示例性实施例示出的一种数据传输控制方法的流程图。如图8所示,所述当前令牌桶的处理结果为不满足所述当前令牌桶的数据传输约束条件时,还包括:
S802:从所述当前令牌桶开始,将所述请求数据已获得的令牌桶的令牌相应的归还至所述令牌桶队列中的各个令牌桶。
本公开实施例中,可以依次访问每个令牌桶,若当前令牌桶的数据传输约束条件不满足,再可以依次归还已获得的令牌。若报文(请求数据)在第srTCM(i)个令牌桶不满足srTCM(i)的数据传输约束条件,不被通过,则可以把已经获得的令牌归还至各个令牌桶。本实施例方案中,令牌桶的处理结果不通过,及时将令牌桶归还给相应的令牌桶,可以及时的保障令牌桶中令牌桶数量保持充裕的状态,为下一次的请求数据处理提供更多的资源保障,进而提高系统效率,同时也能减少并发访问时令牌余量判断不准的问题,提高数据传输控制的精度。
本公开的另一些实施例中,所述将所述请求数据已获得的令牌桶的令牌归还至所述令牌桶队列中的各个令牌桶,包括:
倒序归还所述已获得的令牌桶的令牌。
图9是根据一示例性实施例示出的倒序归还令牌的场景示意图。如图9所示的场景中,若报文在第srTCM(i)个令牌桶不满足srTCM(i)的数据传输约束条件,不被通过,则可以按照倒序依次归还srTCM(i)、srTCM(i-1)…srTCM(2)、srTCM(1)的令牌。
倒序归还令牌,一方面便于数据操作,如处理器在处理过程中最近使用的数据通常会放入缓存或者持久化最近处理的数据的内容内存地址,这样倒序归还时优先归还最近处理的令牌桶,可以更加便于处理器调取和加载数据,提高数据处理速度,进而使得;令牌更快的归还到想要的令牌桶中。另一方面,当前令牌桶的处理结果为失败时倒序归还令牌,也便于易于产品程序逻辑实现,易于本方案的实现和后续系统逻辑调校,对于系统的处理效率和稳定性均有提升。
可以理解的是,本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同/相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。相关之处参见其他方法实施例的描述说明即可。
应该理解的是,虽然附图中涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,附图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的步骤或者阶段的至少一部分轮流或者交替地执行。
基于上述所述的数据传输控制方法实施例的描述,本公开还提供数据传输控制装置。所述装置可以包括使用了本说明书实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本公开实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图10是根据一示例性实施例示出的一种数据传输控制装置框图。所述装置可以为前述所述终端110,也可以为服务器120,或者集成于所述终端110的模块、组件、器件、单元等,或者其他电子设备。具体的可以参照图10,该装置100可以包括:
请求获取模块102,用于获取请求数据;
令牌桶队列处理模块104,可以用于从令牌桶队列的首个令牌桶开始,依次利用所述令牌桶队列中的令牌桶对所述请求数据进行处理,直至当前令牌桶的处理结果为不满足所述当前令牌桶的数据传输约束条件或遍历完所述令牌桶队列,所述令牌桶队列中包括多个令牌桶,每个令牌桶对应有相应的数据传输约束条件;
请求结果模块106,可以用于获取所述令牌桶队列中令牌桶的处理结果,根据所述令牌桶的处理结果确定所述请求数据的处理结果所述请求数据的响应结果。
图11是根据一示例性实施例示出的一种数据传输控制装置框图。在一种可能的实现方式中,还包括排序模块108,用于根据所述令牌桶队列中令牌桶的处理结果确定所述请求数据的响应结果之后获取预设时间段内各个令牌桶分配令牌失败的次数;
按照所述次数对所述令牌桶队列中的令牌桶进行降序排序,得到重新排列后的令牌桶队列;
根据所述重新排列后的令牌桶队列中的令牌桶对新获取的请求数据进行处理。
在一种可能的实现方式中,所述预设时间段包括:
与处理所述请求数据的时间点邻近最近的历史时间段。
在一种可能的实现方式中,所述按照所述次数对所述令牌桶队列中的令牌桶进行降序排序包括:
获取所述令牌桶的三色标记结果,所述三色标记结果包括红色标记、黄色标记、和绿色标记,其中,所述红色标记表征突发流量大于配置的超额突发尺寸,所述黄色标记表征所述突发流量大于配置的承诺突发尺寸且小于所述超额突发尺寸,所述绿色标记表征流量速率小于配置的承诺信息速率;
在所述令牌桶队列中,按照所述三色标记结果中红色标记的个数对令牌桶进行降序排序;当红色标记的个数相同时,按照黄色标记的个数对红色标记个数相同的令牌桶进行降序排序;
将仅包含绿色标记的令牌桶排列在包含黄色标记的令牌桶的后面。
图12是根据一示例性实施例示出的一种数据传输控制装置框图。在一种可能的实现方式中,还包括令牌归还模块110,可以用于当前令牌桶的处理结果为不满足所述当前令牌桶的数据传输约束条件时,从所述当前令牌桶开始,将所述请求数据已获得的令牌桶的令牌相应的归还至所述令牌桶队列中的各个令牌桶。
在一种可能的实现方式中,所述将所述请求数据已获得的令牌桶的令牌归还至所述令牌桶队列中的各个令牌桶,包括:
倒序归还所述已获得的令牌桶的令牌。
关于各模块中的处理步骤已在方法的说明书中进行了阐述,在这里不再赘述。
图13是根据一示例性实施例示出的一种用于数据传输控制的设备S00的框图。例如,设备S00可以为多种类型的电子设备,如服务器。参照图13,设备S00包括处理组件S20,其进一步包括一个或多个处理器,以及由存储器S22所代表的存储器资源,用于存储可由处理组件S20的执行的指令,例如应用程序。存储器S22中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件S20被配置为执行指令,以执行上述数据传输控制方法的方法。
设备S00还可以包括一个电源组件S24被配置为执行设备S00的电源管理,一个有线或无线网络接口S26被配置为将设备S00连接到网络,和一个输入输出(I/O)接口S28。设备S00可以操作基于存储在存储器S22的操作系统,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD或类似。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器S22,上述指令可由设备S00的处理器执行以完成上述方法。存储介质可以是计算机可读存储介质,例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供一种计算机程序产品,所述计算机程序被处理器执行时实现本公开任一实施例所述的数据传输控制方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的,上述所述的装置、设备、电子设备等根据方法实施例的描述还可以包括其它的实施方式,具体的实现方式可以参照相关方法实施例的描述。同时各个方法以及装置、设备、服务器实施例之间特征的相互组合组成的新的实施例仍然属于本公开所涵盖的实施范围之内,在此不作一一赘述。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或描述的装置或单元相互之间的耦合、通信连接等可以是直接和/或间接耦合/连接的方式实现,可以是通过一些标准或自定义的接口、协议等,是电性,机械或其它的形式实现。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。
Claims (14)
1.一种数据传输控制方法,其特征在于,包括:
获取请求数据;
从令牌桶队列的首个令牌桶开始,依次利用所述令牌桶队列中的令牌桶对所述请求数据进行处理,直至当前令牌桶的处理结果为不满足所述当前令牌桶的数据传输约束条件或遍历完所述令牌桶队列,所述令牌桶队列中包括多个令牌桶,每个令牌桶对应有相应的数据传输约束条件;
获取所述令牌桶队列中令牌桶的处理结果,根据所述令牌桶的处理结果确定所述请求数据的响应结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述令牌桶队列中令牌桶的处理结果确定所述请求数据的响应结果之后,还包括:
获取预设时间段内各个令牌桶分配令牌失败的次数;
按照所述次数对所述令牌桶队列中的令牌桶进行降序排序,得到重新排列后的令牌桶队列;
根据所述重新排列后的令牌桶队列中的令牌桶对新获取的请求数据进行处理。
3.根据权利要求2所述的方法,其特征在于,所述预设时间段包括:
与处理所述请求数据的时间点最近的历史时间段。
4.根据权利要求2所述的方法,其特征在于,所述按照所述次数对所述令牌桶队列中的令牌桶进行降序排序包括:
获取所述令牌桶的三色标记结果,所述三色标记结果包括红色标记、黄色标记和绿色标记,其中,所述红色标记表征突发流量大于配置的超额突发尺寸,所述黄色标记表征所述突发流量大于配置的承诺突发尺寸且小于所述超额突发尺寸,所述绿色标记表征流量速率小于配置的承诺信息速率;
在所述令牌桶队列中,按照所述三色标记结果中红色标记的个数对令牌桶进行降序排序;当红色标记的个数相同时,按照黄色标记的个数对红色标记个数相同的令牌桶进行降序排序;
将仅包含绿色标记的令牌桶排列在包含黄色标记的令牌桶的后面。
5.根据权利要求1所述的方法,其特征在于,所述当前令牌桶的处理结果为不满足所述当前令牌桶的数据传输约束条件时,还包括:
从所述当前令牌桶开始,将所述请求数据已获得的令牌桶的令牌相应的归还至所述令牌桶队列中的各个令牌桶。
6.根据权利要求5所述的方法,其特征在于,所述将所述请求数据已获得的令牌桶的令牌归还至所述令牌桶队列中的各个令牌桶,包括:
倒序归还所述已获得的令牌桶的令牌。
7.一种数据传输控制装置,其特征在于,包括:
请求获取模块,用于获取请求数据;
令牌桶队列处理模块,用于从令牌桶队列的首个令牌桶开始,依次利用所述令牌桶队列中的令牌桶对所述请求数据进行处理,直至当前令牌桶的处理结果为不满足所述当前令牌桶的数据传输约束条件或遍历完所述令牌桶队列,所述令牌桶队列中包括多个令牌桶,每个令牌桶对应有相应的数据传输约束条件;
请求结果模块,用于获取所述令牌桶队列中令牌桶的处理结果,根据所述令牌桶的处理结果确定所述请求数据的处理结果所述请求数据的响应结果。
8.根据权利要求7所述的装置,其特征在于,还包括:
排序模块,用于根据所述令牌桶队列中令牌桶的处理结果确定所述请求数据的响应结果之后获取预设时间段内各个令牌桶分配令牌失败的次数;按照所述次数对所述令牌桶队列中的令牌桶进行降序排序,得到重新排列后的令牌桶队列;根据所述重新排列后的令牌桶队列中的令牌桶对新获取的请求数据进行处理序。
9.根据权利要求8所述的装置,其特征在于,所述预设时间段包括:
与处理所述请求数据的时间点邻近最近的历史时间段。
10.根据权利要求8所述的装置,其特征在于,所述按照所述次数对所述令牌桶队列中的令牌桶进行降序排序包括:
获取所述令牌桶的三色标记结果,所述三色标记结果包括红色标记、黄色标记和绿色标记,其中,所述红色标记表征突发流量大于配置的超额突发尺寸,所述黄色标记表征所述突发流量大于配置的承诺突发尺寸且小于所述超额突发尺寸,所述绿色标记表征流量速率小于配置的承诺信息速率;
在所述令牌桶队列中,按照所述三色标记结果中红色标记的个数对令牌桶进行降序排序;当红色标记的个数相同时,按照黄色标记的个数对红色标记个数相同的令牌桶进行降序排序;
将仅包含绿色标记的令牌桶排列在包含黄色标记的令牌桶的后面。
11.根据权利要求7所述的装置,其特征在于,还包括:
令牌归还模块,以用于当前令牌桶的处理结果为不满足所述当前令牌桶的数据传输约束条件时,从所述当前令牌桶开始,将所述请求数据已获得的令牌桶的令牌相应的归还至所述令牌桶队列中的各个令牌桶。
12.根据权利要求11所述的装置,其特征在于,所述将所述请求数据已获得的令牌桶的令牌归还至所述令牌桶队列中的各个令牌桶,包括:
倒序归还所述已获得的令牌桶的令牌。
13.一种电子设备,其特征在于,包括:
至少一个处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的数据传输控制方法。
14.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令被电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至6中任一项所述的数据传输控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111016076.XA CN113949668B (zh) | 2021-08-31 | 2021-08-31 | 一种数据传输控制方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111016076.XA CN113949668B (zh) | 2021-08-31 | 2021-08-31 | 一种数据传输控制方法、装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113949668A CN113949668A (zh) | 2022-01-18 |
CN113949668B true CN113949668B (zh) | 2023-12-19 |
Family
ID=79327610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111016076.XA Active CN113949668B (zh) | 2021-08-31 | 2021-08-31 | 一种数据传输控制方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113949668B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217495A (zh) * | 2008-01-11 | 2008-07-09 | 北京邮电大学 | 用于t-mpls网络环境下的流量监控方法和装置 |
CN104718734A (zh) * | 2012-08-21 | 2015-06-17 | 惠普发展公司,有限责任合伙企业 | 网络中的拥塞通知 |
CN105376175A (zh) * | 2015-12-03 | 2016-03-02 | 北京浩瀚深度信息技术股份有限公司 | 具有带宽保障功能的级联令牌桶实现方法 |
JP2017147583A (ja) * | 2016-02-17 | 2017-08-24 | APRESIA Systems株式会社 | ネットワーク中継装置 |
CN107743099A (zh) * | 2017-08-31 | 2018-02-27 | 华为技术有限公司 | 数据流处理方法、装置以及存储介质 |
CN110611623A (zh) * | 2019-08-30 | 2019-12-24 | 江苏苏宁物流有限公司 | 限流方法和装置 |
CN112104568A (zh) * | 2020-11-17 | 2020-12-18 | 北京达佳互联信息技术有限公司 | 一种数据传输控制方法及网关 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710514B (zh) * | 2012-05-25 | 2015-01-21 | 华为技术有限公司 | 一种报文流量控制方法及系统 |
-
2021
- 2021-08-31 CN CN202111016076.XA patent/CN113949668B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217495A (zh) * | 2008-01-11 | 2008-07-09 | 北京邮电大学 | 用于t-mpls网络环境下的流量监控方法和装置 |
CN104718734A (zh) * | 2012-08-21 | 2015-06-17 | 惠普发展公司,有限责任合伙企业 | 网络中的拥塞通知 |
CN105376175A (zh) * | 2015-12-03 | 2016-03-02 | 北京浩瀚深度信息技术股份有限公司 | 具有带宽保障功能的级联令牌桶实现方法 |
JP2017147583A (ja) * | 2016-02-17 | 2017-08-24 | APRESIA Systems株式会社 | ネットワーク中継装置 |
CN107743099A (zh) * | 2017-08-31 | 2018-02-27 | 华为技术有限公司 | 数据流处理方法、装置以及存储介质 |
CN110611623A (zh) * | 2019-08-30 | 2019-12-24 | 江苏苏宁物流有限公司 | 限流方法和装置 |
CN112104568A (zh) * | 2020-11-17 | 2020-12-18 | 北京达佳互联信息技术有限公司 | 一种数据传输控制方法及网关 |
Also Published As
Publication number | Publication date |
---|---|
CN113949668A (zh) | 2022-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111510395B (zh) | 业务消息上报方法、装置、设备及介质 | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
JP6475339B2 (ja) | 画像共有方法及び装置、並びに端末デバイス | |
US8930489B2 (en) | Distributed rate limiting of handling requests | |
CN111478857B (zh) | 一种接口限流控制方法、装置以及电子设备 | |
US20220263768A1 (en) | Method and Apparatus for Node Speed Limiting, Electronic Device and Storage Medium | |
EP3531749B1 (en) | Management method, management unit and system for network function | |
CN111901249A (zh) | 业务限流方法、装置、设备及存储介质 | |
CN113742109B (zh) | 第三方服务对接方法、装置、设备及存储介质 | |
CN110471749A (zh) | 任务处理方法、装置、计算机可读存储介质和计算机设备 | |
CN111416883B (zh) | 地址查询方法、装置、终端及计算机可读存储介质 | |
US20150304227A1 (en) | Queue Management Method and Apparatus | |
US10700879B2 (en) | Charging method and device, access device, service quality control method and device | |
CN106789723B (zh) | 多核网络转发限速的方法和装置 | |
CN112217657B (zh) | 基于sd-wan系统的数据传输方法、数据处理方法、设备和介质 | |
CN110311855B (zh) | 用户消息处理方法、装置、电子设备及存储介质 | |
CN113949668B (zh) | 一种数据传输控制方法、装置、服务器及存储介质 | |
CN109510850B (zh) | 浏览请求的处理方法、装置及系统 | |
CN110752941B (zh) | 一种云存储系统的qos控制方法、装置、存储介质和服务器 | |
CN113966602B (zh) | 区块链中区块的分布式存储 | |
CN113032410A (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN110308901A (zh) | 处理前端页面中数据变量方法、装置、设备和存储介质 | |
CN113541981B (zh) | 网络切片的成员管理方法及系统 | |
CN109101399B (zh) | 一种主机的监控方法及设备 | |
CN111224886A (zh) | 一种网络流量的管控方法及系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |