CN111404836B - 数据传输控制方法、装置、控制中心、服务器及介质 - Google Patents
数据传输控制方法、装置、控制中心、服务器及介质 Download PDFInfo
- Publication number
- CN111404836B CN111404836B CN202010237322.3A CN202010237322A CN111404836B CN 111404836 B CN111404836 B CN 111404836B CN 202010237322 A CN202010237322 A CN 202010237322A CN 111404836 B CN111404836 B CN 111404836B
- Authority
- CN
- China
- Prior art keywords
- token
- rate
- server
- bucket
- generation
- 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
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/50—Queue scheduling
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开是关于一种数据传输控制方法、装置、控制中心、服务器及介质;其中,所述数据传输控制方法,应用于控制中心,包括:根据服务器集群的总传输速率和所述服务器集群包含的服务器数量,确定单个令牌桶的桶速率;其中,一个所述令牌桶,用于控制一个所述服务器的数据传输;所述桶速率,用于供对应所述服务器通过令牌桶中的令牌生成控制数据传输的速率;基于所述桶速率,向对应服务器发送令牌生成信息。如此,能够通过控制中心,实现对服务器集群中每个服务器的数据传输速率的集中且自动的控制。
Description
技术领域
本公开涉及数据传输领域,尤其涉及一种数据传输控制方法、装置、控制中心、服务器及介质。
背景技术
随着计算机以及网络技术的迅速发展,网络应用越来越多,用户群的快速增长对数据传输所造成的压力也越来越大。在高并发场景下,流量会激增,如果不及时的控制流量会压垮服务。为了保证线上服务的高可用性,限流方法被广泛地使用。但目前的限流方法都只针对于单个服务器,控制单个服务器的流量,一旦服务器是集群的方式,就需要人工修改和配置服务器集群下每台服务器的限流参数,操作复杂,不利于服务器个数扩展下的限流处理。
发明内容
本公开提供一种数据传输控制方法、装置、控制中心、服务器及介质。
根据本公开实施例的第一方面,提供一种数据传输控制方法,应用于控制中心,所述方法包括:
根据服务器集群的总传输速率和所述服务器集群包含的服务器数量,确定单个令牌桶的桶速率;其中,一个所述令牌桶,用于控制一个所述服务器的数据传输;所述桶速率,用于供对应所述服务器通过令牌桶中的令牌生成控制数据传输的速率;
基于所述桶速率,向对应服务器发送令牌生成信息。
可选地,所述令牌生成信息,包括以下至少之一:
所述桶速率;
令牌的生成速率;
令牌的生成时间间隔。
可选地,所述方法还包括:
根据在应用协调服务上注册的互联网协议(IP)地址的数量,确定所述服务器集群包含的服务器数量。
可选地,所述方法还包括:
获取预设的所述服务器集群的总传输速率;
所述根据服务器集群的总传输速率和所述服务器集群包含的服务器数量,确定单个令牌桶的桶速率,包括:
根据所述总传输速率和所述服务器集群包含的服务器数量的比值,确定单个令牌桶的桶速率。
根据本公开实施例的第二方面,提供一种数据传输控制方法,所述方法应用于服务器,包括:
接收控制中心发送的令牌生成信息;其中,所述令牌生成信息是根据服务器集群的总传输速率和所述服务器集群包含的服务器数量所确定的;
根据所述令牌生成信息,生成令牌;
基于所述令牌,控制所述服务器上的数据传输速率。
可选地,所述令牌生成信息,包括以下至少之一:
所述桶速率;
令牌的生成速率;
令牌的生成时间间隔。
可选地,所述根据所述令牌生成信息,生成令牌,包括:
当所述令牌生成信息为桶速率时,根据单个令牌对应的数据流量及所述桶速率,确定令牌的生成速率和/或生成时间间隔;
根据所述生成速率和/或所述生成时间间隔,生成所述令牌。
可选地,空闲的令牌位于令牌桶中,所述方法还包括:
若在所述令牌桶中无空闲的令牌时,检测到有待传输数据,确定最后一个已生成令牌的生成时刻;
根据所述最后一个已生成令牌的生成时刻、下一个令牌的生成时刻及检测到所述待传输数据的时刻,确定所述待传输数据的传输等待时间;
在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态。
可选地,所述方法还包括:
确定所述传输等待时间的时长是否大于预设阈值;
所述在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态,包括:
当所述传输等待时间的时长大于所述预设阈值时,在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态。
根据本公开实施例的第三方面,提供一种控制中心,包括:
桶速率确定单元,用于根据服务器集群的总传输速率和所述服务器集群包含的服务器数量,确定单个令牌桶的桶速率;其中,一个所述令牌桶,用于控制一个所述服务器的数据传输;所述桶速率,用于供对应所述服务器通过令牌桶中的令牌生成控制数据传输的速率;
发送单元,用于基于所述桶速率,向对应服务器发送令牌生成信息。
可选地,所述令牌生成信息,包括以下至少之一:
所述桶速率;
令牌的生成速率;
令牌的生成时间间隔。
可选地,还包括:
数量确定单元,用于根据在应用协调服务上注册的互联网协议(IP)地址的数量,确定所述服务器集群包含的服务器数量。
可选地,还包括:
获取单元,用于获取预设的所述服务器集群的总传输速率;
桶速率确定单元,具体用于根据所述总传输速率和所述服务器集群包含的服务器数量的比值,确定单个令牌桶的桶速率。
根据本公开实施例的第四方面,提供一种服务器,包括:
接收单元,用于接收控制中心发送的令牌生成信息;其中,所述令牌生成信息是根据服务器集群的总传输速率和所述服务器集群包含的服务器数量所确定的;
生成单元,用于根据所述令牌生成信息,生成令牌;
控制单元,用于基于所述令牌,控制所述服务器上的数据传输速率。
可选地,所述令牌生成信息,包括以下至少之一:
所述桶速率;
令牌的生成速率;
令牌的生成时间间隔。
可选地,所述生成单元,包括:
第一确定单元,用于当所述令牌生成信息为桶速率时,根据单个令牌对应的数据流量及所述桶速率,确定令牌的生成速率和/或生成时间间隔;
生成子单元,用于根据所述生成速率和/或所述生成时间间隔,生成所述令牌。
可选地,所述服务器还包括:
生成时刻确定单元,用于在空闲的令牌位于令牌桶中时,若在所述令牌桶中无空闲的令牌时,检测到有待传输数据,确定最后一个已生成令牌的生成时刻;
传输等待时间确定单元,用于根据所述最后一个已生成令牌的生成时刻、下一个令牌的生成时刻及检测到所述待传输数据的时刻,确定所述待传输数据的传输等待时间;
休眠控制单元,用于在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态。
可选地,所述服务器还包括:
第二确定单元,用于确定所述传输等待时间的时长是否大于预设阈值;
所述休眠控制单元,具体用于当所述传输等待时间的时长大于所述预设阈值时,在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态。
根据本公开实施例的第五方面,提供一种数据传输控制装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:执行所述存储器中存储的可执行指令时,实现上述第一方面的任一项所述的方法或者上述第二方面的任一项所述的方法。
根据本公开实施例的第六方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由数据传输控制装置的处理器执行时,使得所述数据传输控制装置能够执行上述第一方面的任一项所述的方法或者上述第二方面的任一项所述的方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开实施例通过控制中心来基于服务器集群的总传输速率和所述服务器集群包含的服务器数量,为每个服务器确定出用于控制其数据传输的速率的令牌桶的桶速率,在基于桶速率向服务器集群中单个服务器发送令牌生成信息。如此,控制中心通过令牌生成信息的下发,就可以简便实现对服务器集群中每个服务器上数据传输的速率的自动控制。由于是控制中心统一控制整个服务器集群的数据传输的速率,而不是由单个服务器自行独立控制,就可以减少单个独立控制情况下总传输速率超过限制的现象的发生。并且控制中心侧只需要下发令牌生成信息给对应服务器,再由对应服务器基于接收的令牌生成信息自行处理,就能实现对每个服务器上数据传输的速率的统一控制,这种实现方式,由于控制中心的计算量较少,在实现上也较为简单。除此之外,一旦服务器集群中服务器数量发生变化,也能基于服务器集群包含的服务器数量和总传输速率来为每个服务器自动重新确定和分配数据传输的速率,有利于服务器集群扩展下的限流处理的效率地提升。由于是控制中心直接实现的对各个服务器数据传输的速率的分配,不需要人工手动配置,也节省了人工配置成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是令牌桶算法控制控制流量的一种示意图。
图2是根据一示例性实施例示出的一种数据传输控制方法的流程图一。
图3是根据一示例性实施例示出的一种数据传输控制方法的流程图二。
图4是根据一示例性实施例示出的一种数据传输控制方法的流程图三。
图5是根据一示例性实施例示出的一种控制中心的结构示意图。
图6是根据一示例性实施例示出的一种服务器的结构示意图。
图7是根据一示例性实施例示出的一种数据传输控制装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在高并发场景下流量会激增,为了精准地控制一个服务器集群内多台服务器上所产生的流量上限,提出了令牌桶限流算法。单一的令牌桶算法能够解决单台服务器的流量控制。图1是令牌桶算法控制控制流量的一种示意图,如图1所示,令牌桶中的令牌是以恒定的速率来生成的,且每个令牌桶中的令牌个数存在上限值,一旦达到这个上限值,新生成的令牌就会丢弃掉而不再放入令牌桶中。对应的,对于令牌桶中令牌的消耗,当应用服务请求受流量控制的接口时,需要先去令牌桶中尝试去获取一个令牌,只有获取到令牌才能访问接口,当令牌桶中令牌已经被消耗完时,获取不到令牌的应用服务所对应的线程就会进入阻塞状态,需要等待新的令牌产生。当令牌桶中再次生产出令牌,应用服务所对应的线程就会释放,从而获取令牌继续工作,以此达到控制流量的目的。
在这一处理过程中,如果只是存在单个服务器,就需要人工对单个服务器对应的令牌桶中的令牌生成速率和令牌个数的上限值进行配置。如果是在服务器集群中,这种单独为每个服务器配置的方就不利于限流处理的效率,也不方便。
为了方便服务器集群形式下的限流处理,本公开实施例提供一种数据传输控制方法,图2是根据一示例性实施例示出的一种数据传输控制方法的流程图一,如图2所示,所述方法应用于控制中心,包括以下步骤:
步骤101,根据服务器集群的总传输速率和所述服务器集群包含的服务器数量,确定单个令牌桶的桶速率;其中,一个所述令牌桶,用于控制一个所述服务器的数据传输;所述桶速率,用于供对应所述服务器通过令牌桶中的令牌生成控制数据传输的速率;
步骤102,基于所述桶速率,向对应服务器发送令牌生成信息。
需要说明的是,所述控制中心用于对服务器集群所包含的多个服务器进行参数的配置和控制服务器的运行。所述控制中心可以一台单独的计算机,也可以是服务器集群内的某台计算机,即由该计算机实现对服务器集群中的服务器的控制。
所述服务器集群的总传输速率是指所包含的多个服务器上数据传输速率的总和。所述服务器集群的总传输速率可以是预先配置好的。例如,服务集群的总传输速率可以配置为1000bps,即每秒传输1000比特(bit)的数据。
但需要说明的是,由于每个应用服务的类型、业务需求以及所处的网络环境存在不同,导致对应的用户个数和对应的服务器集群的流量压力不同。那么,根据对应用服务所对应的流量的评估,可以确定出所述服务集群的总传输速率,进而在控制中心上进行配置,这种方式更为符合实际应用的需求。基于此,所述方法还包括:获取预设的所述服务器集群的总传输速率。
所述服务器集群包含的服务器数量可以根据每个服务器的互联网协议(IP)地址来确定,即由于每个服务器都会对应一个单独的IP地址,那么统计IP地址的数量即可确定服务器数量。
所述服务器集群包含的服务器数量还可以根据服务器集群的配置信息来确定的。即,通过查询服务器集群的配置信息,确定出所述服务器集群包含的服务器数量。所述服务器集群的配置信息包括:服务器编号、服务器内存大小和/或服务器IP地址。
在本公开实施例中,为服务器集群中的每个服务器都配置一个令牌桶。所述令牌桶用于控制对应服务器的数据传输,具体包括:通过令牌桶的桶速率来控制对应服务器上的数据传输速率。
所述桶速率,用于供对应所述服务器通过令牌桶中的令牌生成控制数据传输的速率。如上所述,由于应用服务想要访问接口时,需要先去令牌桶中尝试去获取一个令牌,只有获取到令牌才能访问接口,那么,所述桶速率就可以是对令牌桶中的令牌生成情况进行控制的速率,通过控制令牌的生成来控制服务器上的数据传输的速率。
所述令牌用于控制服务器上的数据传输是指:获取到令牌,则可以对数据进行传输,未获取到令牌,则无法对数据进行传输。
令牌桶中第一个令牌的生成是由应用服务请求从令牌桶内获取令牌的操作所触发。即,应用服务第一次尝试从令牌桶中获取令牌时开始生成,当令牌桶中的令牌数量达到上限值的时候,新生成的令牌就丢弃掉而不再放入令牌桶中。所述令牌桶中的令牌数量的上限值可以根据对应用服务所对应的流量的评估来确定,即当评估出所述应用服务属于高并发量的应用服务时,就可以将令牌桶中的令牌数量的上限值设置的较高,以满足对高并发数据的及时处理。
这里,步骤101中,所述根据服务器集群的总传输速率和所述服务器集群包含的服务器数量,确定单个令牌桶的桶速率,可包括:根据所述总传输速率和所述服务器集群包含的服务器数量的比值,确定单个令牌桶的桶速率;或者是,基于预先为每个服务器设置的权重,来确定单个令牌桶的桶速率。即每个服务器对应的桶速率就是服务器对应的权重与总传输速率的乘积所得到的值。
在一些实施例中,所述步骤102中,所述令牌生成信息是指生成令牌所需要的信息,包括:所述桶速率、令牌的生成速率和/或令牌的生成时间间隔。所述令牌的生成速率是指令牌桶中生成令牌所对应的速率,即单位时间内生成的令牌数量。所述令牌的生成时间间隔是指令牌桶中生成令牌时,相邻时间生成的令牌之间的时间间隔。例如,8:00:00生成第一个令牌,8:00:10生成第二个令牌,则令牌的生成时间间隔为10S。
所述令牌生成信息的确定,包括:当所述令牌生成信息为令牌的生成速率时,可以根据令牌的生成速率在对应的时间节点上生成令牌;当所述令牌生成信息为令牌的生成时间间隔时,可以根据令牌的生成时间间隔在达到所述时间间隔后,生成令牌;当所述令牌生成信息为桶速率时,可以根据单个令牌对应的数据流量及所述桶速率,确定令牌的生成速率和/或生成时间间隔;再根据所述生成速率和/或所述生成时间间隔,生成所述令牌。
所述单个令牌对应的数据流量是指获取的令牌所允许的访问量,或者说,所允许的数据传输量。例如,当一个n个字节的数据包到达时,就从令牌桶中消耗掉m个令牌,那么单个令牌对应的数据流量就是n/m个字节。
在确定出每个令牌桶的令牌生成信息后,就向对应的对应服务器发送令牌生成信息,以使对应服务器能够基于令牌生成信息来在对应令牌桶中生成令牌,进而基于令牌实现对服务器上的数据传输的速率的限制。无需人工参与令牌桶参数的配置,提高了效率也节省了成本。
在一些实施例中,所述方法还包括:
步骤103,根据在应用协调服务上注册的互联网协议(IP)地址的数量,确定所述服务器集群包含的服务器数量。
这里,所述应用协调服务是指在服务器集群中为多个服务组件的工作进行协调,以实现应用服务的有序进行的组件。在本公开实施例中,所述应用协调服务可以是Zookeeper组件,用于实现服务器集群中的配置管理或集群管理等。
由于每个服务器都会对应一个单独的IP地址,当一个服务器启动的时候,会将服务器的IP地址注册到应用协调服务上的节点目录上,并且,服务器集群中的每个服务器还会订阅所述节点目录。那么,在每个服务器节点都将自己的IP地址注册到应用协调服务上后,就可以基于订阅的所述节点目录,确定出服务器集群内所有的服务器的IP地址,对所述IP地址进行统计,就可确定所述服务器集群包含的服务器数量。
如此,通过引入应用协调服务的方式,可以直接对在应用协调服务上注册的服务器的IP地址实现获取,进而确定出服务器集群包含的服务器数量,操作简单方便,不需要额外的通过人工确定数量,再输入控制中心的这种操作方式,进一步地节省了人工成本,提高了效率。
在一些实施例中,步骤101中,所述根据服务器集群的总传输速率和所述服务器集群包含的服务器数量,确定单个令牌桶的桶速率,包括:
步骤102中,根据所述总传输速率和所述服务器集群包含的服务器数量的比值,确定单个令牌桶的桶速率。
如上所述,由于所述总传输速率可以是预先配置好的,也可以是随机指定,那么在确定出所述总传输速率和所述服务器集群包含的服务器数量后,直接做除法的方式,由于是一种均匀分配的方式,将限流的压力均匀的分布给了每个服务器,减少了限流压力在单个服务器上所造成的困扰。
另外,考虑到各个服务器由于硬件配置的不同,导致负载值会有差别,有的服务器的当前负载值很高,有的服务器当前负载值比较低。如果将限流的压力均匀的分布给了各个服务器,就会导致有的服务器非常堵。
基于此,所述根据服务器集群的总传输速率和所述服务器集群包含的服务器数量,确定单个令牌桶的桶速率,还可包括:
基于各个服务器负载值与整个服务器集群的总负载值的比值,为各个服务器分配权重;
基于所述权重、所述总传输速率和所述服务器集群包含的服务器数量,确定单个令牌桶的桶速率。
这里,所述各个服务器负载值由各个服务器的硬件配置确定。整个服务器集群的总负载值由多个服务器负载值相加确定。
所述基于所述权重、所述总传输速率和所述服务器集群包含的服务器数量,确定单个令牌桶的桶速率,包括:
基于所述权重和所述服务器集群包含的服务器数量,确定各个服务器在所述服务器集群中所占的比重;
将各个服务器所占的比重与总传输速率进行乘法运算,确定单个令牌桶的桶速率。
所述各个服务器在所述服务器集群中所占的比重均小于1,且各个服务器在所述服务器集群中所占的比重的和等于1。所述各个服务器在所述服务器集群中所占的比重,反映了各个服务器在限流处理中对所述服务器集群的总传输速率的影响程度。
如此,结合各个服务器负载值来确定对应令牌桶的桶速率的方式,由于考虑了服务器的实际承载能力,所分配的桶速率就能起到相对较好的限流效果。
本公开实施例,通过控制中心来基于服务器集群的总传输速率和所述服务器集群包含的服务器数量,为每个服务器确定出用于控制其数据传输的速率的令牌桶的桶速率,在基于桶速率向服务器集群中单个服务器发送令牌生成信息。如此,控制中心通过令牌生成信息的下发,就可以简便实现对服务器集群中每个服务器上数据传输的速率的自动控制。由于是控制中心统一控制整个服务器集群的数据传输的速率,而不是由当个服务器自行独立控制,就可以减少单个独立控制情况下总传输速率超过限制的现象的发生。并且控制中心侧只需要下发令牌生成信息给对应服务器,再由对应服务器基于接收的令牌生成信息自行处理就能实现对每个服务器上数据传输的速率的统一控制,这种实现方式,由于控制中心的处理较少,在实现上也较为简单。除此之外,一旦服务器集群中服务器数量发生变化,也能基于服务器集群包含的服务器数量和总传输速率来为每个服务器自动重新确定和分配数据传输的速率,有利于服务器集群扩展下的限流处理的效率地提升。由于是控制中心直接实现的对各个服务器数据传输的速率的分配,不需要人工手动配置,也节省了人工配置成本。
对应的,为了方便服务器集群形式下的限流处理,本公开实施例提供还一种数据传输控制方法,图3是根据一示例性实施例示出的一种数据传输控制方法的流程图二,如图3所示,所述方法应用于服务器,包括以下步骤:
步骤301,接收控制中心发送的令牌生成信息;其中,所述令牌生成信息是根据服务器集群的总传输速率和所述服务器集群包含的服务器数量所确定的;
步骤302,根据所述令牌生成信息,生成令牌;
步骤303,基于所述令牌,控制所述服务器上的数据传输速率。
本公开实施例中,所述服务器是指服务器集群中所包含的任一服务器,所述服务器对应有一个令牌桶,通过所述令牌桶实现对服务器上的数据传输速率的控制。
所述控制中心是指所述服务器所在的服务器集群中,用于对服务器集群的参数进行配置以实现控制的设备。所述控制中心可以一台单独的计算机,也可以是服务器集群内的某台计算机,即由该计算机实现对服务器集群中的服务器的控制。
这里,控制中心在基于服务器集群的总传输速率和所述服务器集群包含的服务器数量,为每个服务器对应的令牌桶确定出令牌生成信息后,将确定出的令牌生成信息发送给对应的服务器,以使对应的所述服务器可以基于令牌生成信息来生成令牌,进而再基于生成的令牌实现对传输速率的控制。
所述令牌生成信息是根据服务器集群的总传输速率和所述服务器集群包含的服务器数量所确定的,包括:根据服务器集群的总传输速率和所述服务器集群包含的服务器数量,确定所述服务器对应的令牌桶的桶速率;基于桶速率,确定令牌生成信息。
所述令牌桶用于控制对应服务器的数据传输,所述桶速率用于供对应所述服务器通过令牌桶中的令牌生成控制数据传输的速率,具体用于对令牌桶中的令牌生成情况进行控制的速率,通过控制令牌的生成来控制服务器上的数据传输的速率。
所述服务集群的总传输速率是指所包含的多个服务器上数据传输速率的总和。所述服务集群的总传输速率可以是预先配置好的。所述服务器集群包含的服务器数量可以根据每个服务器的互联网协议(IP)地址来确定,即由于每个服务器都会对应一个单独的IP地址,那么统计IP地址的数量即可确定服务器数量。所述服务器集群包含的服务器数量还可以根据服务器集群的配置信息来确定的。即,通过查询服务器集群的配置信息,确定出所述服务器集群包含的服务器数量。所述服务器集群的配置信息包括:服务器编号、服务器内存大小和/或服务器IP地址。
所述根据服务器集群的总传输速率和所述服务器集群包含的服务器数量,确定所述服务器对应的令牌桶的桶速率,可包括:根据所述总传输速率和所述服务器集群包含的服务器数量的比值,确定所述服务器对应的令牌桶的桶速率;或者是,基于预先为每个服务器设置的权重,来确定所述服务器对应的令牌桶的桶速率。即每个服务器对应的桶速率就是服务器对应的权重与总传输速率的乘积所得到的值。
所述令牌生成信息是指生成令牌所需要的信息,包括:所述桶速率、令牌的生成速率和/或令牌的生成时间间隔。所述令牌的生成速率是指令牌桶中生成令牌所对应的速率。所述令牌的生成时间间隔是指令牌桶中生成令牌时,相邻时间生成的令牌之间的时间间隔。
所述令牌用于控制服务器上的数据传输,即获取到令牌,则可以对数据进行传输,未获取到令牌,则无法对数据进行传输。
步骤302中需要根据所述令牌生成信息来生成令牌,由于所述令牌生成信息包括:所述桶速率、令牌的生成速率和/或令牌的生成时间间隔。那么,当所述令牌生成信息为令牌的生成速率时,可以根据令牌的生成速率在对应的时间节点上生成令牌。当所述令牌生成信息为令牌的生成时间间隔时,可以根据令牌的生成时间间隔在达到所述时间间隔后,生成令牌。当所述令牌生成信息为桶速率时,可以根据单个令牌对应的数据流量及所述桶速率,确定令牌的生成速率和/或生成时间间隔;再根据所述生成速率和/或所述生成时间间隔,生成所述令牌。所述单个令牌对应的数据流量是指获取的令牌所允许的访问量,或者说,所允许的数据传输量。
在所述服务器对应的令牌桶中生成了令牌后,即可基于所述令牌,控制所述服务器上的数据传输速率。所述基于所述令牌,控制所述服务器上的数据传输速率,包括:在需要进行数据传输时,从令牌桶中去获取令牌,通过获取的令牌实现对数据传输。
由于实际应用中,令牌桶中只有存在令牌时,数据才能被传输,那么,所述服务器上的数据传输速率就是直接受令牌的影响,即:令牌的生成速率越大,则服务器上的数据传输速率就越大;或者,令牌的生成时间间隔越小,则服务器上的数据传输速率就越大;再或者,令牌对应的令牌桶的桶速率越大,则服务器上允许的数据传输速率就越大。
如此,可以基于控制中心发送的令牌生成信息,来生成令牌,进而基于所述令牌,实现对所述服务器上的数据传输速率的控制。那么,服务器侧可以直接基于接收的令牌生成信息,自动就能确定出数据传输速率,而无需人工来对各个服务器对应的令牌桶上的数据去配置。因而,即使服务器集群中服务器数量发生变化,服务器也能直接基于接收的令牌生成信息来确定出数据传输速率,而不需要在额外的计算和配置,节省了人工配置成本,也提高了效率。
在一些实施例中,所述根据所述令牌生成信息,生成令牌,包括:
当所述令牌生成信息为桶速率时,根据单个令牌对应的数据流量及所述桶速率,确定令牌的生成速率和/或生成时间间隔;
根据所述生成速率和/或所述生成时间间隔,生成所述令牌。
如上所述,所述单个令牌对应的数据流量是指获取的令牌所允许的访问量,或者说,所允许的数据传输量。例如,当一个n个字节的数据包到达时,就从令牌桶中消耗掉m个令牌,那么单个令牌对应的数据流量就是n/m个字节。
所述根据单个令牌对应的数据流量及所述桶速率,确定令牌的生成速率和/或生成时间间隔,包括:根据单个令牌对应的数据流量及所述桶速率,确定所述服务器上单位时间内允许传输的数据流量,根据所述服务器上单位时间内允许传输的数据流量,确定令牌的生成速率和/或生成时间间隔。
例如,假设服务器集群包含10个服务器,总传输速率配置为1000bps,即每秒传输1000比特bits的数据。则每个服务器对应的桶速率可以是100bps,如果令牌桶中单个令牌对应的数据流量是1个字节,单位时间为1S,由于1个字节等于8bits,则所述服务器上单位时间内允许传输的数据流量可以是100/8bits,为了实现所述服务器在1S内传输100/8bits的数据流量,那么令牌的生成速率就是1S内生成100/8个的令牌。
这里,以1S的单位时间为例,在确定了令牌的生成速率后,所述令牌的生成速率的倒数,即为令牌的生成时间间隔。例如,1S生成10个令牌,则令牌的生成速率为10个/S,而令牌的生成时间间隔就是1/10S。
如此,通过接收的令牌信息来生成令牌的方式,由于是自动基于接收的信息所实现的生成,不需要人工参数,在实现中方便且快捷,节省了配置的效率。
在一些实施例中,图4是根据一示例性实施例示出的一种数据传输控制方法的流程图三,如图4所示,所述方法还包括:
步骤304,若在所述令牌桶中无空闲的令牌时,检测到有待传输数据,确定最后一个已生成令牌的生成时刻;
步骤305,根据所述最后一个已生成令牌的生成时刻、下一个令牌的生成时刻及检测到所述待传输数据的时刻,确定所述待传输数据的传输等待时间;
步骤306,在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态。
这里,所述步骤304至305是在空闲的令牌位于令牌桶中才执行的步骤。
所述空闲的令牌位于令牌桶中,是指令牌桶中已经开始生成令牌,且令牌桶中存在还未被消耗的空闲的令牌的状态。如果在这之后,如果所述还未被消耗的空闲的令牌被消耗了,即在所述令牌桶中无空闲的令牌时,检测到有待传输数据,那么,由于令牌桶中没有令牌,使得所述待传输数据无法被处理,就需要等待令牌桶中新的令牌生成出来。
所述最后一个已生成令牌的生成时刻是指:在有待传输数据要获取令牌,但令牌桶中无空闲的令牌时,刚被消耗的令牌的生成时刻。所述下一个令牌的生成时刻是指:在有待传输数据要获取令牌,但令牌桶中无空闲的令牌时,需要等待的令牌的生成时刻。
由于令牌是按固定的时间间隔/速率来生成的,那么,在确定出第一个令牌的生成时刻后,其他令牌的生成时刻是可以推算出的。例如,假设8:00:00生成第一个令牌,令牌的生成时间间隔为10S,则8:00:10会生成第二个令牌,以此类推,可以确定出每个令牌的生成时刻。
所述检测到所述待传输数据的时刻可以基于计时器获取。即当有待传输数据需要传输是,就基于计时器记录此时刻。
基于此,当有待传输数据需要传输,且令牌桶中无空闲的令牌时,所述待传输数据的传输等待时间的确定,包括:根据所述最后一个已生成令牌的生成时刻、下一个令牌的生成时刻及检测到所述待传输数据的时刻,可以确定所述待传输数据的传输等待时间。
例如,假设8:00:00生成第一个令牌,令牌的生成时间间隔为10S,则8:00:10会生成第二个令牌,如果检测到所述待传输数据的时刻为8:00:25,且此时令牌桶中是没有令牌的,那么,所述最后一个已生成令牌的生成时刻为8:00:20,下一个令牌的生成时刻8:00:30。那么所述待传输数据的传输等待时间就是5S。
所述检测到有待传输数据,确定最后一个已生成令牌的生成时刻,包括:直接基于监听程序直接监听每一个令牌的生成,确定每一个令牌的生成时刻,进而基于每一个令牌的生成时刻,获取所述最后一个已生成令牌的生成时刻。即直接通过对令牌的生成进行监听,获取最后一个已生成令牌的生成时刻。
所述检测到有待传输数据,确定最后一个已生成令牌的生成时刻,还包括:根据检测到所述待传输数据的时刻、第一个令牌的生成时刻和所述令牌生成信息,确定最后一个已生成令牌的生成时刻。例如,如果8:00:00生成第一个令牌,检测到所述待传输数据的时刻为8:00:25,且此时令牌桶中是没有令牌的,所述令牌生成信息中的令牌的生成时间间隔为10S,则最后一个已生成令牌的生成时刻就是8:00:20。这里的所述第一个令牌的生成时刻可以通过监听程序来获取,即在监听到第一个令牌生成时,就获取第一个令牌的生成时刻。
所述根据所述最后一个已生成令牌的生成时刻、下一个令牌的生成时刻及检测到所述待传输数据的时刻,可以确定所述待传输数据的传输等待时间,包括:
基于所述最后一个已生成令牌的生成时刻和所述令牌生成信息中的令牌的生成时间间隔,确定所述下一个令牌的生成时刻;
将所述下一个令牌的生成时刻与检测到所述待传输数据的时刻相减,确定所述待传输数据的传输等待时间。
即,如果检测到所述待传输数据的时刻为8:00:25,且确定出最后一个已生成令牌的生成时刻就是8:00:20,此时令牌桶中是没有令牌的,令牌的生成时间间隔为10S,则基于最后一个已生成令牌的生成时刻8:00:20和所述令牌生成信息中的令牌的生成时间间隔10S,确定所述下一个令牌的生成时刻为8:00:30。再将8:00:30与检测到所述待传输数据的时刻8:00:25相减,确定所述待传输数据的传输等待时间5S。
这里,所述传输等待时间的确定,还可以是:
传输等待时间=令牌的生成时间间隔-(检测到所述待传输数据的时刻-最后一个已生成令牌的生成时刻)。
即,如果检测到所述待传输数据的时刻为8:00:25,且确定出最后一个已生成令牌的生成时刻就是8:00:20,令牌的生成时间间隔为10S,此时令牌桶中是没有令牌的,那么,检测到所述待传输数据的时刻8:00:25减去最后一个已生成令牌的生成时刻8:00:20得到5S,再将令牌的生成时间间隔10S减去5S,得到所述待传输数据的传输等待时间5S。
这里,下一个令牌的生成时刻可以直接基于第一个令牌的生成时刻和令牌的生成时间间隔,以及检测到所述待传输数据的时刻来确定。还可以是将检测到所述待传输数据的时刻和传输等待时间进行相加确定。
以此类推,当令牌桶中没有令牌,但除了上述的所述待传输数据需要传输外,还需要传输数据时,可以基于上述方式继续计算出另一个待传输数据的传输等待时间。在此不做赘述。
如此,可以在满足所述传输等待时间后,从令牌桶中获取到令牌,进而实现对待传输数据的传输。
在一些实施例中,所述方法还包括:
在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态。
由于没有获取到令牌,无法传输数据,那么此时的待传输数据所对应的处理线程是无法工作的,处于空闲状态,这时可以在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态,以节省服务器的功耗。
需要说明的是,所述待传输数据的处理线程是指所述待传输数据专用的处理线程。如果有的处理线程是同时供其他组件在使用,则不对其进行休眠处理,以避免对其他组件的工作造成影响。
在一些实施例中,所述方法还包括:
步骤307,确定所述传输等待时间的时长是否大于预设阈值。
这里,所述预设阈值可以根据需要设置;即由于控制处理线程进入到休眠状态后,在满足了传输等待时间后,还需要将其唤醒,有2个步骤要执行,如果传输等待时间过短,基于综合考虑,是没有必要控制所述待传输数据的处理线程进入到休眠状态。
那么,所述在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态,包括:
当所述传输等待时间的时长大于所述预设阈值时,在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态。
如此,只有在所述传输等待时间的时长大于所述预设阈值时,才控制所述待传输数据的处理线程进入到休眠状态,可以尽可能在最大限度上实现对服务器功耗的减少。
本公开实施例可以基于控制中心发送的令牌生成信息,来生成令牌,进而基于所述令牌,实现对所述服务器上的数据传输速率的控制。那么,服务器侧可以直接基于接收的令牌生成信息,自动就能确定出数据传输速率,而无需人工来对各个服务器对应的令牌桶上的数据去配置。因而,即使服务器集群中服务器数量发生变化,服务器也能直接基于接收的令牌生成信息来确定出数据传输速率,而不需要在额外的计算和配置,节省了人工配置成本,也提高了效率。并且,在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态,可以尽可能地较少服务器功耗,为服务器的工作效率地提高提供了更对的保障。
为了方便服务器集群形式下的限流处理,本公开实施例还提供一种控制中心,图5是根据一示例性实施例示出的一种控制中心的结构示意图,如图5所示,所述控制中心500,包括:
桶速率确定单元501,用于根据服务器集群的总传输速率和所述服务器集群包含的服务器数量,确定单个令牌桶的桶速率;其中,一个所述令牌桶,用于控制一个所述服务器的数据传输;所述桶速率,用于供对应所述服务器通过令牌桶中的令牌生成控制数据传输的速率;
发送单元502,用于基于所述桶速率,向对应服务器发送令牌生成信息。
在一些实施例中,所述令牌生成信息,包括以下至少之一:
所述桶速率;
令牌的生成速率;
令牌的生成时间间隔。
在一些实施例中,还包括:
数量确定单元,用于根据在应用协调服务上注册的互联网协议(IP)地址的数量,确定所述服务器集群包含的服务器数量。
在一些实施例中,还包括:
获取单元,用于获取预设的所述服务器集群的总传输速率;
桶速率确定单元,具体用于根据所述总传输速率和所述服务器集群包含的服务器数量的比值,确定单个令牌桶的桶速率。
本公开实施例,通过控制中心来基于服务器集群的总传输速率和所述服务器集群包含的服务器数量,为每个服务器确定出用于控制其数据传输的速率的令牌桶的桶速率,在基于桶速率向服务器集群中单个服务器发送令牌生成信息。如此,控制中心通过令牌生成信息的下发,就可以简便实现对服务器集群中每个服务器上数据传输的速率的自动控制。由于是控制中心统一控制整个服务器集群的数据传输的速率,而不是由当个服务器自行独立控制,就可以减少单个独立控制情况下总传输速率超过限制的现象的发生。并且控制中心侧只需要下发令牌生成信息给对应服务器,再由对应服务器基于接收的令牌生成信息自行处理就能实现对每个服务器上数据传输的速率的统一控制,这种实现方式,由于控制中心的处理较少,在实现上也较为简单。除此之外,一旦服务器集群中服务器数量发生变化,也能基于服务器集群包含的服务器数量和总传输速率来为每个服务器自动重新确定和分配数据传输的速率,有利于服务器集群扩展下的限流处理的效率地提升。由于是控制中心直接实现的对各个服务器数据传输的速率的分配,不需要人工手动配置,也节省了人工配置成本。
关于上述实施例中的单元,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
为了方便服务器集群形式下的限流处理,本公开实施例还提供一种服务器,图6是根据一示例性实施例示出的一种服务器的结构示意图,如图6所示,所述服务器600,包括:
接收单元601,用于接收控制中心发送的令牌生成信息;其中,所述令牌生成信息是根据服务器集群的总传输速率和所述服务器集群包含的服务器数量所确定的;
生成单元602,用于根据所述令牌生成信息,生成令牌;
控制单元603,用于基于所述令牌,控制所述服务器上的数据传输速率。
在一些实施例中,所述令牌生成信息,包括以下至少之一:
所述桶速率;
令牌的生成速率;
令牌的生成时间间隔。
在一些实施例中,所述生成单元,包括:
第一确定单元,用于当所述令牌生成信息为桶速率时,根据单个令牌对应的数据流量及所述桶速率,确定令牌的生成速率和/或生成时间间隔;
生成子单元,用于根据所述生成速率和/或所述生成时间间隔,生成所述令牌。
在一些实施例中,所述服务器还包括:
生成时刻确定单元,用于在空闲的令牌位于令牌桶中时,若在所述令牌桶中无空闲的令牌时,检测到有待传输数据,确定最后一个已生成令牌的生成时刻;
传输等待时间确定单元,用于根据所述最后一个已生成令牌的生成时刻、下一个令牌的生成时刻及检测到所述待传输数据的时刻,确定所述待传输数据的传输等待时间;
休眠控制单元,用于在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态。
在一些实施例中,所述服务器还包括:
第二确定单元,用于确定所述传输等待时间的时长是否大于预设阈值;
所述休眠控制单元,具体用于当所述传输等待时间的时长大于所述预设阈值时,在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态。
本公开实施例可以基于控制中心发送的令牌生成信息,来生成令牌,进而基于所述令牌,实现对所述服务器上的数据传输速率的控制。那么,服务器侧可以直接基于接收的令牌生成信息,自动就能确定出数据传输速率,而无需人工来对各个服务器对应的令牌桶上的数据去配置。因而,即使服务器集群中服务器数量发生变化,服务器也能直接基于接收的令牌生成信息来确定出数据传输速率,而不需要在额外的计算和配置,节省了人工配置成本,也提高了效率。并且,在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态,可以尽可能地较少服务器功耗,为服务器的工作效率地提高提供了更对的保障。
关于上述实施例中的单元,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7是根据一示例性实施例示出的一种数据传输控制装置1800的框图。例如,装置1800可以是移动电话、计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备、个人数字助理等。
参照图7,装置1800可以包括以下一个或多个组件:处理组件1802,存储器1804,电力组件1806,多媒体组件1808,音频组件1810,输入/输出(I/O)接口1812,传感器组件1814,以及通信组件1816。
处理组件1802通常控制装置1800的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作相关联的操作。处理组件1802可以包括一个或多个处理器1820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1802还可以包括一个或多个模块,便于处理组件1802和其他组件之间的交互。例如,处理组件1802可以包括多媒体模块,以方便多媒体组件1808和处理组件1802之间的交互。
存储器1804被配置为存储各种类型的数据以支持在装置1800的操作。这些数据的示例包括用于在装置1800上操作的任何应用程序或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器1804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、快闪存储器、磁盘或光盘。
电力组件1806为装置1800各种组件提供电力。电力组件1806可以包括:电源管理***,一个或多个电源,及其他与为装置1800生成、管理和分配电力相关联的组件。
多媒体组件1808包括在所述装置1800和用户之间提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1808包括一个前置摄像头和/或后置摄像头。当装置1800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和/或后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。
音频组件1810被配置为输出和/或输入音频信号。例如,音频组件1810包括一个麦克风(MIC),当装置1800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1804或经由通信组件1816发送。在一些实施例中,音频组件1810还包括一个扬声器,用于输出音频信号。
I/O接口1812为处理组件1802和***接口模块之间提供接口,上述***接口模块可以是键盘、点击轮、按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1814包括一个或多个传感器,用于为装置1800提供各个方面的状态评估。例如,传感器组件1814可以检测到装置1800的打开/关闭状态、组件的相对定位,例如所述组件为装置1800的显示器和小键盘,传感器组件1814还可以检测装置1800或装置1800一个组件的位置改变,用户与装置1800接触的存在或不存在,装置1800方位或加速/减速和装置1800的温度变化。传感器组件1814可以包括接近传感器,被配置为在没有任何的物理接触时检测附近物体的存在。传感器组件1814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1814还可以包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器或温度传感器。
通信组件1816被配置为便于装置1800和其他设备之间有线或无线方式的通信。装置1800可以接入基于通信标准的无线网络,如WiFi、2G或3G,或它们的组合。在一个示例性实施例中,通信组件1816经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术或其他技术来实现。
在示例性实施例中,装置1800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1804,上述指令可由装置1800的处理器1820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由数据传输控制装置的处理器执行时,使得能够执行上述数据传输控制方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (16)
1.一种数据传输控制方法,其特征在于,应用于控制中心,所述方法包括:
根据服务器集群的总传输速率和所述服务器集群包含的服务器数量,确定单个令牌桶的桶速率,包括:根据所述总传输速率和所述服务器集群包含的服务器数量的比值,确定单个令牌桶的桶速率;或者,基于各个服务器的负载值与所述服务器集群的总负载值的比值,为各个所述服务器分配权重;基于所述权重和所述服务器集群包含的服务器数量,确定各个所述服务器在所述服务器集群中所占的比重;将各个所述服务器所占的所述比重与所述总传输速率进行乘法运算,确定单个所述令牌桶的桶速率;其中,一个所述令牌桶,用于控制一个所述服务器的数据传输;所述桶速率,用于供对应所述服务器通过令牌桶中的令牌生成控制数据传输的速率;
基于所述桶速率,向对应服务器发送令牌生成信息。
2.根据权利要求1所述的方法,其特征在于,所述令牌生成信息,包括以下至少之一:
所述桶速率;
令牌的生成速率;
令牌的生成时间间隔。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取预设的所述服务器集群的总传输速率。
4.一种数据传输控制方法,其特征在于,所述方法应用于服务器,包括:
接收控制中心发送的令牌生成信息;其中,所述令牌生成信息是根据桶速率确定的,所述桶速率是根据服务器集群的总传输速率和所述服务器集群包含的服务器数量的比值所确定的;或者,所述桶速率的生成方法包括:基于各个所述服务器的负载值与所述服务器集群的总负载值的比值,为各个服务器分配权重;基于所述权重和所述服务器集群包含的服务器数量,确定各个所述服务器在所述服务器集群中所占的比重;将各个所述服务器所占的所述比重与所述总传输速率进行乘法运算,确定单个令牌桶的所述桶速率;其中,一个所述令牌桶,用于控制一个所述服务器的数据传输;所述桶速率,用于供对应所述服务器通过令牌桶中的令牌生成控制数据传输的速率;
根据所述令牌生成信息,生成令牌;
基于所述令牌,控制所述服务器上的数据传输速率。
5.根据权利要求4所述的方法,其特征在于,所述根据所述令牌生成信息,生成令牌,包括:
当所述令牌生成信息为桶速率时,根据单个令牌对应的数据流量及所述桶速率,确定令牌的生成速率和/或生成时间间隔;
根据所述生成速率和/或所述生成时间间隔,生成所述令牌。
6.根据权利要求4所述的方法,其特征在于,空闲的令牌位于令牌桶中,所述方法还包括:
若在所述令牌桶中无空闲的令牌时,检测到有待传输数据,确定最后一个已生成令牌的生成时刻;
根据所述最后一个已生成令牌的生成时刻、下一个令牌的生成时刻及检测到所述待传输数据的时刻,确定所述待传输数据的传输等待时间;
在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
确定所述传输等待时间的时长是否大于预设阈值;
所述在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态,包括:
当所述传输等待时间的时长大于所述预设阈值时,在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态。
8.一种控制中心,其特征在于,包括:
桶速率确定单元,用于根据服务器集群的总传输速率和所述服务器集群包含的服务器数量,确定单个令牌桶的桶速率,包括:根据所述总传输速率和所述服务器集群包含的服务器数量的比值,确定单个令牌桶的桶速率;或者,基于各个服务器的负载值与所述服务器集群的总负载值的比值,为各个所述服务器分配权重;基于所述权重和所述服务器集群包含的服务器数量,确定各个所述服务器在所述服务器集群中所占的比重;将各个所述服务器所占的所述比重与所述总传输速率进行乘法运算,确定单个所述令牌桶的桶速率;其中,一个所述令牌桶,用于控制一个所述服务器的数据传输;所述桶速率,用于供对应所述服务器通过令牌桶中的令牌生成控制数据传输的速率;
发送单元,用于基于所述桶速率,向对应服务器发送令牌生成信息。
9.根据权利要求8所述的控制中心,其特征在于,所述令牌生成信息,包括以下至少之一:
所述桶速率;
令牌的生成速率;
令牌的生成时间间隔。
10.根据权利要求8所述的控制中心,其特征在于,还包括:
获取单元,用于获取预设的所述服务器集群的总传输速率。
11.一种服务器,其特征在于,包括:
接收单元,用于接收控制中心发送的令牌生成信息;其中,所述令牌生成信息是根据桶速率确定的,所述桶速率是根据服务器集群的总传输速率和所述服务器集群包含的服务器数量的比值所确定的;或者,所述桶速率的生成方法包括:基于各个所述服务器的负载值与所述服务器集群的总负载值的比值,为各个服务器分配权重;基于所述权重和所述服务器集群包含的服务器数量,确定各个所述服务器在所述服务器集群中所占的比重;将各个所述服务器所占的所述比重与所述总传输速率进行乘法运算,确定单个所述令牌桶的所述桶速率;其中,一个所述令牌桶,用于控制一个所述服务器的数据传输;所述桶速率,用于供对应所述服务器通过令牌桶中的令牌生成控制数据传输的速率;
生成单元,用于根据所述令牌生成信息,生成令牌;
控制单元,用于基于所述令牌,控制所述服务器上的数据传输速率。
12.根据权利要求11所述的服务器,其特征在于,所述生成单元,包括:
第一确定单元,用于当所述令牌生成信息为桶速率时,根据单个令牌对应的数据流量及所述桶速率,确定令牌的生成速率和/或生成时间间隔;
生成子单元,用于根据所述生成速率和/或所述生成时间间隔,生成所述令牌。
13.根据权利要求11所述的服务器,其特征在于,所述服务器还包括:
生成时刻确定单元,用于在空闲的令牌位于令牌桶中时,若在所述令牌桶中无空闲的令牌时,检测到有待传输数据,确定最后一个已生成令牌的生成时刻;
传输等待时间确定单元,用于根据所述最后一个已生成令牌的生成时刻、下一个令牌的生成时刻及检测到所述待传输数据的时刻,确定所述待传输数据的传输等待时间;
休眠控制单元,用于在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态。
14.根据权利要求13所述的服务器,其特征在于,所述服务器还包括:
第二确定单元,用于确定所述传输等待时间的时长是否大于预设阈值;
所述休眠控制单元,具体用于当所述传输等待时间的时长大于所述预设阈值时,在所述传输等待时间内,控制所述待传输数据的处理线程进入到休眠状态。
15.一种数据传输控制装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:执行所述存储器中存储的可执行指令时,实现权利要求1至3任一项或权利要求4至7任一项所述的方法。
16.一种非临时性计算机可读存储介质,当所述存储介质中的指令由数据传输控制装置的处理器执行时,使得所述数据传输控制装置能够执行权利要求1至3任一项或权利要求4至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010237322.3A CN111404836B (zh) | 2020-03-30 | 2020-03-30 | 数据传输控制方法、装置、控制中心、服务器及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010237322.3A CN111404836B (zh) | 2020-03-30 | 2020-03-30 | 数据传输控制方法、装置、控制中心、服务器及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111404836A CN111404836A (zh) | 2020-07-10 |
CN111404836B true CN111404836B (zh) | 2023-09-12 |
Family
ID=71429296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010237322.3A Active CN111404836B (zh) | 2020-03-30 | 2020-03-30 | 数据传输控制方法、装置、控制中心、服务器及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111404836B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114095444B (zh) * | 2020-07-15 | 2023-11-10 | 中移物联网有限公司 | 限流方法、装置及电子设备 |
CN112134808B (zh) * | 2020-07-21 | 2024-02-02 | 上海寻梦信息技术有限公司 | 仓配服务控速下发方法、装置、电子设备及存储介质 |
CN112312165A (zh) * | 2020-10-19 | 2021-02-02 | 中移(杭州)信息技术有限公司 | 视频下发方法、装置及计算机可读存储介质 |
CN115080657A (zh) * | 2021-03-10 | 2022-09-20 | ***通信集团山东有限公司 | 一种应用于分布式存储的操作令牌分配方法、***及设备 |
CN113067875B (zh) * | 2021-03-24 | 2023-06-02 | 厦门立林科技有限公司 | 基于微服务网关动态流控的访问方法和装置以及设备 |
CN113422736B (zh) * | 2021-06-16 | 2022-06-14 | 中移(杭州)信息技术有限公司 | 基于令牌桶的请求管理方法、装置、设备及存储介质 |
CN116233010A (zh) * | 2023-03-09 | 2023-06-06 | 北京百度网讯科技有限公司 | 流量控制方法、装置、设备及存储介质 |
CN116455830A (zh) * | 2023-06-16 | 2023-07-18 | 深圳市杉岩数据技术有限公司 | 实现存储网关高可用分布式qos的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026561A (zh) * | 2007-02-09 | 2007-08-29 | 中兴通讯股份有限公司 | 一种令牌桶填充速率配置方法及其装置 |
US8681630B1 (en) * | 2010-09-21 | 2014-03-25 | Google Inc. | Configurable rate limiting using static token buckets, and applications thereof |
CN104734989A (zh) * | 2013-12-23 | 2015-06-24 | 腾讯数码(天津)有限公司 | 基于令牌桶的数据传输流量调度方法及其*** |
CN108494703A (zh) * | 2018-03-08 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 一种访问频率控制方法、装置及存储介质 |
CN110198275A (zh) * | 2018-03-28 | 2019-09-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 |
US10951532B2 (en) * | 2018-07-18 | 2021-03-16 | Huawei Technologies Co., Ltd. | Method and system for cluster rate limiting in a cloud computing system |
-
2020
- 2020-03-30 CN CN202010237322.3A patent/CN111404836B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026561A (zh) * | 2007-02-09 | 2007-08-29 | 中兴通讯股份有限公司 | 一种令牌桶填充速率配置方法及其装置 |
US8681630B1 (en) * | 2010-09-21 | 2014-03-25 | Google Inc. | Configurable rate limiting using static token buckets, and applications thereof |
CN104734989A (zh) * | 2013-12-23 | 2015-06-24 | 腾讯数码(天津)有限公司 | 基于令牌桶的数据传输流量调度方法及其*** |
CN108494703A (zh) * | 2018-03-08 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 一种访问频率控制方法、装置及存储介质 |
CN110198275A (zh) * | 2018-03-28 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种流量控制方法、***、服务器及存储介质 |
Non-Patent Citations (1)
Title |
---|
位荣友 ; 吴龙胜 ; 陈庆宇 ; 赵文琦.一种面向交换机应用的访问控制模块设计.微电子学与计算机.2018,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111404836A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111404836B (zh) | 数据传输控制方法、装置、控制中心、服务器及介质 | |
CN110611829B (zh) | 视频预加载的方法、装置、电子设备及存储介质 | |
KR101706359B1 (ko) | 백그라운드 애플리케이션을 제어하기 위한 방법 및 장치 | |
CN112468833B (zh) | 直播互动信息处理方法、装置、终端、服务器及存储介质 | |
US20200084799A1 (en) | Method and apparatus for controlling network access | |
CN112286683A (zh) | 一种分片下载方法、装置及介质 | |
CN112486658B (zh) | 一种任务调度方法、装置和用于任务调度的装置 | |
CN109076595B (zh) | 随机接入控制方法和随机接入控制装置 | |
CN110913276B (zh) | 数据处理的方法、装置、服务器、终端及存储介质 | |
CN113765998A (zh) | 基于集群***的访问限制方法、装置和服务器 | |
CN110795314B (zh) | 一种检测慢节点的方法、装置及计算机可读存储介质 | |
CN112565527A (zh) | 会话状态的控制方法、装置、电子设备和存储介质 | |
CN112256424A (zh) | 虚拟资源的处理方法、装置、***、电子设备及存储介质 | |
CN110908814A (zh) | 消息处理方法、装置、电子设备及存储介质 | |
CN112256432A (zh) | 服务过载的处理方法、装置、电子设备及存储介质 | |
CN110856196A (zh) | Wlan服务优化方法、终端设备和存储介质 | |
CN115033369A (zh) | 基于任务处理的线程调度方法、装置和设备 | |
CN112130994B (zh) | 资源分配方法、装置、电子设备和存储介质 | |
CN108984294B (zh) | 资源调度方法、装置及存储介质 | |
CN112383639B (zh) | 微服务均衡方法及装置 | |
CN112201236B (zh) | 终端唤醒方法、装置及计算机可读存储介质 | |
CN116915830B (zh) | 请求处理方法、装置 | |
CN110247828B (zh) | 识别码分配方法及装置 | |
CN111625536B (zh) | 一种数据访问方法及装置 | |
CN114253699A (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 |