CN114793216A - 令牌管理及信息发送方法、装置、电子设备及存储介质 - Google Patents
令牌管理及信息发送方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114793216A CN114793216A CN202210708218.7A CN202210708218A CN114793216A CN 114793216 A CN114793216 A CN 114793216A CN 202210708218 A CN202210708218 A CN 202210708218A CN 114793216 A CN114793216 A CN 114793216A
- Authority
- CN
- China
- Prior art keywords
- token
- tokens
- agent module
- node
- abundant
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000003860 storage Methods 0.000 title claims abstract description 19
- 238000009826 distribution Methods 0.000 claims abstract description 31
- 230000002950 deficient Effects 0.000 claims description 100
- 238000007726 management method Methods 0.000 claims description 35
- 230000005540 biological transmission Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 9
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 11
- 239000003795 chemical substances by application Substances 0.000 description 153
- 238000010586 diagram Methods 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 4
- 230000006870 function 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
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 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
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008569 process Effects 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种令牌管理及信息发送方法、装置、电子设备以及存储介质,涉及网络通信领域。本公开中,在第一令牌代理模块中设置预设队列,该队列中包括多个节点,一个节点用于存储一个统计周期对应的富裕令牌总数量,富裕令牌总数量为在对应的统计周期中,至少一个第二令牌代理模块上报的富裕令牌数量的和。在第二令牌代理模块向第一令牌代理模块发送令牌需求信息时,第一令牌代理模块从总的富裕令牌中为第二令牌代理模块调度令牌,有效实现了多机负载均衡,提高了令牌分配的公平性和效率,从而有利于提高信息发送效率。
Description
技术领域
本公开涉及网络通信技术领域,尤其涉及一种令牌管理方法及装置、信息发送方法及装置、电子设备以及存储有计算机指令的非瞬时计算机可读存储介质。
背景技术
在网络传输场景中,经常会有对流量进行限速和整形的需求。用于流量限速和流量整形的主要算法是令牌桶算法和漏桶算法,其基本原理是生产者-消费者模型,一个生产者以恒定速率生产令牌,使用令牌桶存储生产出来的令牌,而消费者则随机到来,消费令牌桶中的令牌,当令牌桶中没有令牌的时候,消费者就无法消费,从而达到限速和整形的效果。
在高速网络传输场景下,网络流量相当大,甚至单个网络设备无法满足流量需求,因此出现了多机负载的应用场景。而传统的令牌分配算法无法实现多机负载均衡,导致令牌调度和信息发送的效率均较低。
发明内容
本公开至少提供了一种令牌管理方法及装置、信息发送方法及装置、电子设备以及存储有计算机指令的非瞬时计算机可读存储介质,以解决上述至少一个技术缺陷。
根据本公开的一方面,提供了一种令牌管理方法,应用于第一令牌代理模块,包括:
响应于接收到第二令牌代理模块发送的令牌需求信息,确定欠缺令牌数量;
按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌,并将获取的富裕令牌分配给所述第二令牌代理模块,以使所述第二令牌代理模块利用分配的令牌发送信息;
其中,所述预设队列包括多个节点,一个节点用于存储一个统计周期对应的富裕令牌总数量,所述富裕令牌总数量为在对应的统计周期中,至少一个第二令牌代理模块上报的富裕令牌数量的和。
在一种可能的实施方式中,上述令牌管理方法还包括:
响应于接收到至少一个第二令牌代理模块上报的富裕令牌数量,从当前统计周期对应的节点中获取富裕令牌总数量,根据接收到的至少一个富裕令牌数量,更新当前统计周期对应的富裕令牌总数量,并利用更新后的富裕令牌总数量更新当前统计周期对应的节点中存储的富裕令牌总数量;
其中,所述预设队列的各个节点按照时间顺序存储有各个富裕令牌总数量。
在一种可能的实施方式中,所述从当前统计周期对应的节点中获取富裕令牌总数量,包括:
获取第一指针在所述预设队列中的第一位置;其中,所述第一指针用于指向所述预设队列中当前统计周期对应的节点;
按照所述第一位置,从当前统计周期对应的节点中获取富裕令牌总数量;
所述利用更新后的富裕令牌总数量更新当前统计周期对应的节点中存储的富裕令牌总数量,包括:
按照所述第一位置,清空当前统计周期对应的节点,并将更新后的富裕令牌总数量存入当前统计周期对应的节点中;
在当前统计周期结束时,按照预设方向将所述第一指针指向所述当前统计周期对应的节点的下一个节点;其中,所述预设队列包括环形队列。
在一种可能的实施方式中,所述按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌,包括:
将所述预设队列的令牌节点中存储的富裕令牌总数量,与所述欠缺令牌数量进行比较;其中,令牌节点为所述预设队列中的时间最早的非空节点;
在所述令牌节点中存储的富裕令牌总数量小于所述欠缺令牌数量的情况下,将所述令牌节点中的富裕令牌取出,并根据取出的富裕令牌的数量更新所述欠缺令牌数量;
将所述预设队列中令牌节点的下一个节点作为新的令牌节点,并返回所述将所述预设队列的令牌节点中存储的富裕令牌总数量,与所述欠缺令牌数量进行比较的步骤,直到取出的富裕令牌的总数量等于所述令牌需求信息中携带的欠缺令牌数量。
在一种可能的实施方式中,所述按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌,还包括:
在所述令牌节点中存储的富裕令牌总数量大于所述欠缺令牌数量的情况下,从所述令牌节点中获取所述欠缺令牌数量个富裕令牌,并更新所述令牌节点中存储的富裕令牌总数量;和/或,
在所述令牌节点中存储的富裕令牌总数量等于所述欠缺令牌数量的情况下,将所述令牌节点中的富裕令牌取出,清空所述令牌节点,并将所述预设队列中令牌节点的下一个节点作为新的令牌节点。
在一种可能的实施方式中,所述将所述预设队列的令牌节点中存储的富裕令牌总数量,与所述欠缺令牌数量进行比较,包括:
获取第二指针在所述预设队列中的第二位置;其中,所述第二指针用于指向所述预设队列中的令牌节点;
按照所述第二位置,从所述预设队列中获取所述令牌节点中存储的富裕令牌总数量;
将获取的所述富裕令牌总数量,与所述欠缺令牌数量进行比较;
所述将所述预设队列中令牌节点的下一个节点作为新的令牌节点,包括:
将所述第二指针指向所述新的令牌节点。
在一种可能的实施方式中,所述将所述富裕令牌总数量存入所述预设队列对应于当前统计周期的节点中之后,还包括:
在所述当前统计周期的节点的下一个节点与所述令牌节点为同一个节点的情况下,将所述当前统计周期的节点的下一个节点作为新的当前统计周期对应的节点,并清空新的当前统计周期对应的节点,将所述令牌节点的下一个节点作为新的令牌节点。
根据本公开的另一方面,提供了一种令牌管理方法,应用于第二令牌代理模块,包括:
获取最近N个分配周期中的每个分配周期内,第一令牌代理模块为所述第二令牌代理模块分配的富裕令牌的分配数量;N为正整数;
根据所述分配数量对所述第二令牌代理模块的最大基础令牌数量进行更新;
根据更新后的最大基础令牌数量,确定欠缺令牌数量;
生成携带有欠缺令牌数量的令牌需求信息,并将所述令牌需求信息发送给所述第一令牌代理模块,以所述第一令牌代理模块根据所述令牌需求信息向所述第二令牌代理模块分配富裕令牌。
在一种可能的实施方式中,所述根据所述分配数量对所述第二令牌代理模块的最大基础令牌数量进行更新,包括:
在存在至少一个所述分配数量大于零的情况下,将最大的分配数量与所述最大基础令牌数量的和作为更新后的最大基础令牌数量;和/或,
在所有的所述分配数量均为零的情况下,将所述最大基础令牌数量更新为预设值。
根据本公开的另一方面,提供了一种信息发送方法,包括:
第二令牌代理模块根据当前的最大基础令牌数量,确定欠缺令牌数量;
所述第二令牌代理模块生成携带有欠缺令牌数量的令牌需求信息,并将所述令牌需求信息发送给第一令牌代理模块;
所述第一令牌代理模块响应于接收到的令牌需求信息,确定欠缺令牌数量;
所述第一令牌代理模块按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌,并将获取的富裕令牌分配给所述第二令牌代理模块,以使所述第二令牌代理模块利用分配的令牌发送信息。
根据本公开的另一方面,提供了一种令牌管理装置,应用于第一令牌代理模块,包括:
需求分析单元,用于响应于接收到第二令牌代理模块发送的令牌需求信息,确定欠缺令牌数量;
令牌分配单元,用于按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌,并将获取的富裕令牌分配给所述第二令牌代理模块,以使所述第二令牌代理模块利用分配的令牌发送信息;
其中,所述预设队列包括多个节点,一个节点用于存储一个统计周期对应的富裕令牌总数量,所述富裕令牌总数量为在对应的统计周期中,至少一个第二令牌代理模块上报的富裕令牌数量的和。
根据本公开的另一方面,提供了一种令牌管理装置,应用于第二令牌代理模块,包括:
数据获取单元,用于获取最近N个分配周期中的每个分配周期内,第一令牌代理模块为所述第二令牌代理模块分配的富裕令牌的分配数量;N为正整数;
更新单元,用于根据所述分配数量对所述第二令牌代理模块的最大基础令牌数量进行更新;
数据处理单元,用于根据更新后的最大基础令牌数量,确定欠缺令牌数量;
需求生成单元,用于生成携带有欠缺令牌数量的令牌需求信息,并将所述令牌需求信息发送给所述第一令牌代理模块,以所述第一令牌代理模块根据所述令牌需求信息向所述第二令牌代理模块分配富裕令牌。
根据本公开的另一方面,提供了一种信息发送装置,包括:第一令牌代理模块和至少一个第二令牌代理模块;
第二令牌代理模块,用于根据当前的最大基础令牌数量,确定欠缺令牌数量,以及,生成携带有欠缺令牌数量的令牌需求信息,并将所述令牌需求信息发送给第一令牌代理模块;
所述第一令牌代理模块,用于响应于接收到的令牌需求信息,确定欠缺令牌数量,以及,按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌,并将获取的富裕令牌分配给所述第二令牌代理模块,以使所述第二令牌代理模块利用分配的令牌发送信息。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开任一实施例中的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行本公开任一实施例中的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本公开任一实施例中的方法。
本公开提供来一种令牌管理方法及装置、信息发送方法及装置、电子设备以及存储有计算机指令的非瞬时计算机可读存储介质,第一令牌代理模块响应于接收到第二令牌代理模块发送的令牌需求信息,确定欠缺令牌数量;按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌,并将获取的富裕令牌分配给所述第二令牌代理模块,以使所述第二令牌代理模块利用分配的令牌发送信息;其中,所述预设队列包括多个节点,一个节点用于存储一个统计周期对应的富裕令牌总数量,所述富裕令牌总数量为在对应的统计周期中,至少一个第二令牌代理模块上报的富裕令牌数量的和。将各个第二令牌代理模块的富裕令牌总数量存储在预设队列中,并在第二令牌代理模块有令牌需求的时候,从总的富裕令牌中为第二令牌代理模块调度令牌,有效实现了多机(令牌代理模块)负载均衡,提高了令牌分配的公平性和效率,有利于提高信息发送效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开令牌管理方法的流程图之一;
图2是根据本公开中多生产者多消费者模型的示意图之一;
图3是根据本公开中多生产者多消费者模型的示意图之二;
图4是根据本公开中令牌桶的示意图;
图5是根据本公开中预设队列的示意图;
图6是根据本公开令牌管理方法的流程图之二;
图7是根据本公开中平衡水平线调整的示意图;
图8是根据本公开信息发送方法的流程图;
图9是根据本公开令牌管理装置的结构示意图之一;
图10是根据本公开令牌管理装置的结构示意图之二;
图11是根据本公开信息发送装置的结构示意图;
图12是根据本公开的电子设备的结构示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
针对传统的令牌分配算法无法实现多机负载均衡,导致令牌调度和信息发送的效率均较低的缺陷,本公开提供了一种令牌管理方法及装置、信息发送方法及装置、电子设备以及存储有计算机指令的非瞬时计算机可读存储介质,本公开在第一令牌代理模块中设置预设队列,该队列中包括多个节点,一个节点用于存储一个统计周期对应的富裕令牌总数量,富裕令牌总数量为在对应的统计周期中,至少一个第二令牌代理模块上报的富裕令牌数量的和。在第二令牌代理模块向第一令牌代理模块发送令牌需求信息时,第一令牌代理模块从总的富裕令牌中为第二令牌代理模块调度令牌,有效实现了多机负载均衡,提高了令牌分配的公平性和效率,从而有利于提高信息发送效率。
下面通过具体的实施例对本公开的令牌管理方法进行说明。
图1示出了本公开实施例的令牌管理方法的流程图,该实施例的执行主体可以是具有计算能力的终端或设置在终端上的第一令牌代理模块。如图1所示,本公开实施例的令牌管理方法可以包括如下步骤:
S110、响应于接收到第二令牌代理模块发送的令牌需求信息,确定欠缺令牌数量。
示例性地,每个主机上运行一个令牌代理模块,从多个主机中运行的多个令牌代理模块中,选取一个作为第一令牌代理模块,剩余的令牌代理模块作为第二令牌代理模块。如图2所示,每个主机上均设置有本地的生产者和消费者,维护本地的令牌桶,本地的生产者将生产的令牌放入本地的令牌桶,而本地的消费者,例如该主机处理的数据包则从本地的令牌桶中消费令牌。本地的令牌桶中无令牌时,则数据包被丢弃或缓存,达到限速效果。上述多个主机形成来多生产者多消费者模型。
如图3所示,第二令牌代理模块读写本地的令牌桶中的令牌数据,例如富裕令牌数量、欠缺令牌数量等,并与第一令牌代理模块进行通信,将读取的令牌数据发送给第一令牌代理模块。在一些实施例中,第一令牌代理模块也可以读取自身本地的令牌桶中的令牌数据,并结合自身读取的令牌数据和各个第二令牌代理模块发送的令牌数据,计算下述富裕令牌总数量。
第一令牌代理模块可以是手工配置,也可以是通过自协商协议从各令牌代理模块中选举出来的。第二令牌代理模块只和第一令牌代理模块通信,第一令牌代理模块除负责各第二令牌代理模块通信外,还负责维护额外的令牌桶,该令牌桶用于存储下述预设队列。
第二令牌代理模块在每个统计周期统计一次令牌桶中的令牌数据,将统计的富裕令牌数量等上报给第一令牌代理模块。上述第一令牌代理模块,可以认为是主令牌代理模块,第二令牌代理模块可以认为是从令牌代理模块。
第二令牌代理模块在统计令牌数据之后,可以根据欠缺令牌数量生成令牌需求信息,并将令牌需求信息发送给第一令牌代理模块。
富裕令牌为主机在满足自身转发信息所需的令牌的前提下,多余出来的令牌,这部分令牌能够提供给其他主机使用。欠缺令牌为主机满足自身转发信息所欠缺的令牌。
S120、按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌,并将获取的富裕令牌分配给所述第二令牌代理模块,以使所述第二令牌代理模块利用分配的令牌发送信息。
上述第二令牌代理模块还可以包括第一令牌代理模块,即第一令牌代理模块还可以将自身的富裕令牌数量统计到总体的富裕令牌总数量中,同时,第一令牌代理模块也可以有信息发送的需求,处理方式与第二令牌代理模块相同。
所述预设队列包括多个节点,一个节点用于存储一个统计周期对应的富裕令牌总数量,所述富裕令牌总数量为在对应的统计周期中,至少一个第二令牌代理模块上报的富裕令牌数量的和。所述预设队列的各个节点按照时间顺序存储有各个富裕令牌总数量。
在一些实施例中,为令牌桶设置了平衡水平线,其中平衡水平线对应的数值为供需平衡令牌数量,该数值为令牌生产和令牌消费平衡时,令牌桶内的令牌数量。平衡水平线如图4中附图标记41所示。
令牌桶中多于所述供需平衡令牌数量的令牌为富裕令牌,如图4所示,富裕令牌42为平衡水平线以上的令牌区域内的令牌。最大富裕令牌数量43对应于令牌桶容量的上限,超过该上限的令牌直接丢弃。
如图4所示,平衡水平线以下,并且0线以上的令牌区域内的令牌为基础令牌44。最大基础令牌数量45即为平衡水平线对应的供需平衡令牌数量。0线表示令牌桶中令牌数量的正负分界线,低于该线则触发对消费的抑制,例如丢包或缓存数据包。
如图4所示,若令牌桶中令牌数量小于平衡水平线对应的供需平衡令牌数量,则基础令牌到平衡水平线之间的这部分空令牌区域对应的令牌为欠缺令牌46。
如图4所示,欠缺令牌46的数量可以大于最大基础令牌数量,此时令牌桶中的令牌数量可以为负数,将低于0线的欠缺令牌作为负令牌47,即将低于0线的空令牌区域内的令牌作为负令牌。存在负令牌的状态一般是突发流量或者特殊场景造成,由于该状态下令牌消费被抑制,因此不会长期处于该状态。
在一些实施例中,第一令牌代理模块可以按照如下步骤存储或更新富裕令牌总数量:
响应于接收到至少一个第二令牌代理模块上报的富裕令牌数量,从当前统计周期对应的节点中获取富裕令牌总数量,根据接收到的至少一个富裕令牌数量,更新当前统计周期对应的富裕令牌总数量,并利用更新后的富裕令牌总数量更新当前统计周期对应的节点中存储的富裕令牌总数量。
在实际应用中,各个第二令牌代理模块可以同步上传富裕令牌数量,也可以异步上传富裕令牌数量,本公开对此并不进行限定。在各个第二令牌代理模块异步上传富裕令牌数量的情况下,预设队列中的某一节点中存储的是富裕令牌数量的累计值,即该节点对应的统计周期中,各个第二令牌代理模块异步上传的富裕令牌数量累加得到的值。
在一些实施例中,所述预设队列包括环形队列,如图4所示,预设队列上设置第一指针,该第一指针用于指向所述预设队列中当前统计周期对应的节点,在存储或更新上述富裕令牌总数量时,获取第一指针在所述预设队列中的第一位置,按照所述第一位置,从当前统计周期对应的节点中获取富裕令牌总数量;根据接收到的至少一个富裕令牌数量,更新当前统计周期对应的富裕令牌总数量;按照所述第一位置,清空当前统计周期对应的节点,并将更新后的富裕令牌总数量存入当前统计周期对应的节点中。在当前统计周期结束时,按照预设方向将所述第一指针指向所述当前统计周期对应的节点的下一个节点,并清空当前第一指针所指向的新节点。预设方向可以是顺时针方向或逆时针方向,本公开对此并不进行限定。
如图5所示,预设队列可以包括多个节点,例如包括N个节点,N为正整数。示例性地,N取值8。通过预设队列可以保存最近一段时间上报的富裕令牌总数量,维持N个统计周期的流量突发,接收各主令牌代理模块发来的令牌数据,例如富裕令牌数量,并在有令牌需求的时候给出反馈的奖励令牌,即给有令牌需求的令牌代理模块从总体的富裕令牌中分配令牌。利用环形队列存储N个统计周期的富裕令牌总数量能够防止令牌无限积累的趋势,仅保留最近几个统计周期的富余令牌。
如图5所示,预设队列上设置第二指针,该指针用于指向所述预设队列中的令牌节点,令牌节点为所述预设队列中的时间最早的非空节点。节点中的富裕令牌总数量为零时,清空节点。第一指针指向预设队列的队尾,第二指针指向预设队列的队头。
第二令牌代理模块在统计到本地的令牌桶中是欠缺令牌状态时,根据欠缺令牌数量生成令牌需求信息,并发送给第一令牌代理模块。第一令牌代理模块将令牌需求信息中携带的欠缺令牌数量,与令牌节点中存储的富裕令牌总数量进行比较;并在所述令牌节点中存储的富裕令牌总数量小于所述欠缺令牌数量的情况下,将所述令牌节点中的富裕令牌全部取出,清空令牌节点,并根据取出的富裕令牌的数量更新所述欠缺令牌数量,即计算欠缺令牌数量减去从令牌节点中取出的富裕令牌的数量,将得到的差值作为更新后的欠缺令牌数量。之后,将所述预设队列中令牌节点的下一个节点作为新的令牌节点,并返回上述将令牌节点中存储的富裕令牌总数量,与所述欠缺令牌数量进行比较的步骤,直到取出的富裕令牌的总数量等于所述令牌需求信息中携带的欠缺令牌数量。
在所述令牌节点中存储的富裕令牌总数量大于所述欠缺令牌数量的情况下,从所述令牌节点中获取所述欠缺令牌数量个富裕令牌,并更新所述令牌节点中存储的富裕令牌总数量,即利用令牌节点中剩余的富裕令牌的数量其存储的富裕令牌总数量。
在所述令牌节点中存储的富裕令牌总数量等于所述欠缺令牌数量的情况下,将所述令牌节点中的富裕令牌取出,清空所述令牌节点,并将所述预设队列中令牌节点的下一个节点作为新的令牌节点。
综上,第一令牌代理模块在收到令牌需求信息时,从预设队列的令牌节点中取出富裕令牌来满足第二令牌代理模块的令牌需求,若当前的令牌节点被取空,仍然没有满足第二令牌代理模块的令牌需求,则按照预设方向从令牌节点的下一个节点中获取富裕令牌来满足第二令牌代理模块的令牌需求。从新的令牌节点中获取富裕令牌时,先要判断新的令牌节点是否同时是当前统计周期对应的节点,若不是,执行从新的令牌节点中获取富裕令牌来满足第二令牌代理模块的令牌需求的步骤。
上述实施例中的令牌调度方式能够解决多核大流量场景下令牌调度算法的效率问题和公平性问题。
在一些实施例中,将所述预设队列的令牌节点中存储的富裕令牌总数量,与所述欠缺令牌数量进行比较,可以利用如下步骤实现:
首先获取第二指针在所述预设队列中的第二位置;其中,所述第二指针用于指向所述预设队列中的令牌节点;之后按照所述第二位置,从所述预设队列中获取所述令牌节点中存储的富裕令牌总数量;最后将获取的所述富裕令牌总数量,与所述欠缺令牌数量进行比较。
将所述预设队列中令牌节点的下一个节点作为新的令牌节点,将所述第二指针指向所述新的令牌节点。
在将所述富裕令牌总数量存入所述预设队列对应于当前统计周期的节点中之后,若所述当前统计周期的节点的下一个节点与所述令牌节点为同一个节点,则将所述当前统计周期的节点的下一个节点作为新的当前统计周期对应的节点,同时,清空新的当前统计周期对应的节点;将所述令牌节点的下一个节点作为新的令牌节点。
下面通过具体的实施例对本公开中的第二令牌代理模块执行的方法进行陈述。如图6所示,第二令牌代理模块执行的令牌管理方法可以包括如下步骤:
S610、获取在最近的N个分配周期中的每个分配周期内,第一令牌代理模块为所述第二令牌代理模块分配的富裕令牌的分配数量。
第二令牌代理模块在有令牌需求的时候,会生成令牌需求信息并发送给第一令牌代理模块,第一令牌代理模块根据令牌需求信息中携带的欠缺令牌数量,为第二令牌代理模块分配富裕令牌。本步骤是获取第一令牌代理模块最近的N个分配周期内为所述第二令牌代理模块分配的富裕令牌的分配数量。
上述分配周期可以与上述统计周期相同,也可以不同,本公开对此并不进行限定。
S620、根据所述分配数量对所述第二令牌代理模块的最大基础令牌数量进行更新。同时,将分配的令牌更新到第二令牌代理模块的本地令牌桶中。
这里首先获取当前的最大基础令牌数量,之后根据所述分配数量对当前的最大基础令牌数量进行更新。根据最近的N个分配周期内获得的富裕令牌的数量,即根据最近的N个分配周期内欠缺令牌的情况,能够确定更加符合当前流量需求的新的最大基础令牌数量。
示例性地,N的取值可以根据实际应用场景的需求灵活设定,例如设置为4。
S630、根据更新后的最大基础令牌数量,确定欠缺令牌数量。
S640、生成携带有欠缺令牌数量的令牌需求信息,并将所述令牌需求信息发送给所述第一令牌代理模块,以所述第一令牌代理模块根据所述令牌需求信息向所述第二令牌代理模块分配富裕令牌。
在一些实施例中,上述根据所述分配数量对所述第二令牌代理模块的最大基础令牌数量进行更新,具体可以利用如下步骤实现:
在存在至少一个所述分配数量大于零的情况下,即最近N个分配周期内有为第二令牌代理模块分配富裕令牌的情况下,将最大的分配数量与所述最大基础令牌数量的和作为更新后的最大基础令牌数量。
在所有的所述分配数量均为零的情况下,将所述最大基础令牌数量更新为预设值。若最近N个分配周期都没有分配令牌,表示本地需求少了或者总的富裕令牌数没有了,此时则将令牌桶大小(平衡水平线)恢复到初始值,即预设值,即最大基础令牌数量。
为了让欠缺令牌数量更接近流量的真实需求,引入了动态调整令牌桶大小(平衡水平线)的方式。其基本原理是,将分配到本地的令牌反映到下一次上报的需求中,使得下次能分配到更多的令牌。最大基础令牌数量未在一开始设置很大值,是从公平性考虑,各个本地的令牌桶都从一个基础值开始申请,如果总的富裕令牌较多,再快速收敛上升。
如图7所示,令牌桶大小未发生变化时的状态,平衡水平线71位于初始的预设位置,平衡水平线72根据最近至少一个分配数量提高了,平衡水平线73由于最近N个分配周期未分配到令牌而返回原来位置。
根据上述方案上报的欠缺令牌数量(接近真实流量需求)是根据最近N个分配周期分配的富裕令牌的数量确定的,在总的富裕令牌较多时,本地的需求可以快速上升,同时能够提高令牌分配的公平性。
对应于上述令牌管理方法,本公开还提供了一种信息发送方法,如图8所示,可以包括如下步骤:
S810、第二令牌代理模块根据当前的最大基础令牌数量,确定欠缺令牌数量。
S820、所述第二令牌代理模块生成携带有欠缺令牌数量的令牌需求信息,并将所述令牌需求信息发送给第一令牌代理模块。
S830、所述第一令牌代理模块响应于接收到的令牌需求信息,确定欠缺令牌数量。
S840、所述第一令牌代理模块按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌,并将获取的富裕令牌分配给所述第二令牌代理模块,以使所述第二令牌代理模块利用分配的令牌发送信息。
本实施例中的第一令牌代理模块、第二令牌代理模块与上述实施例中的第一令牌代理模块和第二令牌代理模块均相同,重复内容不再赘述。
本实施例中的信息发送方法可以作为一个限速方法,在实际应用中可以布为一个Linux内核模块,通过insmod 加载到内核中,通过内核netfilter机制hook三层数据包(ip报文);在内核态维护本地的令牌桶,而令牌代理模块则作为用户态程序,与内核态的令牌桶交互,然后将令牌数据或令牌需求信息上报给第一令牌代理模块。
基于同一发明构思,本公开实施例中还提供了一种令牌管理方法对应的令牌管理装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述令牌管理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图9所示,为本公开实施例所提供的令牌管理装置的结构示意图,应用于第一令牌代理模块,包括:
需求分析单元910,用于响应于接收到第二令牌代理模块发送的令牌需求信息,确定欠缺令牌数量。
令牌分配单元920,用于按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌,并将获取的富裕令牌分配给所述第二令牌代理模块,以使所述第二令牌代理模块利用分配的令牌发送信息。
其中,所述预设队列包括多个节点,一个节点用于存储一个统计周期对应的富裕令牌总数量,所述富裕令牌总数量为在对应的统计周期中,至少一个第二令牌代理模块上报的富裕令牌数量的和。
在一些实施例中,上述装置还包括数据存储单元930,用于响应于接收到至少一个第二令牌代理模块上报的富裕令牌数量,从当前统计周期对应的节点中获取富裕令牌总数量,根据接收到的至少一个富裕令牌数量,更新当前统计周期对应的富裕令牌总数量,并利用更新后的富裕令牌总数量更新当前统计周期对应的节点中存储的富裕令牌总数量;其中,所述预设队列的各个节点按照时间顺序存储有各个富裕令牌总数量。
在一些实施例中,所述数据存储单元930在从当前统计周期对应的节点中获取富裕令牌总数量时,用于:
获取第一指针在所述预设队列中的第一位置;其中,所述第一指针用于指向所述预设队列中当前统计周期对应的节点;
按照所述第一位置,从当前统计周期对应的节点中获取富裕令牌总数量;
所述数据存储单元930在利用更新后的富裕令牌总数量更新当前统计周期对应的节点中存储的富裕令牌总数量时,用于:
按照所述第一位置,清空当前统计周期对应的节点,并将更新后的富裕令牌总数量存入当前统计周期对应的节点中;
在当前统计周期结束时,按照预设方向将所述第一指针指向所述当前统计周期对应的节点的下一个节点;其中,所述预设队列包括环形队列。
在一些实施例中,所述令牌分配单元920在按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌时,用于:
将所述预设队列的令牌节点中存储的富裕令牌总数量,与所述欠缺令牌数量进行比较;其中,令牌节点为所述预设队列中的时间最早的非空节点;
在所述令牌节点中存储的富裕令牌总数量小于所述欠缺令牌数量的情况下,将所述令牌节点中的富裕令牌取出,并根据取出的富裕令牌的数量更新所述欠缺令牌数量;
将所述预设队列中令牌节点的下一个节点作为新的令牌节点,并返回所述将所述预设队列的令牌节点中存储的富裕令牌总数量,与所述欠缺令牌数量进行比较的步骤,直到取出的富裕令牌的总数量等于所述令牌需求信息中携带的欠缺令牌数量。
在一些实施例中,所述令牌分配单元920在按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌时,还用于:
在所述令牌节点中存储的富裕令牌总数量大于所述欠缺令牌数量的情况下,从所述令牌节点中获取所述欠缺令牌数量个富裕令牌,并更新所述令牌节点中存储的富裕令牌总数量;和/或,
在所述令牌节点中存储的富裕令牌总数量等于所述欠缺令牌数量的情况下,将所述令牌节点中的富裕令牌取出,清空所述令牌节点,并将所述预设队列中令牌节点的下一个节点作为新的令牌节点。
在一些实施例中,所述令牌分配单元920在将所述预设队列的令牌节点中存储的富裕令牌总数量,与所述欠缺令牌数量进行比较时,用于:
获取第二指针在所述预设队列中的第二位置;其中,所述第二指针用于指向所述预设队列中的令牌节点;
按照所述第二位置,从所述预设队列中获取所述令牌节点中存储的富裕令牌总数量;
将获取的所述富裕令牌总数量,与所述欠缺令牌数量进行比较;
所述将所述预设队列中令牌节点的下一个节点作为新的令牌节点,包括:
将所述第二指针指向所述新的令牌节点。
在一些实施例中,所述数据存储单元930在将所述富裕令牌总数量存入所述预设队列对应于当前统计周期的节点中之后,还用于:
在所述当前统计周期的节点的下一个节点与所述令牌节点为同一个节点的情况下,将所述当前统计周期的节点的下一个节点作为新的当前统计周期对应的节点,并清空新的当前统计周期对应的节点,将所述令牌节点的下一个节点作为新的令牌节点。
基于同一发明构思,本公开实施例中还提供了一种令牌管理方法对应的令牌管理装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述令牌管理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图10所示,为本公开实施例所提供的令牌管理装置的结构示意图,应用于第二令牌代理模块,包括:
数据获取单元1010,用于获取最近N个分配周期中的每个分配周期内,第一令牌代理模块为所述第二令牌代理模块分配的富裕令牌的分配数量;N为正整数;
更新单元1020,用于根据所述分配数量对所述第二令牌代理模块的最大基础令牌数量进行更新;
数据处理单元1030,用于根据更新后的最大基础令牌数量,确定欠缺令牌数量;
需求生成单元1040,用于生成携带有欠缺令牌数量的令牌需求信息,并将所述令牌需求信息发送给所述第一令牌代理模块,以所述第一令牌代理模块根据所述令牌需求信息向所述第二令牌代理模块分配富裕令牌。
在一些实施例中,所述更新单元1020在根据所述分配数量对所述第二令牌代理模块的最大基础令牌数量进行更新时,用于:
在存在至少一个所述分配数量大于零的情况下,将最大的分配数量与所述最大基础令牌数量的和作为更新后的最大基础令牌数量;和/或,
在所有的所述分配数量均为零的情况下,将所述最大基础令牌数量更新为预设值。
基于同一发明构思,本公开实施例中还提供了一种信息发送方法对应的信息发送装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述信息发送方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图11所示,为本公开实施例所提供的信息发送装置的结构示意图,包括第一令牌代理模块1110和至少一个第二令牌代理模块1120。
第二令牌代理模块1110,用于根据当前的最大基础令牌数量,确定欠缺令牌数量,以及,生成携带有欠缺令牌数量的令牌需求信息,并将所述令牌需求信息发送给第一令牌代理模块;
所述第一令牌代理模块1120,用于响应于接收到的令牌需求信息,确定欠缺令牌数量,以及,按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌,并将获取的富裕令牌分配给所述第二令牌代理模块,以使所述第二令牌代理模块利用分配的令牌发送信息。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图12示出了可以用来实施本公开的实施例的示例电子设备1200的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图12所示,设备1200包括计算单元1210,其可以根据存储在只读存储器(ROM)1220中的计算机程序或者从存储单元1280加载到随机访问存储器(RAM)1230中的计算机程序,来执行各种适当的动作和处理。在RAM1230中,还可存储设备1200操作所需的各种程序和数据。计算单元1210、ROM1220以及RAM 1230通过总线1240彼此相连。输入/输出(I/O)接口1250也连接至总线1240。
设备1200中的多个部件连接至I/O接口1250,包括:输入单元1260,例如键盘、鼠标等;输出单元1270,例如各种类型的显示器、扬声器等;存储单元1280,例如磁盘、光盘等;以及通信单元1290,例如网卡、调制解调器、无线通信收发机等。通信单元1290允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1210可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1210的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1210执行上文所描述的各个方法和处理,例如令牌管理方法或信息发送方法。例如,在一些实施例中,令牌管理方法或信息发送方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1280。在一些实施例中,计算机程序的部分或者全部可以经由ROM1220和/或通信单元1290而被载入和/或安装到设备1200上。当计算机程序加载到RAM1230并由计算单元1210执行时,可以执行上文描述的令牌管理方法或信息发送方法的一个或多个步骤。备选地,在其他实施例中,计算单元1210可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行令牌管理方法或信息发送方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (15)
1.一种令牌管理方法,应用于第一令牌代理模块,其特征在于,包括:
响应于接收到第二令牌代理模块发送的令牌需求信息,确定欠缺令牌数量;
按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌,并将获取的富裕令牌分配给所述第二令牌代理模块,以使所述第二令牌代理模块利用分配的令牌发送信息;
其中,所述预设队列包括多个节点,一个节点用于存储一个统计周期对应的富裕令牌总数量,所述富裕令牌总数量为在对应的统计周期中,至少一个第二令牌代理模块上报的富裕令牌数量的和。
2.根据权利要求1所述的方法,其特征在于,还包括:
响应于接收到至少一个第二令牌代理模块上报的富裕令牌数量,从当前统计周期对应的节点中获取富裕令牌总数量,根据接收到的至少一个富裕令牌数量,更新当前统计周期对应的富裕令牌总数量,并利用更新后的富裕令牌总数量更新当前统计周期对应的节点中存储的富裕令牌总数量;
其中,所述预设队列的各个节点按照时间顺序存储有各个富裕令牌总数量。
3.根据权利要求2所述的方法,其特征在于,所述从当前统计周期对应的节点中获取富裕令牌总数量,包括:
获取第一指针在所述预设队列中的第一位置;其中,所述第一指针用于指向所述预设队列中当前统计周期对应的节点;
按照所述第一位置,从当前统计周期对应的节点中获取富裕令牌总数量;
所述利用更新后的富裕令牌总数量更新当前统计周期对应的节点中存储的富裕令牌总数量,包括:
按照所述第一位置,清空当前统计周期对应的节点,并将更新后的富裕令牌总数量存入当前统计周期对应的节点中;
在当前统计周期结束时,按照预设方向将所述第一指针指向所述当前统计周期对应的节点的下一个节点,并清空当前第一指针所指向的节点;其中,所述预设队列包括环形队列。
4.根据权利要求2或3任一项所述的方法,其特征在于,所述按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌,包括:
将所述预设队列的令牌节点中存储的富裕令牌总数量,与所述欠缺令牌数量进行比较;其中,令牌节点为所述预设队列中的时间最早的非空节点;
在所述令牌节点中存储的富裕令牌总数量小于所述欠缺令牌数量的情况下,将所述令牌节点中的富裕令牌取出,并根据取出的富裕令牌的数量更新所述欠缺令牌数量;
将所述预设队列中令牌节点的下一个节点作为新的令牌节点,并返回所述将所述预设队列的令牌节点中存储的富裕令牌总数量,与所述欠缺令牌数量进行比较的步骤,直到取出的富裕令牌的总数量等于所述令牌需求信息中携带的欠缺令牌数量。
5.根据权利要求4所述的方法,其特征在于,所述按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌,还包括:
在所述令牌节点中存储的富裕令牌总数量大于所述欠缺令牌数量的情况下,从所述令牌节点中获取所述欠缺令牌数量个富裕令牌,并更新所述令牌节点中存储的富裕令牌总数量;和/或,
在所述令牌节点中存储的富裕令牌总数量等于所述欠缺令牌数量的情况下,将所述令牌节点中的富裕令牌取出,清空所述令牌节点,并将所述预设队列中令牌节点的下一个节点作为新的令牌节点。
6.根据权利要求4所述的方法,其特征在于,所述将所述预设队列的令牌节点中存储的富裕令牌总数量,与所述欠缺令牌数量进行比较,包括:
获取第二指针在所述预设队列中的第二位置;其中,所述第二指针用于指向所述预设队列中的令牌节点;
按照所述第二位置,从所述预设队列中获取所述令牌节点中存储的富裕令牌总数量;
将获取的所述富裕令牌总数量,与所述欠缺令牌数量进行比较;
所述将所述预设队列中令牌节点的下一个节点作为新的令牌节点,包括:
将所述第二指针指向所述新的令牌节点。
7.根据权利要求4所述的方法,其特征在于,还包括:
在所述当前统计周期的节点的下一个节点与所述令牌节点为同一个节点的情况下,将所述当前统计周期的节点的下一个节点作为新的当前统计周期对应的节点,并清空新的当前统计周期对应的节点,将所述令牌节点的下一个节点作为新的令牌节点。
8.一种令牌管理方法,应用于第二令牌代理模块,其特征在于,包括:
获取最近N个分配周期中的每个分配周期内,第一令牌代理模块为所述第二令牌代理模块分配的富裕令牌的分配数量;N为正整数;
根据所述分配数量对所述第二令牌代理模块的最大基础令牌数量进行更新;
根据更新后的最大基础令牌数量,确定欠缺令牌数量;
生成携带有欠缺令牌数量的令牌需求信息,并将所述令牌需求信息发送给所述第一令牌代理模块,以所述第一令牌代理模块根据所述令牌需求信息向所述第二令牌代理模块分配富裕令牌。
9.根据权利要求8所述的方法,其特征在于,所述根据所述分配数量对所述第二令牌代理模块的最大基础令牌数量进行更新,包括:
在存在至少一个所述分配数量大于零的情况下,将最大的分配数量与所述最大基础令牌数量的和作为更新后的最大基础令牌数量;和/或,
在所有的所述分配数量均为零的情况下,将所述最大基础令牌数量更新为预设值。
10.一种信息发送方法,其特征在于,包括:
第二令牌代理模块根据当前的最大基础令牌数量,确定欠缺令牌数量;
所述第二令牌代理模块生成携带有欠缺令牌数量的令牌需求信息,并将所述令牌需求信息发送给第一令牌代理模块;
所述第一令牌代理模块响应于接收到的令牌需求信息,确定欠缺令牌数量;
所述第一令牌代理模块按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌,并将获取的富裕令牌分配给所述第二令牌代理模块,以使所述第二令牌代理模块利用分配的令牌发送信息。
11.一种令牌管理装置,应用于第一令牌代理模块,其特征在于,包括:
需求分析单元,用于响应于接收到第二令牌代理模块发送的令牌需求信息,确定欠缺令牌数量;
令牌分配单元,用于按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌,并将获取的富裕令牌分配给所述第二令牌代理模块,以使所述第二令牌代理模块利用分配的令牌发送信息;
其中,所述预设队列包括多个节点,一个节点用于存储一个统计周期对应的富裕令牌总数量,所述富裕令牌总数量为在对应的统计周期中,至少一个第二令牌代理模块上报的富裕令牌数量的和。
12.一种令牌管理装置,应用于第二令牌代理模块,其特征在于,包括:
数据获取单元,用于获取最近N个分配周期中的每个分配周期内,第一令牌代理模块为所述第二令牌代理模块分配的富裕令牌的分配数量;N为正整数;
更新单元,用于根据所述分配数量对所述第二令牌代理模块的最大基础令牌数量进行更新;
数据处理单元,用于根据更新后的最大基础令牌数量,确定欠缺令牌数量;
需求生成单元,用于生成携带有欠缺令牌数量的令牌需求信息,并将所述令牌需求信息发送给所述第一令牌代理模块,以所述第一令牌代理模块根据所述令牌需求信息向所述第二令牌代理模块分配富裕令牌。
13.一种信息发送装置,其特征在于,包括:第一令牌代理模块和至少一个第二令牌代理模块;
第二令牌代理模块,用于根据当前的最大基础令牌数量,确定欠缺令牌数量,以及,生成携带有欠缺令牌数量的令牌需求信息,并将所述令牌需求信息发送给第一令牌代理模块;
所述第一令牌代理模块,用于响应于接收到的令牌需求信息,确定欠缺令牌数量,以及,按照所述欠缺令牌数量,从预设队列的至少一个节点中获取富裕令牌,并将获取的富裕令牌分配给所述第二令牌代理模块,以使所述第二令牌代理模块利用分配的令牌发送信息。
14.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至10中任一项所述的方法。
15.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210708218.7A CN114793216B (zh) | 2022-06-22 | 2022-06-22 | 令牌管理及信息发送方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210708218.7A CN114793216B (zh) | 2022-06-22 | 2022-06-22 | 令牌管理及信息发送方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114793216A true CN114793216A (zh) | 2022-07-26 |
CN114793216B CN114793216B (zh) | 2022-09-23 |
Family
ID=82463748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210708218.7A Active CN114793216B (zh) | 2022-06-22 | 2022-06-22 | 令牌管理及信息发送方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114793216B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130242742A1 (en) * | 2012-03-19 | 2013-09-19 | Fujitsu Limited | Apparatus for policing traffic in a communication network |
CN103929366A (zh) * | 2014-04-02 | 2014-07-16 | 华为技术有限公司 | 流量控制方法、装置及设备 |
US20150071074A1 (en) * | 2013-09-12 | 2015-03-12 | Oracle International Corporation | Methods, systems, and computer readable media for regulation of multi-priority traffic in a telecommunications network |
CN104734989A (zh) * | 2013-12-23 | 2015-06-24 | 腾讯数码(天津)有限公司 | 基于令牌桶的数据传输流量调度方法及其系统 |
CN107347198A (zh) * | 2016-05-05 | 2017-11-14 | 北京金山云网络技术有限公司 | 一种限速方法、限速控制节点和限速设备 |
CN112104568A (zh) * | 2020-11-17 | 2020-12-18 | 北京达佳互联信息技术有限公司 | 一种数据传输控制方法及网关 |
WO2021098730A1 (zh) * | 2019-11-20 | 2021-05-27 | 深圳市中兴微电子技术有限公司 | 交换网络拥塞管理方法、装置、设备和存储介质 |
CN113472681A (zh) * | 2020-03-30 | 2021-10-01 | 阿里巴巴集团控股有限公司 | 流量限速方法及装置 |
US20220014438A1 (en) * | 2020-07-13 | 2022-01-13 | Lightwan Corporation Limited | Shared bandwidth speed limiting method, device, and storage medium |
-
2022
- 2022-06-22 CN CN202210708218.7A patent/CN114793216B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130242742A1 (en) * | 2012-03-19 | 2013-09-19 | Fujitsu Limited | Apparatus for policing traffic in a communication network |
US20150071074A1 (en) * | 2013-09-12 | 2015-03-12 | Oracle International Corporation | Methods, systems, and computer readable media for regulation of multi-priority traffic in a telecommunications network |
CN104734989A (zh) * | 2013-12-23 | 2015-06-24 | 腾讯数码(天津)有限公司 | 基于令牌桶的数据传输流量调度方法及其系统 |
CN103929366A (zh) * | 2014-04-02 | 2014-07-16 | 华为技术有限公司 | 流量控制方法、装置及设备 |
CN107347198A (zh) * | 2016-05-05 | 2017-11-14 | 北京金山云网络技术有限公司 | 一种限速方法、限速控制节点和限速设备 |
WO2021098730A1 (zh) * | 2019-11-20 | 2021-05-27 | 深圳市中兴微电子技术有限公司 | 交换网络拥塞管理方法、装置、设备和存储介质 |
CN113472681A (zh) * | 2020-03-30 | 2021-10-01 | 阿里巴巴集团控股有限公司 | 流量限速方法及装置 |
WO2021197128A1 (zh) * | 2020-03-30 | 2021-10-07 | 阿里巴巴集团控股有限公司 | 流量限速方法及装置 |
US20220014438A1 (en) * | 2020-07-13 | 2022-01-13 | Lightwan Corporation Limited | Shared bandwidth speed limiting method, device, and storage medium |
CN112104568A (zh) * | 2020-11-17 | 2020-12-18 | 北京达佳互联信息技术有限公司 | 一种数据传输控制方法及网关 |
Also Published As
Publication number | Publication date |
---|---|
CN114793216B (zh) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113038191B (zh) | 直播流的调度方法、装置、电子设备及可读存储介质 | |
CN106464733B (zh) | 一种调整云计算中虚拟资源的方法及装置 | |
CN110808922A (zh) | 一种消息处理方法、装置、存储介质及电子设备 | |
CN112559182A (zh) | 资源分配方法、装置、设备及存储介质 | |
CN112860974A (zh) | 计算资源的调度方法、装置、电子设备和存储介质 | |
Kliazovich et al. | CA-DAG: Communication-aware directed acyclic graphs for modeling cloud computing applications | |
CN114095438B (zh) | 数据传输方法、装置、设备、存储介质及计算机程序产品 | |
CN114911598A (zh) | 任务调度方法、装置、设备以及存储介质 | |
CN115037696B (zh) | 数据传输方法、装置、电子设备和存储介质 | |
CN116661960A (zh) | 一种批量任务处理方法、装置、设备以及存储介质 | |
CN102882809A (zh) | 一种基于报文缓存的网络限速方法及装置 | |
CN111988817A (zh) | Ota数据包下发流量的控制方法和装置 | |
CN114793216B (zh) | 令牌管理及信息发送方法、装置、电子设备及存储介质 | |
CN113626221A (zh) | 一种消息入队方法及装置 | |
CN117278473A (zh) | 一种拥塞控制方法及相关设备 | |
CN112887407A (zh) | 用于分布式集群的作业流量控制方法和装置 | |
CN116634023A (zh) | 业务调度方法、装置、电子设备及存储介质 | |
CN116633879A (zh) | 数据包接收方法、装置、设备以及存储介质 | |
CN113824689B (zh) | 边缘计算网络、数据传输方法、装置、设备和存储介质 | |
CN114785740B (zh) | 令牌管理及信息转发方法、装置、设备、存储介质 | |
CN115567602A (zh) | Cdn节点回源方法、设备及计算机可读存储介质 | |
CN115022245A (zh) | 一种数据传输的方法、相关装置、设备以及存储介质 | |
CN115665054A (zh) | 带宽分配的方法和模块、以及数据传输管理系统 | |
CN113778645A (zh) | 基于边缘计算的任务调度方法、装置、设备及存储介质 | |
CN113596920A (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 | ||
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. |