CN114785740B - 令牌管理及信息转发方法、装置、设备、存储介质 - Google Patents
令牌管理及信息转发方法、装置、设备、存储介质 Download PDFInfo
- Publication number
- CN114785740B CN114785740B CN202210708083.4A CN202210708083A CN114785740B CN 114785740 B CN114785740 B CN 114785740B CN 202210708083 A CN202210708083 A CN 202210708083A CN 114785740 B CN114785740 B CN 114785740B
- Authority
- CN
- China
- Prior art keywords
- token
- tokens
- autonomous
- supply
- demand state
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000003860 storage Methods 0.000 title claims abstract description 19
- 230000002950 deficient Effects 0.000 claims description 54
- 238000004519 manufacturing process Methods 0.000 claims description 33
- 238000007726 management method Methods 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 13
- 238000004458 analytical method Methods 0.000 claims description 8
- 239000002131 composite material Substances 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 4
- 230000006735 deficit Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 10
- 230000007547 defect Effects 0.000 abstract description 3
- 230000009467 reduction Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000007812 deficiency Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000033228 biological regulation Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种令牌管理及信息转发方法、装置、电子设备及存储介质,涉及网络通信领域。本公开利用令牌调度模块对各个自治令牌对象对应的令牌数据进行分析,得到综合令牌供需状态,再根据综合令牌供需状态和各个自治令牌对象对应的令牌数据,为至少一个自治令牌对象分配奖励令牌。其中至少部分自治令牌对象用于生产和消费令牌。由令牌调度模块为各个自治令牌对象统一调配奖励令牌,能够克服多核场景中自治令牌对象在有令牌需求时跨核访问公共令牌桶所导致的性能下降的缺陷,提升了令牌调配效率。另外,本公开中自治令牌对象可以生产令牌,并设置有存放令牌的令牌桶,因此能够有效克服多核访问公共令牌桶造成的CPU缓存冲突的问题。
Description
技术领域
本公开涉及网络通信技术领域,尤其涉及一种令牌管理方法及装置、信息转发方法及装置、电子设备及存储有计算机指令的非瞬时计算机可读存储介质。
背景技术
在网络传输场景中,经常会有对流量进行限速和整形的需求。用于流量限速和流量整形的主要算法是令牌桶算法和漏桶算法,其基本原理是生产者-消费者模型,一个生产者以恒定速率生产令牌,使用令牌桶存储生产出来的令牌,而消费者则随机到来,消费令牌桶中的令牌,当令牌桶中没有令牌的时候,消费者就无法消费,从而达到限速和整形的效果。
在高速网络传输场景下,网络流量相当大,网络设备多采用多核处理器去并发处理数据报文,然而对于令牌桶算法来说,就形成了一个生产者多个消费者(每个中央处理器cpu核都是一个消费者)的场景,多核共享相同的令牌桶容易引起cpu缓存冲突,并且消费者在有需求时进行跨核访问容易导致性能下降,令牌调度效率低,以至于造成信息转发效率低下。
发明内容
本公开至少提供了一种令牌管理方法及装置、信息转发方法及装置、电子设备及存储有计算机指令的非瞬时计算机可读存储介质,以解决上述至少一个技术问题。
根据本公开的一方面,提供了一种令牌管理方法,应用于令牌调度模块,包括:
分别获取各个自治令牌对象对应的令牌数据;其中,P个所述自治令牌对象用于生产令牌和消费令牌;P为大于1的正整数;
对各个所述自治令牌对象对应的令牌数据进行分析,得到综合令牌供需状态;
根据所述综合令牌供需状态和各个所述令牌数据,为至少一个自治令牌对象分配奖励令牌,以使所述至少一个自治令牌对象利用接收奖励令牌后的令牌转发信息。
在一种可能的实施方式中,生产令牌的所述自治令牌对象生产令牌的速度为预设速率的N分之一;其中,N为生产令牌的所述自治令牌对象的数量;和/或,
所述自治令牌对象上设置有用于存放令牌的令牌桶。
在一种可能的实施方式中,所述对各个所述自治令牌对象对应的令牌数据进行分析,得到综合令牌供需状态,包括:
对各个所述自治令牌对象对应的令牌数据进行分析,确定令牌统计数据;
根据所述令牌统计数据,确定所述综合令牌供需状态。
在一种可能的实施方式中,所述令牌数据包括对应的自治令牌对象的欠缺令牌数量;用于生产令牌的自治令牌对象的令牌数据还包括富裕令牌数量;所述令牌统计数据包括富裕令牌总数量、欠缺令牌总数量、基础令牌总数量、负令牌总数量;
所述对各个所述自治令牌对象对应的令牌数据进行分析,确定令牌统计数据,包括:
针对每个自治令牌对象,根据该自治令牌对象对应的预设的最大基础令牌数量和欠缺令牌数量,确定该自治令牌对象的基础令牌数量和负令牌数量;
计算至少部分自治令牌对象对应的富裕令牌数量的和,得到所述富裕令牌总数量;
计算至少部分自治令牌对象对应的欠缺令牌数量的和,得到所述欠缺令牌总数量;
计算至少部分自治令牌对象对应的基础令牌数量的和,得到所述基础令牌总数量;
计算至少部分自治令牌对象对应的负令牌数量的和,得到所述负令牌总数量。
在一种可能的实施方式中,所述令牌统计数据包括富裕令牌总数量、欠缺令牌总数量;
所述根据所述令牌统计数据,确定所述综合令牌供需状态,包括:
在所述富裕令牌总数量大于所述欠缺令牌总数量的情况下,确定所述综合令牌供需状态为第一供需状态;所述第一供需状态用于表征令牌总体生产速度大于令牌总体消费速度,并且为各个自治令牌对象分配奖励令牌后,各个自治令牌对象的基础令牌数量均为预设的最大基础令牌数量。
在一种可能的实施方式中,所述令牌数据包括对应的自治令牌对象的富裕令牌数量和欠缺令牌数量;
所述根据所述综合令牌供需状态和所述令牌数据,为至少一个自治令牌对象分配奖励令牌,包括:
在所述综合令牌供需状态为第一供需状态的情况下,针对每个基础令牌数量小于最大基础令牌数量的第一自治令牌对象,将该第一自治令牌对象的奖励令牌数量设置为该第一自治令牌对象的欠缺令牌数量。
在一种可能的实施方式中,所述令牌统计数据包括富裕令牌总数量、基础令牌总数量、负令牌总数量;
所述根据所述令牌统计数据,确定所述综合令牌供需状态,包括:
在所述富裕令牌总数量和所述基础令牌总数量的和小于所述负令牌总数量的情况下,确定所述综合令牌供需状态为第二供需状态;所述第二供需状态用于表征令牌总体生产速度小于令牌总体消费速度,并且为各个自治令牌对象分配奖励令牌后,各个自治令牌对象的大令牌数量均小于零。
在一种可能的实施方式中,所述根据所述综合令牌供需状态和所述令牌数据,为至少一个自治令牌对象分配奖励令牌,包括:
在所述综合令牌供需状态为第二供需状态的情况下,计算所述负令牌总数量减去所述富裕令牌总数量以及所述基础令牌总数量得到的差值;
计算所述差值除以所述自治令牌对象的数量得到的商,得到负令牌平均数量;
针对每个自治令牌对象,根据该自治令牌对象的令牌数据和所述负令牌平均数量,确定该自治令牌对象的奖励令牌数量。
在一种可能的实施方式中,所述令牌统计数据包括富裕令牌总数量、基础令牌总数量、负令牌总数量;
所述根据所述令牌统计数据,确定所述综合令牌供需状态,包括:
在所述富裕令牌总数量和所述基础令牌总数量的和大于所述负令牌总数量,并且所述负令牌总数量大于所述富裕令牌总数量的情况下,确定所述综合令牌供需状态为第三供需状态;所述第三供需状态用于表征令牌总体生产速度小于令牌总体消费速度,并且为各个自治令牌对象分配奖励令牌后,各个自治令牌对象的基础令牌数量均大于零,并且小于或等于最大基础令牌数量。
在一种可能的实施方式中,所述令牌数据包括对应的自治令牌对象的富裕令牌数量和欠缺令牌数量;
所述根据所述综合令牌供需状态和所述令牌数据,为至少一个自治令牌对象分配奖励令牌,包括:
在所述综合令牌供需状态为第三供需状态的情况下,针对每个基础令牌数量小于最大基础令牌数量的第二自治令牌对象,根据该第二自治令牌对象的欠缺令牌数量和所述欠缺令牌总数量,确定该第二自治令牌对象的令牌欠缺比例;
根据所述富裕令牌总数量和所述令牌欠缺比例,确定该第二自治令牌对象的奖励令牌数量。
在一种可能的实施方式中,上述令牌管理方法还包括:
设置自治令牌对象的令牌桶的平衡水平线;其中,平衡水平线对应的数值为自治令牌对象生产令牌生产和新消费令牌平衡时,令牌桶内的令牌数量;
将所述平衡水平线以上的令牌区域内的令牌,作为富裕令牌;
将所述平衡水平线以下,并且0线以上的令牌区域内的令牌作为基础令牌;其中,0线表示令牌桶中令牌数量的正负分界线;
在令牌桶中令牌数量小于所述平衡水平线对应的数值,并且所述令牌桶中令牌数量为正值的情况下,将基础令牌到平衡水平线之间的空令牌区域内的令牌作为欠缺令牌;
在所述令牌桶中令牌数量为负值的情况下,将低于0线的空令牌区域内的令牌作为负令牌,将低于平衡水平线和低于0线的空令牌区域内的令牌作为欠缺令牌。
根据本公开的另一方面,提供了一种信息转发方法,包括:
各个自治令牌对象分别向令牌调度模块上报令牌数据;其中,P个所述自治令牌对象用于生产令牌和消费令牌;P为大于1的正整数;
所述令牌调度模块接收各个自治令牌对象上报的令牌数据,基于接收的所述令牌数据确定综合令牌供需状态,并根据所述综合令牌供需状态和所述令牌数据,为至少一个自治令牌对象分配奖励令牌,以使所述至少一个自治令牌对象利用接收奖励令牌后的令牌转发信息。
根据本公开的另一方面,提供了一种令牌管理装置,应用于令牌调度模块,包括:
数据获取单元,用于分别获取各个自治令牌对象对应的令牌数据;其中,P个所述自治令牌对象用于生产令牌和消费令牌;P为大于1的正整数;
供需分析单元,用于对各个所述自治令牌对象对应的令牌数据进行分析,得到综合令牌供需状态;
令牌分配单元,用于根据所述综合令牌供需状态和所述令牌数据,为至少一个自治令牌对象分配奖励令牌,以使所述至少一个自治令牌对象利用接收奖励令牌后的令牌转发信息。
根据本公开的另一方面,提供了一种信息转发装置,包括设置有自治令牌对象的至少一个令牌处理模块和令牌调度模块;其中,P个所述自治令牌对象用于生产令牌和消费令牌;P为大于1的正整数;
所述令牌处理模块,用于利用对应的自治令牌对象向所述令牌调度模块上报令牌数据;
所述令牌调度模块,用于接收各个自治令牌对象上报的令牌数据,基于接收的所述令牌数据确定综合令牌供需状态,并根据所述综合令牌供需状态和所述令牌数据,为至少一个自治令牌对象分配奖励令牌,以使所述至少一个自治令牌对象利用接收奖励令牌后的令牌转发信息。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开任一实施例中的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行本公开任一实施例中的方法。
本公开提供了一种令牌管理方法及装置、信息转发方法及装置、电子设备及存储有计算机指令的非瞬时计算机可读存储介质,本公开利用令牌调度模块对各个所述自治令牌对象对应的令牌数据进行分析,得到综合令牌供需状态,再根据所述综合令牌供需状态和各个所述自治令牌对象对应的令牌数据,为各个自治令牌对象分配奖励令牌。其中至少部分自治令牌对象用于生产和消费令牌,形成多生产者多消费者模型。本公开由令牌调度模块为各个自治令牌对象统一调配奖励令牌的方式,能够克服多核场景中自治令牌对象在有令牌需求时跨核访问公共令牌桶所导致的性能下降的缺陷,提升了令牌调配效率,并且有利于提升信息转发效率。另外,本公开中自治令牌对象可以生产令牌,并设置有存放令牌的令牌桶,因此能够有效克服多核访问公共令牌桶造成的CPU 缓存冲突的问题。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开令牌管理方法的流程图;
图2是根据本公开中多生产者多消费者模型的示意图;
图3是根据本公开中令牌桶的示意图;
图4是根据本公开信息转发方法的流程示意图;
图5是根据本公开另一信息转发方法的流程图;
图6是根据本公开令牌管理装置的结构示意图;
图7是根据本公开信息转发装置的结构示意图;
图8是根据本公开的电子设备的结构示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为解决多核大流量场景下令牌桶性能问题,本公开提供了一种令牌管理及信息转发方法、装置、电子设备及存储介质。本公开利用令牌调度模块对各个自治令牌对象对应的令牌数据进行分析,得到综合令牌供需状态,再根据综合令牌供需状态和各个自治令牌对象对应的令牌数据,为各个自治令牌对象分配奖励令牌,其中至少部分自治令牌对象用于生产和消费令牌。本公开能够克服多核场景中自治令牌对象在有令牌需求时跨核访问公共令牌桶所导致的性能下降的缺陷,提升了令牌调配效率,并且有利于提升信息转发效率。另外,本公开中自治令牌对象可以生产令牌,并设置有存放令牌的令牌桶,因此能够有效克服多核访问公共令牌桶造成的CPU 缓存冲突的问题。
下面通过具体的实施例对本公开的令牌管理方法进行说明。
图1示出了本公开实施例的令牌管理方法的流程图,该实施例的执行主体可以是具有计算能力的终端或具有计算能力的终端上设置的令牌调度模块。如图1所示,本公开实施例的令牌管理方法可以包括如下步骤:
S110、分别获取各个自治令牌对象对应的令牌数据。其中,P个所述自治令牌对象用于生产令牌和消费令牌;P为大于1的正整数;
上述自治令牌对象用于利用令牌进行信息转发,可以是CPU核或者CPU 核上的实例。另外,所述至少部分自治令牌对象还可以用于生产用于发送信息的令牌,所述自治令牌对象生产令牌的速度为预设速率的N分之一,其中,N为用于生产令牌的自治令牌对象的数量。所述自治令牌对象还可以是纯令牌消费对象,即不能够生产令牌,只能够消费令牌来发送或传输信息。所述自治令牌对象上设置有用于存放令牌的令牌桶。
示例性地,令牌调度模块可以按照预设的周期来主动获取各个自治令牌对象对应的令牌数据,可以是各个自治令牌对象按照预设的周期向令牌调度模块上传对应的令牌数据,令牌调度模块被动获取各个自治令牌对象对应的令牌数据。
示例性地,各个自治令牌对象可以同步上传令牌数据,也可以异步上传令牌数据,本公开对此不进行限定。
由各个自治令牌对象上的本地定时器触发,将本地的令牌数据上报给令牌调度模块,上报方式可以采用函数调用、共享内存等。
示例性地,自治令牌对象的令牌数据可以包括欠缺令牌数量。用于生产令牌的自治令牌对象的令牌数据还包括富裕令牌数量。富裕令牌为自治令牌对象的、在满足自身转发信息所需的令牌的前提下,多余出来的令牌,这部分令牌能够提供给其他自治令牌对象使用。欠缺令牌为自治令牌对象满足自身转发信息所欠缺的令牌,如果自治令牌对象能够生产令牌,那么欠缺令牌数量大于零时表明自治令牌对象生产令牌的速度小于其消费令牌的速度。
S120、对各个所述自治令牌对象对应的令牌数据进行分析,得到综合令牌供需状态。
由于至少部分自治令牌对象在消费令牌的同时还生产令牌,因此对各个自治令牌对象对应的令牌数据进行分析,能够确定综合令牌供需状态,综合令牌供需状态用于表征各个自治令牌对象整体的令牌生产、消费状况。
S130、根据所述综合令牌供需状态和各个所述令牌数据,为至少一个自治令牌对象分配奖励令牌,以使所述至少一个自治令牌对象利用接收奖励令牌后的令牌转发信息。
根据整体的令牌生产、消费状况为各个自治令牌对象分配奖励令牌,能够提高奖励令牌分配的合理性和公平性。
至少部分自治令牌对象能够生产和消费令牌,实现了一种多生产者多消费者模型,如图2所示,能够进行令牌生产的自治令牌对象上设置有本地的生产者和消费者(本地数据包队列),维护本地的令牌桶,本地生产者将生产的令牌放入本地令牌桶,而消费者则从本地令牌桶中消费令牌,当本地令牌桶中无令牌时,则数据包被丢弃,达到限速效果。只进行消费的自治令牌对象,即纯令牌消费对象上设置有本地的消费者(本地数据包队列),维护本地的令牌桶,消费者从本地令牌桶中消费令牌,其不用于生产令牌。
上述实施例使用一个令牌调度模块来协调各个自治令牌对象的令牌桶中令牌数量,解决了多核大流量场景下令牌桶性能问题,实现多令牌桶之间的令牌调度,提升了多核大流量场景下令牌调度率,同时兼顾了自治令牌对象之间的公平性。
在一些实施例中,为令牌桶设置了平衡水平线,其中平衡水平线对应的数值为供需平衡令牌数量,该数值为令牌生产和令牌消费平衡时,令牌桶内的令牌数量。平衡水平线如图3中附图标记31所示。
自治令牌对象的多于所述供需平衡令牌数量的令牌为富裕令牌,如图3所示,富裕令牌32为平衡水平线以上的令牌区域内的令牌。最大富裕令牌数量33对应于令牌桶容量的上限,超过该上限的令牌直接丢弃,只要令牌调度模块分配奖励令牌的间隔足够小,例如小于预设值,则不会出现令牌桶中的令牌数量超过令牌桶容量上限的情况。
如图3所示,平衡水平线以下,并且0线以上的令牌区域内的令牌为基础令牌34。最大基础令牌数量35即为平衡水平线对应的供需平衡令牌数量。0线表示令牌桶中令牌数量的正负分界线,低于该线则触发对消费的抑制,例如丢包或缓存数据包。
如图3所示,若令牌桶中令牌数量小于平衡水平线对应的供需平衡令牌数量,则基础令牌到平衡水平线之间的这部分空令牌区域对应的令牌为欠缺令牌36。
如图3所示,欠缺令牌36的数量可以大于最大基础令牌数量,此时令牌桶中的令牌数量可以为负数,将低于0线的欠缺令牌作为负令牌37,即将低于0线的空令牌区域内的令牌作为负令牌。存在负令牌的状态一般是突发流量或者特殊场景造成,由于该状态下令牌消费被抑制,因此不会长期处于该状态。
当某一自治令牌对象的令牌桶中的令牌量数大于平衡水平线对应的数值时,表示自治令牌对象的生产速度大于消费速度,此时可以提供富裕令牌给令牌调度模块调配给其他自治令牌对象使用;当令牌桶中的令牌数量小于平衡水平线对应的数值,并且为正值时,表示自治令牌对象的生产速度略小于消费速度,接近平衡态,此时需要上报欠缺令牌数量给令牌调度模块,由令牌调度模块调配其他自治令牌对象的令牌来满足该自治令牌对象的令牌需求;当令牌桶中的令牌数量小于0时,表示消费速度远大于生产速度,此时将数据包缓存或丢弃,以达到限速效果。本公开的令牌分配算法调控的目的是尽可能的保证令牌桶中的令牌数量处于0线和平衡水平线之间。
在一些实施例中,上述对各个所述自治令牌对象对应的令牌数据进行分析,得到综合令牌供需状态,具体可以利用如下步骤实现:
首先对各个所述自治令牌对象对应的令牌数据进行分析,确定令牌统计数据;之后根据所述令牌统计数据,确定所述综合令牌供需状态。
示例性地,所述令牌统计数据包括富裕令牌总数量、欠缺令牌总数量、基础令牌总数量、负令牌总数量。自治令牌对象的令牌数据除了包括富裕令牌数量、欠缺令牌数量,还可以包括上述负令牌数量和基础令牌数量,其中,基础令牌数量是自治令牌对象实际具有的基础令牌的数量,也就是实际基础令牌数量。最大基础令牌数量是预先设置的,根据自治令牌对象的欠缺令牌数量和最大基础令牌数量,可以确定该自治令牌对象的基础令牌数量和负令牌数量。具体地,若欠缺令牌数量小于或等于最大基础令牌数量,则最大基础令牌数量减去欠缺令牌数量得到基础令牌数量,负令牌数量为零;若欠缺令牌数量大于最大基础令牌数量,则自治令牌对象的基础令牌数量为零,欠缺令牌数量减去最大基础令牌数量得到负令牌数量。
根据上面的方式可以确定各个自治令牌对象的基础令牌数量和负令牌数量。另外,各个自治令牌对象的基础令牌数量和负令牌数量也可以由各个自治令牌对象上报给令牌调度模块,本公开对此并不进行限定。
在得到各个自治令牌对象的富裕令牌数量、欠缺令牌数量、基础令牌数量和负令牌数量之后,可以利用如下步骤确定上述令牌统计数据:
计算至少部分自治令牌对象对应的富裕令牌数量的和,得到所述富裕令牌总数量;计算至少部分自治令牌对象对应的欠缺令牌数量的和,得到所述欠缺令牌总数量;计算至少部分自治令牌对象对应的基础令牌数量的和,得到所述基础令牌总数量;计算至少部分自治令牌对象对应的负令牌数量的和,得到所述负令牌总数量。
令牌统计数据可以表征总体的令牌数量,根据该数量可以较为准确地确定综合令牌供需状态,示例性地,可以利用如下步骤实现:
在所述富裕令牌总数量大于所述欠缺令牌总数量的情况下,确定所述综合令牌供需状态为第一供需状态;所述第一供需状态用于表征令牌总体生产速度大于令牌总体消费速度,可以满足所有自治令牌对象对令牌的需求,并且为各个自治令牌对象分配奖励令牌后,各个自治令牌对象的基础令牌数量均为预设的最大基础令牌数量;或者各个自治令牌对象分配奖励令牌后,各个自治令牌对象的富裕令牌数量均大于或等于零。
在第一供需状态下,为欠缺令牌的自治令牌对象补充欠缺令牌数量的令牌,具体可以利用如下步骤进行令牌调度:
首先,针对每个基础令牌数量小于最大基础令牌数量的第一自治令牌对象,将该第一自治令牌对象的奖励令牌数量设置为该第一自治令牌对象的欠缺令牌数量。这里奖励令牌数量为正值。
其中,针对每个富裕令牌数量大于零的第三自治令牌对象,该第三自治令牌对象的富裕令牌在上报令牌数据的时候已经贡献出去,给到了令牌调度模块,此时,第三自治令牌对象的富裕令牌数量为0,奖励令牌数量也为0,基础令牌数量为最大基础令牌数量。
在一些实施例中,根据所述令牌统计数据确定所述综合令牌供需状态,还可以利用如下步骤实现:
在所述富裕令牌总数量和所述基础令牌总数量的和小于所述负令牌总数量的情况下,确定所述综合令牌供需状态为第二供需状态;所述第二供需状态用于表征令牌总体生产速度远远小于令牌总体消费速度,并且为各个自治令牌对象分配奖励令牌后,各个自治令牌对象的负令牌数量均大于零。此种状态下无法维持所有令牌桶中的令牌保持在0线和平衡水平线之间,各个自治令牌对象分配奖励令牌后各令牌桶都为负令牌状态。
在第二供需状态下,具体可以利用如下步骤进行令牌调度:
首先计算所述负令牌总数量减去所述富裕令牌总数量以及所述基础令牌总数量得到的差值;之后,计算所述差值除以所述自治令牌对象的数量得到的商,得到负令牌平均数量;负令牌平均数量表征令牌调度完成时各个自治令牌对象的负令牌数量。最后,针对每个自治令牌对象,根据该自治令牌对象的令牌数据和所述负令牌平均数量,确定该自治令牌对象的奖励令牌数量。这里在确定奖励令牌数量时,需要以负令牌平均数量为目标,结合各个自治令牌对象的令牌数据,这里奖励令牌数量可以是负值,也可以是正值。例如,富裕令牌数量、基础令牌数量、欠缺令牌数据等来确定各个自治令牌对象的奖励令牌数量。例如,某一自治令牌对象的基础令牌数量大于零,则该自治令牌对象的奖励令牌数量为其基础令牌数量加负令牌平均数量的和在取负得到的值。
在一些实施例中,根据所述令牌统计数据确定所述综合令牌供需状态,还可以利用如下步骤实现:
在所述富裕令牌总数量和所述基础令牌总数量的和大于所述负令牌总数量,并且所述负令牌总数量大于所述富裕令牌总数量的情况下,确定所述综合令牌供需状态为第三供需状态;所述第三供需状态用于表征令牌总体生产速度小于总体令牌消费速度,并且为各个自治令牌对象分配奖励令牌后,各个自治令牌对象的基础令牌数量均大于零,并且小于或等于最大基础令牌数量,即为各个自治令牌对象分配奖励令牌后可以维持所有自治令牌对象的令牌桶内的令牌保持在0线和平衡水平线之间。此种状态下通过令牌调度模块调度并不能满足所有的自治令牌对象的令牌消费需求。
在第三供需状态下,为了保证公平性,可以按各自治令牌对象的令牌欠缺比例来进行令牌调度,具体地:
针对每个基础令牌数量小于最大基础令牌数量的的第二自治令牌对象,根据该第二自治令牌对象的欠缺令牌数量和所述欠缺令牌总数量,确定该第二自治令牌对象的令牌欠缺比例;例如,将欠缺令牌数量除以欠缺令牌总数量得到的值作为第二自治令牌对象的令牌欠缺比例。之后,根据所述富裕令牌总数量和所述令牌欠缺比例,确定该第二自治令牌对象的奖励令牌数量;例如,计算令牌欠缺比例与富裕令牌总数量的乘积,得到第二自治令牌对象的奖励令牌数量。这里的奖励令牌数量为正值或零。
其中,针对每个富裕令牌数量大于零的第三自治令牌对象,该第三自治令牌对象的富裕令牌在上报令牌数据的时候已经贡献出去,给到了令牌调度模块,此时,第三自治令牌对象的富裕令牌数量为0,奖励令牌数量也为0,基础令牌数量为最大基础令牌数量。
在确定来各个自治令牌对象的奖励令牌数量之后,进入奖励令牌分发阶段,按照各个自治令牌对象的奖励令牌数量分别为各个自治令牌对象分配令牌。
上述实施例将单生产者多消费者令牌调度模式转换为多生产者多消费者的模式,通过令牌调度模块调度富裕令牌,解决了多核大流量场景下令牌调度的效率问题,同时兼顾来各个自治令牌对象令牌分配的公平性。
如图4所示,对应于上述令牌管理方法,本公开还提供来一种信息转发方法,包括:
S410、各个自治令牌对象分别向令牌调度模块上报令牌数据。其中,P个所述自治令牌对象用于生产令牌和消费令牌;P为大于1的正整数。
S420、所述令牌调度模块接收各个自治令牌对象上报的令牌数据,基于接收的所述令牌数据确定综合令牌供需状态,并根据所述综合令牌供需状态和所述令牌数据,为至少一个自治令牌对象分配奖励令牌,以使所述至少一个自治令牌对象利用接收奖励令牌后的令牌转发信息。
本实施例中的自治令牌对象、令牌调度模块与上述实施例中的自治令牌对象、令牌调度模块相同,因此重复内容不再赘述。
在一些实施例中,如图5所示,本公开的信息转发方法,可以包括如下步骤:
步骤一、各个自治令牌对象向令牌调度模块上报令牌数据;
步骤二、令牌调度模块检查所有的自治令牌对象是否已经上报完毕,若是,则执行步骤三,否则继续等待,或通知自治令牌对象上报令牌数据。
步骤三、对各个所述自治令牌对象对应的令牌数据进行分析,确定令牌统计数据。
步骤四、根据所述令牌统计数据,确定所述综合令牌供需状态;若综合令牌供需状态为第一供需状态,令牌总体生产速度大于令牌总体消费速度,则将所有欠缺令牌的自治令牌对象的奖励令牌数量设置为其欠缺令牌数量;若综合令牌供需状态为第二供需状态,令牌生产总体速度远远小于令牌总体消费速度,则确定负令牌平均数量,并按照负令牌平均数量确定各个自治令牌对象的奖励令牌数量;若综合令牌供需状态为第三供需状态,令牌总体生产速度小于令牌总体消费速度,则确定令牌欠缺比例,并按照令牌欠缺比例确定各个欠缺令牌的自治令牌对象的奖励令牌数量。
步骤五、按照各个自治令牌对象的的奖励令牌数量分别为各个自治令牌对象分配令牌。
上述信息转发方法可以实现流量限速,实际应用中可以发布为一个Linux内核模块,通过insmod 加载到内核中,通过内核netfilter机制hook三层数据包(ip报文)。在Linux内核模块加载时,根据CPU的核数建立多个实例,即自治令牌对象,每个实例对应一个CPU核,接收该CPU核收到的数据包,并进行本地的令牌桶计算,只要本地的令牌桶不是负令牌状态,就放行数据包,若是负令牌状态则缓存或者丢弃数据包。
当用户配置限速参数时,配置接口将配置参数(一般为限速速率,即生产令牌的预设速率)按实例个数平分后,下发给各个实例;各实例的本地生产者按照下发的速率生产令牌。
基于同一发明构思,本公开实施例中还提供了一种令牌管理方法对应的令牌管理装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述令牌管理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图6所示,为本公开实施例所提供的令牌管理装置的结构示意图,包括:
数据获取单元610,用于分别获取各个自治令牌对象对应的令牌数据。其中,P个所述自治令牌对象用于生产令牌和消费令牌;P为大于1的正整数。
供需分析单元620,用于对各个所述自治令牌对象对应的令牌数据进行分析,得到综合令牌供需状态。
令牌分配单元630,用于根据所述综合令牌供需状态和所述令牌数据,为至少一个自治令牌对象分配奖励令牌,以使所述至少一个自治令牌对象利用接收奖励令牌后的令牌转发信息。
在一些实施例中,生产令牌的所述自治令牌对象生产令牌的速度为预设速率的N分之一;其中,N为生产令牌的所述自治令牌对象的数量;和/或,所述自治令牌对象上设置有用于存放令牌的令牌桶。
在一些实施例中,所述供需分析单元620在对各个所述自治令牌对象对应的令牌数据进行分析,得到综合令牌供需状态时,用于:
对各个所述自治令牌对象对应的令牌数据进行分析,确定令牌统计数据;
根据所述令牌统计数据,确定所述综合令牌供需状态。
在一些实施例中,所述令牌数据包括对应的自治令牌对象的欠缺令牌数量;用于生产令牌的自治令牌对象的令牌数据还包括富裕令牌数量;所述令牌统计数据包括富裕令牌总数量、欠缺令牌总数量、基础令牌总数量、负令牌总数量;
所述供需分析单元620在对各个所述自治令牌对象对应的令牌数据进行分析,确定令牌统计数据时,用于:
针对每个自治令牌对象,根据该自治令牌对象对应的预设的最大基础令牌数量和欠缺令牌数量,确定该自治令牌对象的基础令牌数量和负令牌数量;
计算至少部分自治令牌对象对应的富裕令牌数量的和,得到所述富裕令牌总数量;
计算至少部分自治令牌对象对应的欠缺令牌数量的和,得到所述欠缺令牌总数量;
计算至少部分自治令牌对象对应的基础令牌数量的和,得到所述基础令牌总数量;
计算至少部分自治令牌对象对应的负令牌数量的和,得到所述负令牌总数量。
在一些实施例中,所述令牌统计数据包括富裕令牌总数量、欠缺令牌总数量;
所述供需分析单元620在根据所述令牌统计数据,确定所述综合令牌供需状态时,用于:
在所述富裕令牌总数量大于所述欠缺令牌总数量的情况下,确定所述综合令牌供需状态为第一供需状态;所述第一供需状态用于表征令牌总体生产速度大于令牌总体消费速度,并且为各个自治令牌对象分配奖励令牌后,各个自治令牌对象的基础令牌数量均为预设的最大基础令牌数量。
在一些实施例中,所述令牌数据包括对应的自治令牌对象的富裕令牌数量和欠缺令牌数量;
所述令牌分配单元630在根据所述综合令牌供需状态和所述令牌数据,为至少一个自治令牌对象分配奖励令牌时,用于:
在所述综合令牌供需状态为第一供需状态的情况下,针对每个基础令牌数量小于最大基础令牌数量的第一自治令牌对象,将该第一自治令牌对象的奖励令牌数量设置为该第一自治令牌对象的欠缺令牌数量。
在一些实施例中,所述令牌统计数据包括富裕令牌总数量、基础令牌总数量、负令牌总数量;
所述供需分析单元620在根据所述令牌统计数据,确定所述综合令牌供需状态时,用于:
在所述富裕令牌总数量和所述基础令牌总数量的和小于所述负令牌总数量的情况下,确定所述综合令牌供需状态为第二供需状态;所述第二供需状态用于表征令牌总体生产速度小于令牌总体消费速度,并且为各个自治令牌对象分配奖励令牌后,各个自治令牌对象的负令牌数量均大于零。
在一些实施例中,所述令牌分配单元630在根据所述综合令牌供需状态和所述令牌数据,为至少一个自治令牌对象分配奖励令牌时,用于:
在所述综合令牌供需状态为第二供需状态的情况下,计算所述负令牌总数量减去所述富裕令牌总数量以及所述基础令牌总数量得到的差值;
计算所述差值除以所述自治令牌对象的数量得到的商,得到负令牌平均数量;
针对每个自治令牌对象,根据该自治令牌对象的令牌数据和所述负令牌平均数量,确定该自治令牌对象的奖励令牌数量。
在一些实施例中,所述令牌统计数据包括富裕令牌总数量、基础令牌总数量、负令牌总数量;
所述供需分析单元620在根据所述令牌统计数据,确定所述综合令牌供需状态时,用于:
在所述富裕令牌总数量和所述基础令牌总数量的和大于所述负令牌总数量,并且所述负令牌总数量大于所述富裕令牌总数量的情况下,确定所述综合令牌供需状态为第三供需状态;所述第三供需状态用于表征令牌总体生产速度小于令牌总体消费速度,并且为各个自治令牌对象分配奖励令牌后,各个自治令牌对象的基础令牌数量均大于零,并且小于或等于最大基础令牌数。
在一些实施例中,所述令牌数据包括对应的自治令牌对象的富裕令牌数量和欠缺令牌数量;
所述令牌分配单元630在根据所述综合令牌供需状态和所述令牌数据,为至少一个自治令牌对象分配奖励令牌时,用于:
在所述综合令牌供需状态为第三供需状态的情况下,针对每个基础令牌数量小于最大基础令牌数量的第二自治令牌对象,根据该第二自治令牌对象的欠缺令牌数量和所述欠缺令牌总数量,确定该第二自治令牌对象的令牌欠缺比例;
根据所述富裕令牌总数量和所述令牌欠缺比例,确定该第二自治令牌对象的奖励令牌数量。
在一些实施例中,还包括数据定义单元640,用于:
设置自治令牌对象的令牌桶的平衡水平线;其中,平衡水平线对应的数值为自治令牌对象生产令牌生产和新消费令牌平衡时,令牌桶内的令牌数量;
将所述平衡水平线以上的令牌区域内的令牌,作为富裕令牌;
将所述平衡水平线以下,并且0线以上的令牌区域内的令牌作为基础令牌;其中,0线表示令牌桶中令牌数量的正负分界线;
在令牌桶中令牌数量小于所述平衡水平线对应的数值,并且所述令牌桶中令牌数量为正值的情况下,将基础令牌到平衡水平线之间的空令牌区域内的令牌作为欠缺令牌;
在所述令牌桶中令牌数量为负值的情况下,将低于0线的空令牌区域内的令牌作为负令牌,将低于平衡水平线和低于0线的空令牌区域内的令牌作为欠缺令牌。
基于同一发明构思,本公开实施例中还提供了一种信息转发方法对应的信息转发装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述信息转发方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图7所示,为本公开实施例所提供的信息转发装置的结构示意图,包括:包括设置有自治令牌对象的至少一个令牌处理模块710和令牌调度模块720。
所述令牌处理模块710,用于利用对应的自治令牌对象向所述令牌调度模块上报令牌数据。其中,P个所述自治令牌对象用于生产令牌和消费令牌;P为大于1的正整数。
所述令牌调度模块720,用于接收各个自治令牌对象上报的令牌数据,基于接收的所述令牌数据确定综合令牌供需状态,并根据所述综合令牌供需状态和所述令牌数据,为至少一个自治令牌对象分配奖励令牌,以使所述至少一个自治令牌对象利用接收奖励令牌后的令牌转发信息
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,设备800包括计算单元810,其可以根据存储在只读存储器(ROM)820中的计算机程序或者从存储单元880加载到随机访问存储器(RAM)830中的计算机程序,来执行各种适当的动作和处理。在RAM830中,还可存储设备800操作所需的各种程序和数据。计算单元810、ROM820以及RAM 830通过总线840彼此相连。输入/输出(I/O)接口850也连接至总线840。
设备800中的多个部件连接至I/O接口850,包括:输入单元860,例如键盘、鼠标等;输出单元870,例如各种类型的显示器、扬声器等;存储单元880,例如磁盘、光盘等;以及通信单元890,例如网卡、调制解调器、无线通信收发机等。通信单元890允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元810可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元810的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元810执行上文所描述的各个方法和处理,例如令牌管理方法或信息转发方法。例如,在一些实施例中,令牌管理方法或信息转发方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元880。在一些实施例中,计算机程序的部分或者全部可以经由ROM820和/或通信单元890而被载入和/或安装到设备800上。当计算机程序加载到RAM830并由计算单元810执行时,可以执行上文描述的令牌管理方法或信息转发方法的一个或多个步骤。备选地,在其他实施例中,计算单元810可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行令牌管理方法或信息转发方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (16)
1.一种令牌管理方法,应用于令牌调度模块,其特征在于,包括:
分别获取各个自治令牌对象对应的令牌数据;其中,P个所述自治令牌对象用于生产令牌和消费令牌;P为大于1的正整数;
对各个所述自治令牌对象对应的令牌数据进行分析,得到综合令牌供需状态;其中,所述综合令牌供需状态用于表征各自治令牌对象整体的令牌生产速度和消费速度之间的关系;
根据所述综合令牌供需状态和各个所述令牌数据,为至少一个自治令牌对象分配奖励令牌,以使所述至少一个自治令牌对象利用接收奖励令牌后的令牌转发信息。
2.根据权利要求1所述的方法,其特征在于,
所述自治令牌对象上设置有用于存放令牌的令牌桶;和/或;
生产令牌的所述自治令牌对象生产令牌的速度为预设速率的N分之一;其中,N为生产令牌的所述自治令牌对象的数量。
3.根据权利要求1所述的方法,其特征在于,还包括:
设置自治令牌对象的令牌桶的平衡水平线;其中,平衡水平线对应的数值为自治令牌对象生产令牌生产和新消费令牌平衡时,令牌桶内的令牌数量;
将平衡水平线以上的令牌区域内的令牌,作为富裕令牌;
将所述平衡水平线以下,并且0线以上的令牌区域内的令牌作为基础令牌;其中,0线表示令牌桶中令牌数量的正负分界线;
在令牌桶中令牌数量小于所述平衡水平线对应的数值,并且所述令牌桶中令牌数量为正值的情况下,将基础令牌到平衡水平线之间的空令牌区域内的令牌作为欠缺令牌;
在所述令牌桶中令牌数量为负值的情况下,将低于0线的空令牌区域内的令牌作为负令牌,将低于平衡水平线和低于0线的空令牌区域内的令牌作为欠缺令牌。
4.根据权利要求3所述的方法,其特征在于,所述对各个所述自治令牌对象对应的令牌数据进行分析,得到综合令牌供需状态,包括:
对各个所述自治令牌对象对应的令牌数据进行分析,确定令牌统计数据;
根据所述令牌统计数据,确定所述综合令牌供需状态。
5.根据权利要求4所述的方法,其特征在于,所述令牌数据包括自治令牌对象的欠缺令牌数量;用于生产令牌的自治令牌对象的令牌数据还包括富裕令牌数量;所述令牌统计数据包括富裕令牌总数量、欠缺令牌总数量、基础令牌总数量、负令牌总数量;
所述对各个所述自治令牌对象对应的令牌数据进行分析,确定令牌统计数据,包括:
针对每个自治令牌对象,根据该自治令牌对象对应的预设的最大基础令牌数量和欠缺令牌数量,确定该自治令牌对象的基础令牌数量和负令牌数量;
计算至少部分自治令牌对象对应的富裕令牌数量的和,得到所述富裕令牌总数量;计算至少部分自治令牌对象对应的欠缺令牌数量的和,得到所述欠缺令牌总数量;
计算至少部分自治令牌对象对应的基础令牌数量的和,得到所述基础令牌总数量;计算至少部分自治令牌对象对应的负令牌数量的和,得到所述负令牌总数量。
6.根据权利要求5所述的方法,其特征在于,所述令牌统计数据包括富裕令牌总数量、欠缺令牌总数量;
所述根据所述令牌统计数据,确定所述综合令牌供需状态,包括:
在所述富裕令牌总数量大于所述欠缺令牌总数量的情况下,确定所述综合令牌供需状态为第一供需状态;所述第一供需状态用于表征令牌总体生产速度大于令牌总体消费速度,并且为各个自治令牌对象分配奖励令牌后,各个自治令牌对象的基础令牌数量均为预设的最大基础令牌数量。
7.根据权利要求6所述的方法,其特征在于,所述令牌数据包括自治令牌对象的富裕令牌数量和欠缺令牌数量;
所述根据所述综合令牌供需状态和各个所述令牌数据,为至少一个自治令牌对象分配奖励令牌,包括:
在所述综合令牌供需状态为第一供需状态的情况下,针对每个基础令牌数量小于最大基础令牌数量的第一自治令牌对象,将该第一自治令牌对象的奖励令牌数量设置为该第一自治令牌对象的欠缺令牌数量。
8.根据权利要求4所述的方法,其特征在于,所述令牌统计数据包括富裕令牌总数量、基础令牌总数量、负令牌总数量;
所述根据所述令牌统计数据,确定所述综合令牌供需状态,包括:
在所述富裕令牌总数量和所述基础令牌总数量的和小于所述负令牌总数量的情况下,确定所述综合令牌供需状态为第二供需状态;所述第二供需状态用于表征令牌总体生产速度小于令牌总体消费速度,并且为各个自治令牌对象分配奖励令牌后,各个自治令牌对象的负令牌数量均大于零。
9.根据权利要求8所述的方法,其特征在于,所述根据所述综合令牌供需状态和各个所述令牌数据,为至少一个自治令牌对象分配奖励令牌,包括:
在所述综合令牌供需状态为第二供需状态的情况下,计算所述负令牌总数量减去所述富裕令牌总数量以及所述基础令牌总数量得到的差值;
计算所述差值除以所述自治令牌对象的数量得到的商,得到负令牌平均数量;
针对每个自治令牌对象,根据该自治令牌对象的令牌数据和所述负令牌平均数量,确定该自治令牌对象的奖励令牌数量。
10.根据权利要求4所述的方法,其特征在于,所述令牌统计数据包括富裕令牌总数量、基础令牌总数量、负令牌总数量;
所述根据所述令牌统计数据,确定所述综合令牌供需状态,包括:
在所述富裕令牌总数量和所述基础令牌总数量的和大于所述负令牌总数量,并且所述负令牌总数量大于所述富裕令牌总数量的情况下,确定所述综合令牌供需状态为第三供需状态;所述第三供需状态用于表征令牌总体生产速度小于令牌总体消费速度,并且为各个自治令牌对象分配奖励令牌后,各个自治令牌对象的基础令牌数量均大于零,并且小于或等于最大基础令牌数量。
11.根据权利要求10所述的方法,其特征在于,所述令牌数据包括自治令牌对象的富裕令牌数量和欠缺令牌数量;所述令牌统计数据还包括欠缺令牌总数量;
所述根据所述综合令牌供需状态和各个所述令牌数据,为至少一个自治令牌对象分配奖励令牌,包括:
在所述综合令牌供需状态为第三供需状态的情况下,针对每个基础令牌数量小于最大基础令牌数量的第二自治令牌对象,根据该第二自治令牌对象的欠缺令牌数量和所述欠缺令牌总数量,确定该第二自治令牌对象的令牌欠缺比例;
根据所述富裕令牌总数量和所述令牌欠缺比例,确定该第二自治令牌对象的奖励令牌数量。
12.一种信息转发方法,其特征在于,包括:
各个自治令牌对象分别向令牌调度模块上报令牌数据;其中,P个所述自治令牌对象用于生产令牌和消费令牌;P为大于1的正整数;
所述令牌调度模块接收各个自治令牌对象上报的令牌数据,基于接收的所述令牌数据确定综合令牌供需状态,并根据所述综合令牌供需状态和所述令牌数据,为至少一个自治令牌对象分配奖励令牌,以使所述至少一个自治令牌对象利用接收奖励令牌后的令牌转发信息;其中,所述综合令牌供需状态用于表征各自治令牌对象整体的令牌生产速度和消费速度之间的关系。
13.一种令牌管理装置,应用于令牌调度模块,其特征在于,包括:
数据获取单元,用于分别获取各个自治令牌对象对应的令牌数据;其中,P个所述自治令牌对象用于生产令牌和消费令牌;P为大于1的正整数
供需分析单元,用于对各个所述自治令牌对象对应的令牌数据进行分析,得到综合令牌供需状态;其中,所述综合令牌供需状态用于表征各自治令牌对象整体的令牌生产速度和消费速度之间的关系;
令牌分配单元,用于根据所述综合令牌供需状态和所述令牌数据,为至少一个自治令牌对象分配奖励令牌,以使所述至少一个自治令牌对象利用接收奖励令牌后的令牌转发信息。
14.一种信息转发装置,其特征在于,包括设置有自治令牌对象的至少一个令牌处理模块和令牌调度模块;
所述令牌处理模块,用于利用对应的自治令牌对象向所述令牌调度模块上报令牌数据;其中,P个所述自治令牌对象用于生产令牌和消费令牌;P为大于1的正整数;
所述令牌调度模块,用于接收各个自治令牌对象上报的令牌数据,基于接收的所述令牌数据确定综合令牌供需状态,并根据所述综合令牌供需状态和所述令牌数据,为至少一个自治令牌对象分配奖励令牌,以使所述至少一个自治令牌对象利用接收奖励令牌后的令牌转发信息;其中,所述综合令牌供需状态用于表征各自治令牌对象整体的令牌生产速度和消费速度之间的关系。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至12中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210708083.4A CN114785740B (zh) | 2022-06-22 | 2022-06-22 | 令牌管理及信息转发方法、装置、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210708083.4A CN114785740B (zh) | 2022-06-22 | 2022-06-22 | 令牌管理及信息转发方法、装置、设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114785740A CN114785740A (zh) | 2022-07-22 |
CN114785740B true CN114785740B (zh) | 2022-09-13 |
Family
ID=82421112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210708083.4A Active CN114785740B (zh) | 2022-06-22 | 2022-06-22 | 令牌管理及信息转发方法、装置、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114785740B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101005453A (zh) * | 2006-12-26 | 2007-07-25 | 华为技术有限公司 | 流量限制技术中刷新令牌桶的方法及装置 |
CN104734989A (zh) * | 2013-12-23 | 2015-06-24 | 腾讯数码(天津)有限公司 | 基于令牌桶的数据传输流量调度方法及其系统 |
CN113742114A (zh) * | 2020-09-28 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种系统限流的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9178827B2 (en) * | 2013-08-05 | 2015-11-03 | Globalfoundries U.S. 2 Llc | Rate control by token buckets |
CN114615203A (zh) * | 2022-01-30 | 2022-06-10 | 阿里云计算有限公司 | 访问控制方法、装置、存储介质及处理器 |
-
2022
- 2022-06-22 CN CN202210708083.4A patent/CN114785740B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101005453A (zh) * | 2006-12-26 | 2007-07-25 | 华为技术有限公司 | 流量限制技术中刷新令牌桶的方法及装置 |
CN104734989A (zh) * | 2013-12-23 | 2015-06-24 | 腾讯数码(天津)有限公司 | 基于令牌桶的数据传输流量调度方法及其系统 |
CN113742114A (zh) * | 2020-09-28 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种系统限流的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114785740A (zh) | 2022-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112559182B (zh) | 资源分配方法、装置、设备及存储介质 | |
CN109788315A (zh) | 视频转码方法、装置及系统 | |
CN112860974A (zh) | 计算资源的调度方法、装置、电子设备和存储介质 | |
CN112783659A (zh) | 一种资源分配方法、装置、计算机设备及存储介质 | |
KR20240052091A (ko) | 그래픽 처리 유닛 자원 관리 방법, 장치, 디바이스, 저장 매체, 및 프로그램 제품 | |
CN114911598A (zh) | 任务调度方法、装置、设备以及存储介质 | |
CN116661960A (zh) | 一种批量任务处理方法、装置、设备以及存储介质 | |
CN113608751B (zh) | 推理服务平台的运行方法、装置、设备及存储介质 | |
CN112887407B (zh) | 用于分布式集群的作业流量控制方法和装置 | |
CN113986497A (zh) | 基于多租户技术的队列调度方法、装置及系统 | |
CN114153614A (zh) | 内存管理方法、装置、电子设备和自动驾驶车辆 | |
CN114785740B (zh) | 令牌管理及信息转发方法、装置、设备、存储介质 | |
CN116634023A (zh) | 业务调度方法、装置、电子设备及存储介质 | |
CN115952054A (zh) | 一种仿真任务资源管理方法、装置、设备及介质 | |
CN115511453A (zh) | 一种数据处理方法、装置、设备及系统 | |
CN114793216B (zh) | 令牌管理及信息发送方法、装置、电子设备及存储介质 | |
CN113971083A (zh) | 任务调度方法、装置、设备、介质及产品 | |
CN115577958A (zh) | 一种风险处理方法、装置、设备以及存储介质 | |
CN113971082A (zh) | 任务调度方法、装置、设备、介质及产品 | |
CN112156453B (zh) | 实例自适应调整方法、装置、计算机可读存储介质及设备 | |
CN115022245A (zh) | 一种数据传输的方法、相关装置、设备以及存储介质 | |
CN113538081A (zh) | 商城订单系统及其实现资源自适应调度的处理方法 | |
CN117176672B (zh) | 消息队列资源确定方法、装置及资源智能调度系统 | |
CN117707793B (zh) | 一种计算任务处理方法、装置、设备及介质 | |
CN113411390B (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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: Room 01, block C, No. 101, floor 6, building 24, yard 68, Beiqing Road, Haidian District, Beijing 100094 Patentee after: Beijing Light Network Technology Co.,Ltd. Address before: Room 01, block C, No. 101, floor 6, building 24, yard 68, Beiqing Road, Haidian District, Beijing 100094 Patentee before: Beijing Light Network Technology Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |