流量控制方法、装置及设备的制作方法

文档序号:7800672阅读:126来源:国知局
流量控制方法、装置及设备的制作方法
【专利摘要】本发明公开了一种流量控制方法、装置及设备,属于网络技术和存储【技术领域】。所述方法包括:获取第i-1个令牌生成速度和第i-1个总令牌消耗速度;根据第i-1个令牌生成速度、第i-1个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据第i个调整区间生成第i个令牌生成速度;将第i个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点将第i-1个令牌生成速度更新为第i个令牌生成速度,根据第i个令牌生成速度进行流量控制。所述装置包括:第一获取模块、第一生成模块和第一发送模块。本发明解决了令牌生成速度较大的节点处理的请求较多,导致各个节点间的负载不均衡的问题,达到了引导负载在节点间均衡的效果。
【专利说明】流量控制方法、装置及设备
【技术领域】
[0001]本发明涉及网络技术和存储【技术领域】,特别涉及一种流量控制方法、装置及设备。【背景技术】
[0002]在分布式系统中,一个用户可以同时通过不同的节点访问网络资源,不同的用户也可以通过相同的节点访问网络资源,而网络资源对用户发送的请求的处理能力有限,因此,需要对用户的访问流量进行控制。由于用户是通过节点访问网络资源的,因此,可以在节点上为每个接入的用户设置一个限速器,该限速器用于对该用户在该节点的访问流量进行控制。当用户同时接入多个节点时,还需要在节点中为设置全局协调器来协调该用户的各个限速器的工作,以保证用户在所有节点的总流量不会超标。一个全局协调器管理一个用户的所有节点上的限速器。
[0003]在进行流量控制时,限速器为用户设置一个令牌桶,该令牌桶以一定速度生成令牌,节点在获取到令牌后对用户发出的请求进行处理,因此,限速器可以通过控制令牌生成速度来控制对请求的处理速度,达到控制流量的目的。具体地,全局协调器可以获取为用户设置的流控目标和每个节点上该用户的性能参数,根据流控目标和各个性能参数分别计算出每个节点的令牌生成速度,将各个节点的令牌生成速度分别发送给对应的节点,以便各个节点根据接收到的令牌生成速度控制流量。其中,流控目标是用户在接入的所有节点上的最大令牌生成速度之和;性能参数包括节点的令牌生成速度、令牌消耗速度、请求队列的队列深度以及该节点的历史数据等。
[0004]现有技术中至少存在以下缺陷:
[0005]令牌生成速度较大的节点处理的请求通常较多,使得该节点的负载较重,导致各个节点间的负载不均衡。

【发明内容】

[0006]为了解决令牌生成速度较大的节点处理的请求通常较多,使得该节点的负载较重,导致各个节点间的负载不均衡的问题,本发明实施例提供了一种流量控制方法、装置及设备。所述技术方案如下:
[0007]第一方面,本发明实施例提供了一种流量控制方法,所述方法包括:
[0008]获取第1-Ι个令牌生成速度和第i_l个总令牌消耗速度,所述令牌生成速度是为对象所接入的节点设置的令牌的生成速度且所述对象所接入的所有节点在同一时刻的令牌生成速度相同,所述总令牌消耗速度是所述对象所接入的所有节点在处理所述对象发送的请求时所消耗令牌的速度之和,i > 2,并且i为自然数;
[0009]根据所述第1-Ι个令牌生成速度、所述第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据所述第i个调整区间生成第i个令牌生成速度;
[0010]将所述第i个令牌生成速度发送给所述对象所接入的各个节点,以便所述对象所接入的各个节点将所述第1-Ι个令牌生成速度更新为所述第i个令牌生成速度,根据所述第i个令牌生成速度进行流量控制。
[0011]在第一方面的第一种可能的实现方式中,所述根据所述第1-1个令牌生成速度、所述第1-Ι个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据所述第i个调整区间生成第i个令牌生成速度,包括:
[0012]将所述第1-Ι个总令牌消耗速度减去所述流控目标得到第i_l个差值,将所述第1-Ι个差值除以所述流控目标得到第1-ι个比值,比较所述第1-ι个比值与预设的变化阈值;
[0013]若所述第1-Ι个比值的绝对值大于所述变化阈值且所述第i_l个比值为正,则根据所述第i_l个令牌生成速度确定所述第i个调整区间,生成所述第i个令牌生成速度。
[0014]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述比较所述第i_l个比值与预设的变化阈值之后,还包括:
[0015]若所述第i_l个比值的绝对值大于所述变化阈值且所述第i_l个比值为负,则将所述第i个令牌生成速度的数值设置成为所述对象所接入的节点配置的最大令牌生成速度的数值;
[0016]若所述第1-Ι个比值的绝对值小于所述变化阈值,则将所述第i个令牌生成速度的数值设置成所述第1-ι个令牌生成速度的数值。
[0017]结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据所述第i_l个令牌生成速度确定所述第i个调整区间,生成所述第i个令牌生成速度,包括:
[0018]将为所述对象所接入的节点配置的最小令牌生成速度的数值确定为所述第i个调整区间的最小值,将所述第1-Ι个令牌生成速度的数值确定为所述第i个调整区间的最大值;
[0019]将从所述第i个调整区间中任意选择的一个数值设置为所述第i个令牌生成速度的数值。
[0020]结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述将所述第i个令牌生成速度发送给所述对象所接入的各个节点之后,还包括:
[0021]获取所述第i个令牌生成速度和第i个总令牌消耗速度;
[0022]将所述第i个总令牌消耗速度减去所述流控目标得到第i个差值,将所述第i个差值除以所述流控目标得到第i个比值,比较所述第i个比值与所述变化阈值;
[0023]若所述第i个比值的绝对值大于所述变化阈值且所述第i个比值为正,则将所述第i个调整区间的最小值确定为第i+Ι个调整区间的最小值,将所述第i个令牌生成速度的数值确定为所述第i+Ι个调整区间的最大值;若所述第i个比值大于所述变化阈值且所述第i个比值为负,则将所述第i个令牌生成速度的数值确定为第i+Ι个调整区间的最小值,将所述第i个调整区间的最大值确定为所述第i+Ι个调整区间的最大值;
[0024]将从所述第i+Ι个调整区间中任意选择的一个数值设置为第i+Ι个令牌生成速度的数值;
[0025]将所述第i+Ι个令牌生成速度发送给所述对象所接入的各个节点,以便所述对象所接入的各个节点将所述第i个令牌生成速度更新为所述第i+Ι个令牌生成速度,根据所述第i+Ι个令牌数生成速度进行流量控制。[0026]结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述获取第i_l个令牌生成速度和第i_l个总令牌消耗速度之前,还包括:
[0027]根据所述流控目标设置所述对象所接入的节点的最小令牌生成速度和最大令牌生成速度;
[0028]将所述最小令牌生成速度的数值确定为第i_l个调整区间的最小值,将所述最大令牌生成速度的数值确定为所述第i_l个调整区间的最大值;
[0029]将从所述第1-Ι个调整区间中任意选择的一个数值设置为所述第i_l个令牌生成速度的数值;
[0030]将所述第1-Ι个令牌生成速度发送给所述对象所接入的各个节点,以便所述对象所接入的各个节点根据所述第1-ι个令牌生成速度进行流量控制。
[0031]第二方面,本发明实施例提供了一种流量控制装置,所述装置包括:
[0032]第一获取模块,用于获取第i_l个令牌生成速度和第i_l个总令牌消耗速度,所述令牌生成速度是为对象所接入的节点设置的令牌的生成速度且所述对象所接入的所有节点在同一时刻的令牌生成速度相同,所述总令牌消耗速度是所述对象所接入的所有节点在处理所述对象发送的请求时所消耗令牌的速度之和,i > 2,并且i为自然数;
[0033]第一生成模块,用于根据所述第一获取模块获取到的所述第i_l个令牌生成速度、所述第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据所述第i个调整区间生成第i个令牌生成速度;
[0034]第一发送模块,用于将所述第一生成模块生成的所述第i个令牌生成速度发送给所述对象所接入的各个节点,以便所述对象所接入的各个节点将所述第i_l个个令牌生成速度更新为所述第i个令牌生成速度,根据所述第i个令牌生成速度进行流量控制。
[0035]在第二方面的第一种可能的实现方式中,所述第一生成模块,包括:
[0036]数据比较单元,用于将所述第i_l个总令牌消耗速度减去所述流控目标得到第1-Ι个差值,将所述第i_l个差值除以所述流控目标得到第i_l个比值,比较所述第i_l个比值与预设的变化阈值;
[0037]第一生成单元,用于在所述数据比较单元比较得出所述第i_l个比值的绝对值大于所述变化阈值且所述第i_l个比值为正时,根据所述第i_l个令牌生成速度确定所述第i个调整区间,生成所述第i个令牌生成速度。
[0038]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第一生成模块,还包括:
[0039]第二生成单元,用于在所述数据比较单元比较得出所述第i_l个比值的绝对值大于所述变化阈值且所述第i_l个比值为负时,将所述第i个令牌生成速度的数值设置成为所述对象所接入的节点配置的最大令牌生成速度的数值;
[0040]第三生成单元,用于在所述数据比较单元比较得出所述第i_l个比值的绝对值小于所述变化阈值时,将所述第i个令牌生成速度的数值设置成所述第1-ι个令牌生成速度的数值。
[0041]结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述第一生成单元,具体用于将为所述对象所接入的节点配置的最小令牌生成速度的数值确定为所述第i个调整区间的最小值,将所述第i_l个令牌生成速度的数值确定为所述第i个调整区间的最大值;将从所述第i个调整区间中任意选择的一个数值设置为所述第i个令牌生成速度的数值。
[0042]结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述装置,还包括:
[0043]第二获取模块,用于所述第一发送模块将所述第i个令牌生成速度发送给所述对象所接入的各个节点之后,获取所述第i个令牌生成速度和第i个总令牌消耗速度;
[0044]数据比较模块,用于将所述第二获取模块获取到的所述第i个总令牌消耗速度减去所述流控目标得到第i个差值,将所述第i个差值除以所述流控目标得到第i个比值,比较所述第i个比值与所述变化阈值;
[0045]区间确定模块,用于在所述数据比较模块比较得出所述第i个比值的绝对值大于所述变化阈值且所述第i个比值为正时,将所述第i个调整区间的最小值确定为第i+Ι个调整区间的最小值,将所述第i个令牌生成速度的数值确定为所述第i+Ι个调整区间的最大值;在所述数据比较模块比较得出所述第i个比值的绝对值大于所述变化阈值且所述第i个比值为负时,将所述第i个令牌生成速度的数值确定为第i+Ι个调整区间的最小值,将所述第i个调整区间的最大值确定为所述第i+Ι个调整区间的最大值;
[0046]第二生成模块,用于将从所述区间确定模块确定的所述第i+Ι个调整区间中任意选择的一个数值设置为所述第i+Ι个令牌生成速度的数值;
[0047]第二发送模块,用于将所述第二生成模块生成的所述第i + Ι个令牌生成速度发送给所述对象所接入的各个节点,以便所述对象所接入的各个节点将所述第i个令牌生成速度更新为所述第i+Ι个令牌生成速度,根据所述第i+Ι个令牌数生成速度进行流量控制。
[0048]结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式或第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述装置,还包括:
[0049]速度设置模块,用于所述第一获取模块获取第i_l个令牌生成速度和第i_l个总令牌消耗速度之前,根据所述流控目标设置所述对象所接入的节点的最小令牌生成速度和最大令牌生成速度;
[0050]区间设置模块,用于将所述速度设置模块设置的所述最小令牌生成速度的数值确定为第i_l个调整区间的最小值,将所述最大令牌生成速度的数值确定为所述第i_l个调整区间的最大值;
[0051]第三生成模块,用于将从所述第i_l个调整区间中任意选择的一个数值设置为所述第i_l个令牌生成速度的数值;
[0052]第三发送模块,用于将所述第三生成模块生成的所述第i_l个令牌生成速度发送给所述对象所接入的各个节点,以便所述对象所接入的各个节点根据所述第i_l个令牌生成速度进行流量控制。
[0053]第三方面,本发明实施例提供了一种全局协调器,所述全局协调器包括如第二方面所述的流量控制装置。
[0054]通过获取第1-Ι个令牌生成速度和第i_l个总令牌消耗速度;根据第i_l个令牌生成速度、第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据地i个调整区间生成第i个令牌生成速度;将第i个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点将第i_l个令牌生成速度更新为第i个令牌生成速度,根据第i个令牌生成速度进行流量控制,由于发送给对象所接入的各个节点的第i个令牌生成速度相同,因此,对象所接入的各个节点处理的请求数相同,解决了令牌生成速度较大的节点处理的请求通常较多,使得该节点的负载较重,导致各个节点间的负载不均衡的问题,达到了弓I导负载在节点间均衡的效果。
【专利附图】

【附图说明】
[0055]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0056]图1是本发明一个实施例提供的流量控制方法的方法流程图;
[0057]图2是本发明另一实施例提供的流量控制方法的方法流程图;
[0058]图3是本发明一个实施例提供的流量控制装置的结构框架图;
[0059]图4是本发明再一实施例提供的流量控制装置的结构框架图;
[0060]图5是本发明一个实施例提供的流量控制装置的结构框架图;
[0061]图6是本发明再一实施例提供的流量控制装置的结构框架图。
【具体实施方式】
[0062]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0063]请参考图1,其示出了本发明一个实施例提供的流量控制方法的方法流程图,该流量控制装置可以应用于全局协调器中。该流量控制方法,包括:
[0064]步骤101,获取第1-Ι个令牌生成速度和第i_l个总令牌消耗速度,该令牌生成速度是为对象所接入的节点设置的令牌的生成速度且该对象所接入的所有节点在同一时刻的令牌生成速度相同,该总令牌消耗速度是对象所接入的所有节点在处理对象发送的请求时所消耗令牌的速度之和,i > 2,并且i为自然数;
[0065]本实施例中,对象是指可以承载流控的主体,可以是用户、应用、单个LUN(LogicalUnit Number。逻辑单元号),一组LUN、目录和文件等,本实施例不对对象进行限定。
[0066]由于对象所接入的节点中包括一个与该对象对应的限速器,该限速器会记录某一段时间内节点处理该对象发送的请求而产生的令牌生成速度和令牌消耗速度,因此,全局协调器可以收集第i_l个时间段内每一个节点记录的令牌生成速度和令牌消耗速度,并根据收集到的令牌生成速度和令牌消耗速度确定第i_l个令牌生成速度和第i_l个总令牌消耗速度。其中,令牌生成速度是指为对象所接入的节点设置的令牌桶生成令牌的速度,令牌消耗速度是指对象所接入的节点中的令牌桶处理对象发送的请求所消耗令牌的速度。
[0067]由于本实施例中同一对象所接入的每个节点的令牌生成速度相同,因此,全局协调器可以获取对象所接入的各个节点在第i_l个时间段内的令牌生成速度,并从中任意选择一个令牌生成速度确定为第1-Ι个令牌生成速度;或,全局协调器可以仅收集某一个节点在第1-Ι个时间段内的令牌生成速度,并将该令牌生成速度确定为第1-Ι个令牌生成速度。另外,全局协调器还将对象所接入的所有节点在第i_l个时间段内的令牌消耗速度相力口,将相加之后得到的令牌消耗速度之和确定为第i_l个总令牌消耗速度。
[0068]步骤102,根据第1-Ι个令牌生成速度、第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据第i个调整区间生成第i个令牌生成速度;
[0069]其中,流控目标用于指示对象所接入的所有节点的最大令牌生成速度之和。第i个调整区间是指用于生成第i个令牌生成速度的区间。
[0070]步骤103,将第i个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点将第i_l个令牌生成速度更新为第i个令牌生成速度,根据第i个令牌生成速度进行流量控制。
[0071]全局协调器将第i个令牌生成速度发送给对象所接入的各个节点,对象所接入的各个节点中的限速器将令牌桶的令牌生成速度由第1-ι个令牌生成速度设置为第i个令牌生成速度,根据该第i个令牌生成速度生成令牌,并根据生成的令牌对对象发送的请求进行处理,从而实现通过第i个令牌生成速度对对象的流量进行控制。
[0072]综上所述,本发明实施例提供的流量控制方法,通过获取第i_l个令牌生成速度和第1-Ι个总令牌消耗速度;根据第i_l个令牌生成速度、第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据地i个调整区间生成第i个令牌生成速度;将第i个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点将第i_l个令牌生成速度更新为第i个令牌生成速度,根据第i个令牌生成速度进行流量控制,由于发送给对象所接入的各个节点的第i个令牌生成速度相同,因此,对象所接入的各个节点处理的请求数相同,解决了令牌生成速度较大的节点处理的请求通常较多,使得该节点的负载较重,导致各个节点间的负载不均衡的问题,达到了弓I导负载在节点间均衡的效果。
[0073]请参考图2,其示出了本发明另一实施例提供的流量控制方法的方法流程图,该流量控制装置可以应用于全局协调器中。该流量控制方法,包括:
[0074]步骤201,根据流控目标设置对象所接入的节点的最小令牌生成速度和最大令牌生成速度;将最小令牌生成速度的数值确定为第i_l个调整区间的最小值,将最大令牌生成速度的数值确定为第i_l个调整区间的最大值;将从第i_l个调整区间中任意选择的一个数值设置为第i_l个令牌生成速度的数值;将第i_l个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点根据第i_l个令牌生成速度进行流量控制;
[0075]当一个令牌表示一个请求时,节点需要从令牌桶中获取一个令牌对该请求进行处理,此时的令牌生成速度等于IOPS (Input/Output Per Second,每秒请求数目);当一个令牌表示预定字节时,节点需要从令牌桶中获取“请求字节数/预定字节数”个令牌对该请求进行处理,此时的令牌生成速度等于MBPS (Mega Bytes Per Second,每秒请求字节数目)/预定字节数。通常,预定字节数是512字节,以保证一个令牌允许一个最小字节数的请求通过。
[0076]由于网络资源对请求的处理能力有限,因此,为了避免某一个对象的突发请求过多而占用大量网络资源,造成其他对象无法使用该网络资源的问题,可以设置流控目标来限制对象的最大突发请求数或最大突发请求字节数,并将该最大突发请求数或最大突发请求字节数设置为节点的最大令牌生成速度。其中,对象是指可以承载流控的主体,可以是用户、应用、单个LUN,一组LUN、目录和文件等,本实施例不对对象进行限定。流控目标用于指示对象所接入的所有节点的最大令牌生成速度之和。
[0077]比如,对象的流控目标为10010PS,则可以设置每一个节点的最大令牌生成速度为10010PS/秒。在计算节点的最小令牌生成速度时,一种计算方式是最小令牌生成速度的数值等于流控目标的数值除以节点数。比如,对象所接入的节点的个数为5,对象的流控目标为10010PS,则最小令牌生成速度=100/5=2010PS/秒。当然,还可以将最小令牌生成速度设置为O等其他数值,本实施例不作限定。
[0078]由于全局协调器是第一次生成第1-Ι个令牌生成速度且第i_l个令牌生成速度的数值需要大于最小令牌生成速度的数值且小于最大令牌生成速度的数值,因此,全局协调器可以将最小令牌生成速度的数值确定为第i_l个调整区间的最小值,将最大令牌生成速度的数值确定为第i_l个调整区间的最大值,并将从第i_l个调整区间中任意选择的一个数值设置为第i_l个令牌生成速度的数值。其中,本实施例中的第i_l个调整区间是指用于生成第1-Ι个令牌生成速度的区间。比如,第i_l个调整区间是(20,100),则全局协调器设置的第i_l个令牌生成速度的数值可以是21、35、98等。
[0079]全局协调器在第1-Ι个调整区间中选择数值时,可以随机地在第i_l个调整区间中选择一个数值,也可以通过对第i_l个调整区间执行预定算法来计算得到一个数值,还可以执行预定算法得到属于第i_l个调整区间的一个数值,本实施例不限定对第i_l个调整区间中数值的选择方式。下文中涉及的对调整区间中数值的选择方式可以与本步骤中的选择方式相同,也可以不 同,本实施例不再作赘述。
[0080]进一步地,全局协调器将生成的第i_l个令牌生成速度发送给对象所接入的各个节点,对象所接入的各个节点中的限速器将令牌桶的令牌生成速度设置为第1-ι个令牌生成速度,根据该第1-ι个令牌生成速度生成令牌,根据生成的令牌对对象发送的请求进行处理。
[0081]步骤202,获取第1-Ι个令牌生成速度和第i_l个总令牌消耗速度,该令牌生成速度是为对象所接入的节点设置的令牌的生成速度且对象所接入的所有节点在同一时刻的令牌生成速度相同,该总令牌消耗速度是对象所接入的所有节点在处理对象发送的请求时所消耗令牌的速度之和,i ^ 2,并且i为自然数;
[0082]由于对象所接入的节点中包括一个与该对象对应的限速器,该限速器会记录某一段时间内节点处理该对象发送的请求而产生的令牌生成速度和令牌消耗速度,因此,全局协调器可以收集第i_l个时间段内每一个节点记录的令牌生成速度和令牌消耗速度,并根据收集到的令牌生成速度和令牌消耗速度确定第i_l个令牌生成速度和第i_l个总令牌消耗速度。其中,令牌生成速度是指为对象所接入的节点设置的令牌桶生成令牌的速度,令牌消耗速度是指对象所接入的节点中的令牌桶处理对象发送的请求所消耗令牌的速度。
[0083]由于本实施例中同一对象所接入的每个节点的令牌生成速度相同,因此,全局协调器可以获取对象所接入的各个节点在第i_l个时间段内的令牌生成速度,并从中任意选择一个令牌生成速度确定为第1-Ι个令牌生成速度;或,全局协调器可以仅收集某一个节点在第i_l个时间段内的令牌生成速度,并将该令牌生成速度确定为第i_l个令牌生成速度。另外,全局协调器还将对象所接入的所有节点在第i_l个时间段内的令牌消耗速度相力口,将相加之后得到的令牌消耗速度之和确定为第i_l个总令牌消耗速度。
[0084]步骤203,根据第1-Ι个令牌生成速度、第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据第i个调整区间生成第i个令牌生成速度;
[0085]具体地,根据第i_l个令牌生成速度、第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据第i个调整区间生成第i个令牌生成速度,包括:
[0086]将第1-Ι个总令牌消耗速度减去流控目标得到第i_l个差值,将第i_l个差值除以流控目标得到第1-Ι个比值,比较第1-Ι个比值与预设的变化阈值;
[0087]若第1-Ι个比值的绝对值大于变化阈值且第i_l个比值为正,则根据第i_l个令牌生成速度确定第i个调整区间,生成第i个令牌生成速度。
[0088]本实施例中,全局协调器的调整目标是将总令牌消耗速度的数值调整到近似于流控目标的数值,这样既可以最大程度处理对象发送的请求,以提高系统吞吐量,也可以避免生成多余的令牌造成的资源浪费。而总令牌消耗速度是实时变化的,因此,全局协调器可以多次对总令牌消耗速度进行统计,得出总令牌消耗速度的平均变化范围,根据总令牌消耗速度的平均变化范围生成变化阈值。
[0089]因此,全局协调器可以计算第i_l个总令牌消耗速度和流控目标之差,得到第i_l个差值;再计算第1-ι个差值相对于流控目标的比值,得到第1-ι个比值;并将该第1-ι个比值与变化阈值进行比较。具体地,在计算第1-ι个比值时,假设流控目标是10010PS,若第1-1个总令牌消耗速度是11010PS,则第1-ι个比值=(110-100)/100=10%。
[0090]若第1-ι个比值的绝对值大于变化阈值,则可以认为第1-ι个总令牌消耗速度与流控目标相差较大,此时需要计算第i个令牌生成速度。进一步地,当第1-Ι个比值的绝对值大于变化阈值时,还需要确定第1-ι个比值是否为正数。若第1-ι个比值为正数,则第1-Ι个总令牌消耗速度的数值大于流控目标的数值,需要设置第i个令牌生成速度小于第1-1个令牌生成速度,使得第i个总令牌消耗速度小于第1-Ι个总令牌消耗速度。
[0091]本实施例中,全局协调器可以通过减小第i个调整区间的取值范围来使第i个令牌生成速度小于第1-Ι个令牌生成速度。其中,根据第1-Ι个令牌生成速度确定第i个调整区间,生成第i个令牌生成速度,包括:
[0092]I)将为对象所接入的节点配置的最小令牌生成速度的数值确定为第i个调整区间的最小值,将第i_l个令牌生成速度的数值确定为第i个调整区间的最大值;
[0093]2)将从第i个调整区间中任意选择的一个数值设置为第i个令牌生成速度的数值。
[0094]由于第i个令牌生成速度小于第i_l个令牌生成速度,因此,全局协调器可以将第1-Ι个令牌生成速度的数值设置为第i个调整区间的最大值;另外,第i个令牌生成速度的数值需要大于等于最小令牌生成速度的数值,因此,全局协调器可以将最小令牌生成速度的数值设置为第i个调整区间的最小值,确定第i个调整区间,全局协调器再将从第i个调整区间中任意选择的一个数值设置为第i个令牌生成速度的数值。
[0095]本实施例中,比较第i_l个比值与预设的变化阈值之后,还包括:
[0096]I)若第1-Ι个比值的绝对值大于变化阈值且第i_l个比值为负,则将第i个令牌生成速度的数值设置成为对象所接入的节点配置的最大令牌生成速度的数值;
[0097]2)若第1-Ι个比值的绝对值小于变化阈值,则将第i个令牌生成速度的数值设置成第i_l个令牌生成速度的数值。
[0098]第一,若第1-Ι个比值的绝对值大于变化阈值且第i_l个比值为负数,则第i_l个总令牌消耗速度的数值小于流控目标的数值,此时对象发送的请求数较少,不需要对对象的流量进行控制,可以将第i个令牌生成速度的数值设置成为对象所接入的节点的最大令牌生成速度的数值。
[0099]第二,若第1-Ι个比值的绝对值小于变化阈值,则可以认为第i_l个总令牌消耗速度的数值近似于流控目标的数值,此时全局协调器将第i个令牌生成速度的数值设置为第1-Ι个令牌生成速度的数值,结束流程。
[0100]步骤204,将第i个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点将第i_l个令牌生成速度更新为第i个令牌生成速度,根据第i个令牌生成速度进行流量控制。
[0101]全局协调器将第i个令牌生成速度发送给对象所接入的各个节点,对象所接入的各个节点中的限速器将令牌桶的令牌生成速度由第1-ι个令牌生成速度设置为第i个令牌生成速度,根据该第i个令牌生成速度生成令牌,并根据生成的令牌对对象发送的请求进行处理,从而实现通过第i个令牌生成速度对对象的流量进行控制。
[0102]需要补充说明的是,对象所接入的节点在根据第i个令牌生成速度对对象发送的请求进行处理时,第i个总令牌消耗速度的数值可能还是与流控目标的数值相差较大,因此,全局协调器还可以生成第i+ι个令牌生成速度,使得第i+ι个总令牌消耗速度的数值能够比第i个总令牌消耗速度更接近于流控目标的数值,则将第i个令牌生成速度发送给对象所接入的各个节点之后,还包括:
[0103]I)获取第i个令牌生成速度和第i个总令牌消耗速度;
[0104]2)将第i个总令牌消耗速度减去流控目标得到第i个差值,将第i个差值除以流控目标得到第i个比值,比较第i个比值与变化阈值;
[0105]3)若第i个比值的绝对值大于变化阈值且第i个比值为正,则将第i个调整区间的最小值确定为第i+Ι个调整区间的最小值,将第i个令牌生成速度的数值确定为第i+1个调整区间的最大值;若第i个比值大于变化阈值且第i个比值为负,则将第i个令牌生成速度的数值确定为第i+Ι个调整区间的最小值,将第i个调整区间的最大值确定为第i+1个调整区间的最大值;
[0106]4)将从第i+Ι个调整区间中任意选择的一个数值设置为第i+Ι个令牌生成速度的数值;
[0107]5)将第i+Ι个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点将第i个令牌生成速度更新为第i+Ι个令牌生成速度,根据第i+Ι个令牌数生成速度进行流量控制。
[0108]对象所接入的节点根据第i个令牌生成速度进行流量控制之后,全局协调器在预定时间间隔后获取在第i个时间段内记录的第i个令牌生成速度和第i个总令牌消耗速度,根据第i个令牌生成速度、第i个总令牌消耗速度和流控目标确定第i+Ι个调整区间,根据第i+Ι个调整区间生成第i+Ι个令牌生成速度,并将第i+Ι个令牌生成速度发送给对象所接入的各个节点,对象所接入的各个节点根据第i+Ι个令牌生成速度进行流量控制。
[0109]在确定第i+Ι个调整区间时,全局协调器需要将计算得到的第i个比值与变化阈值进行比较,若第i个比值的绝对值大于变化阈值且第i个比值为正,则确定第i个总令牌消耗速度大于流控目标,此时可以设置第i+Ι个令牌生成速度小于第i个令牌生成速度;若第i个比值的绝对值大于变化阈值且第i个比值为负,则确定第i个总令牌消耗速度小于流控目标,此时可以设置第i+Ι个令牌生成速度大于第i个令牌生成速度。
[0110]在设置第i+Ι个令牌生成速度小于第i个令牌生成速度时,由于第i个令牌生成速度的数值大于第i个调整区间的最小值且小于第i个调整区间的最大值,此时全局协调器可以将第i个调整区间的最小值确定为第i+Ι个调整区间的最小值,将第i个令牌生成速度确定为第i+Ι个调整区间的最大值,得到第i+Ι个调整区间,将从第i个调整区间中任意选择的一个数值设置为第i+Ι个令牌生成速度的数值。比如,第i个令牌生成速度为7610PS,第i个调整区间为(20,100),则全局协调器确定的第i+Ι个调整区间是(20,76)。
[0111]在设置第i+Ι个令牌生成速度大于第i个令牌生成速度时,由于第i个令牌生成速度的数值大于第i个调整区间的最小值且小于第i个调整区间的最大值,此时全局协调器可以将第i个令牌生成速度确定为第i+Ι个调整区间的最小值,将第i个调整区间的最大值确定为第i+Ι个调整区间的最大值,得到第i+Ι个调整区间,将从第i个调整区间中任意选择的一个数值设置为第i+Ι个令牌生成速度的数值。比如,第i个令牌生成速度为5010PS,第i个调整区间为(20,100),则全局协调器确定的第i+Ι个调整区间是(50,100)。
[0112]本实施例中,第i+Ι个总令牌消耗速度可能还是与流控目标相差较大,因此,全局协调器还可以基于第i+ι个令牌生成速度多次生成令牌生成速度,使得与令牌生成速度对应的总令牌消耗速度的数值能够近似于流控目标的数值。具体地,全局协调器每隔预定时间将i更新为i+ι,再次执行上述获取第i个令牌生成速度和第i个第1-Ι个总令牌消耗速度的步骤,直至第i个比值的绝对值小于变化阈值时,将第i个令牌生成速度的数值设置为第i_l个令牌生成速度的数值,结束循环。
[0113]需要补充说明的是,若对象发送的请求数较少,则全局协调器还可以再次对对象发送的请求数进行验证,以进一步确定是否需要对对象的流量进行控制,则将第i个令牌生成速度发送给对象所接入的各个节点之后,还包括:
[0114]I)获取第i个令牌生成速度和第i个总令牌消耗速度;
[0115]2)将第i个总令牌消耗速度减去流控目标得到第i个差值,将第i个差值除以流控目标得到第i个比值,比较第i个比值与变化阈值;
[0116]3)若第i个令牌生成速度的数值等于最大令牌生成速度的数值且第i个比值的绝对值大于变化阈值且第i个比值为负,则将第i个令牌生成速度的数值仍然设置为最大令牌生成速度的数值。
[0117]对象所接入的节点根据第i个令牌生成速度进行流量控制之后,全局协调器在预定时间段后获取在第i个时间段内记录的第i个令牌生成速度和第i个总令牌消耗速度,根据第i个总令牌消耗速度和流控目标计算第i个比值。若第i个令牌生成速度的数值等于最大令牌生成速度的数值且第i个比值的绝对值大于变化阈值且第i个比值为负,则确定验证结果是不需要对对象的流量进行控制,此时仍然将第i+Ι个令牌生成速度的数值设置为最大令牌生成速度的数值,结束流程。
[0118]本实施例中,全局协调器可以通过二分法、等比法等算法在调整区间中生成令牌生成速度,为了便于理解,本实施例以二分法为例对令牌生成速度的计算过程进行说明。假设对象接入了 5个节点,流控目标为10010PS,变化阈值为10%,则具体流程如下:
[0119]第一,假设负载操作的对象在每个节点上的令牌消耗速度固定为12010PS,由于12010PS大于10010PS,因此,后续对对象进行流量控制过程中的令牌消耗速度始终等于令牌生成速度;
[0120]1、根据流控目标设置对象所接入的节点的最小令牌生成速度和最大令牌生成速度,假设最小令牌速度是0,最大令牌生成速度是10010PS ;
[0121]2、根据最小令牌生成速度的数值和最大令牌生成速度的数值确定第I个调整区间为(0,100),第I个令牌生成速度=(0+100)/2=5010PS,将5010PS发送给对象所接入的各个节点,对象所接入的各个节点将令牌桶的第I个令牌生成速度设置为5010PS ;
[0122]3、获取第I个总令牌消耗速度为50.5=25010PS,第I个比值=(250-100)/100=150%,由于第I个比值150%大于变化阈值10%且第I个比值为正,将最小令牌生成速度O确定为第2个调整区间的最小值,将第I个令牌生成速度50确定为第2个调整区间的最大值,得到第2个调整区间(0,50),第2个令牌生成速度=(0+50)/2=2510PS,将2510PS发送给对象所接入的各个节点,对象所接入的各个节点将令牌桶的第2个令牌生成速度设置为 2510PS ;
[0123]4、获取第2个总令牌消耗速度为25*5=12510PS,第2个比值=(125-100)/100=12.5%,由于第2个比值12.5%大于变化阈值10%且第2个比值为正,将最小令牌生成速度O确定为第3个调整区间的最小值,将第2个令牌生成速度25确定为第3个调整区间的最大值,得到第3个调整区间(0,25),第3个令牌生成速度=(0+25)/2=12.510PS,将
12.51OPS发送给对象所接入的各个节点,对象所接入的各个节点将令牌桶的第3个令牌生成速度设置为12.510PS ;
[0124]5、获取第3个总令牌消耗速度为12.5.5=62.510PS,第3个比值=(62.5-100)/100=-37.5%,由于第3个比值-37.5%的绝对值大于变化阈值10%且第3个比值为负,将第3个令牌生成速度12.5确定为第4个调整区间的最小值,将第3个调整区间的最大值25设置为第4个调整区间的最大值,得到第4个调整区间(12.5,25),第4个令牌生成速度=(12.5+25) /2=18.7510PS,将18.7510PS发送给对象所接入的各个节点,对象所接入的各个节点将令牌桶的第4个令牌生成速度设置为18.7510PS ;
[0125]6、获取第4个总令牌消耗速度为18.75 *5=93.7510PS,第4个比值=(93.75-100)/100=-6.25%,由于第4个比值-6.25%的绝对值小于变化阈值10%,结束流程。
[0126]第二,假设负载操作的对象在每个节点上的令牌消耗速度固定为1210PS ;
[0127]1、根据流控目标设置对象所接入的节点的最小令牌生成速度和最大令牌生成速度,假设最小令牌速度是0,最大令牌生成速度是10010PS ;
[0128]2、根据最小令牌生成速度的数值和最大令牌生成速度的数值确定第I个的调整区间为(0,100),第I个令牌生成速度=(0+100)/2=5010PS,将5010PS发送给对象所接入的各个节点,对象所接入的各个节点将令牌桶的第I个令牌生成速度设置为5010PS ;
[0129]3、获取第I个总令牌消耗速度为12.5=60Ι0Ρ5,第I个比值=(60-100)/100=-40%,由于第I个比值-40%的绝对值大于变化阈值10%且第I个比值为负,将第2个令牌生成速度的数值设置为最大令牌生成速度的数值,即第2个令牌生成速度=10010PS,将10010PS发送给对象所接入的各个节点,对象所接入的各个节点将令牌桶的第2个令牌生成速度设置为 10010PS ;
[0130]4、获取第2个总令牌消耗速度为12.5=60Ι0Ρ5、第2个比值=(60-100)/100=-40%,由于第2个令牌生成速度为10010PS且第2个比值-40%的绝对值大于变化阈值10%且第2个比值为负,结束流程。
[0131]综上所述,本发明实施例提供的流量控制方法,通过获取第i_l个令牌生成速度和第1-Ι个总令牌消耗速度;根据第i_l个令牌生成速度、第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据地i个调整区间生成第i个令牌生成速度;将第i个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点将第i_l个令牌生成速度更新为第i个令牌生成速度,根据第i个令牌生成速度进行流量控制,由于发送给对象所接入的各个节点的第i个令牌生成速度相同,因此,对象所接入的各个节点处理的请求数相同,解决了令牌生成速度较大的节点处理的请求通常较多,使得该节点的负载较重,导致各个节点间的负载不均衡的问题,达到了弓I导负载在节点间均衡的效果。
[0132]另外,通过将第i个调整区间的最小值确定为第i + Ι个调整区间的最小值,将第i个令牌生成速度的数值确定为第i+Ι个调整区间的最大值;或,将第i个令牌生成速度的数值确定为第i+Ι个调整区间的最小值,将第i个调整区间的最大值确定为第i+Ι个调整区间的最大值,将从第i+Ι个调整区间中任意选择的一个数值设置为第i+Ι个令牌生成速度的数值,可以根据逐步缩小的第i个调整区间使第i个令牌生成速度近似于第i_l个总令牌消耗速度,提高了流量控制的控制效率。
[0133]请参考图3,其示出了本发明一个实施例提供的流量控制装置的结构框架图,该流量控制装置可以应用于全局协调器中。该流量控制装置,包括:
[0134]第一获取模块301,用于获取第1-Ι个令牌生成速度和第i_l个总令牌消耗速度,令牌生成速度是为对象所接入的节点设置的令牌的生成速度且对象所接入的所有节点在同一时刻的令牌生成速度相同,总令牌消耗速度是对象所接入的所有节点在处理对象发送的请求时所消耗令牌的速度之和,i > 2,并且i为自然数;
[0135]第一生成模块302,用于根据第一获取模块301获取到的第i_l个令牌生成速度、第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据第i个调整区间生成第i个令牌生成速度;
[0136]第一发送模块303,用于将第一生成模块302生成的第i个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点将第i_l个个令牌生成速度更新为第i个令牌生成速度,根据第i个令牌生成速度进行流量控制。
[0137]综上所述,本发明实施例提供的流量控制装置,通过获取第i_l个令牌生成速度和第1-Ι个总令牌消耗速度;根据第i_l个令牌生成速度、第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据地i个调整区间生成第i个令牌生成速度;将第i个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点将第i_l个令牌生成速度更新为第i个令牌生成速度,根据第i个令牌生成速度进行流量控制,由于发送给对象所接入的各个节点的第i个令牌生成速度相同,因此,对象所接入的各个节点处理的请求数相同,解决了令牌生成速度较大的节点处理的请求通常较多,使得该节点的负载较重,导致各个节点间的负载不均衡的问题,达到了弓I导负载在节点间均衡的效果。
[0138]请参考图4,其示出了本发明再一实施例提供的流量控制装置的结构框架图,该流量控制装置可以应用于全局协调器中。该流量控制装置,包括:第一获取模块301、第一生成模块302和第一发送模块303。
[0139]第一获取模块301,用于获取第1-Ι个令牌生成速度和第i_l个总令牌消耗速度,令牌生成速度是为对象所接入的节点设置的令牌的生成速度且对象所接入的所有节点在同一时刻的令牌生成速度相同,总令牌消耗速度是对象所接入的所有节点在处理对象发送的请求时所消耗令牌的速度之和,i > 2,并且i为自然数;
[0140]第一生成模块302,用于根据第一获取模块301获取到的第i_l个令牌生成速度、第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据第i个调整区间生成第i个令牌生成速度;
[0141]第一发送模块303,用于将第一生成模块302生成的第i个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点将第i_l个个令牌生成速度更新为第i个令牌生成速度,根据第i个令牌生成速度进行流量控制。
[0142]可选的,第一生成模块302,包括:
[0143]数据比较单元3021,用于将第1-Ι个总令牌消耗速度减去流控目标得到第i_l个差值,将第1-ι个个差值除以流控目标得到第1-ι个比值,比较第1-ι个比值与预设的变化阈值;
[0144]第一生成单元3022,用于在数据比较单元3021比较得出第1-Ι个比值的绝对值大于变化阈值且第i_l个比值为正时,根据第i_l个令牌生成速度确定第i个调整区间,生成第i个令牌生成速度。
[0145]可选的,第一生成模块302,还包括:
[0146]第二生成单元3023,用于在数据比较单元3021比较得出第1-Ι个比值的绝对值大于变化阈值且第i_l个比值为负时,将第i个令牌生成速度的数值设置成为对象所接入的节点配置的最大令牌生成速度的数值;
[0147]第三生成单元3024,用于在数据比较单元3021比较得出第1-Ι个比值的绝对值小于变化阈值时,将第i个令牌生成速度的数值设置成第i_l个令牌生成速度的数值。
[0148]可选的,第一生成单元3022,具体用于将为对象所接入的节点配置的最小令牌生成速度的数值确定为第i个调整区间的最小值,将第i_l个令牌生成速度的数值确定为第i个调整区间的最大值;将从第i个调整区间中任意选择的一个数值设置为第i个令牌生成速度的数值。
[0149]可选的,装置,还包括:
[0150]第二获取模块304,用于第一发送模块303将第i个令牌生成速度发送给对象所接入的各个节点之后,获取第i个令牌生成速度和第i个总令牌消耗速度;
[0151]数据比较模块305,用于将第二获取模块304获取到的第i个总令牌消耗速度减去预设的流控目标得到第i个差值,将第i个差值除以流控目标得到第i个比值,比较第i个比值与变化阈值;
[0152]区间确定模块306,用于在数据比较模块305比较得出第i个比值的绝对值大于变化阈值且第i个比值为正时,将第i个调整区间的最小值确定为第i+Ι个调整区间的最小值,将第i个令牌生成速度的数值确定为第i+Ι个调整区间的最大值;在数据比较模块305比较得出第i个比值的绝对值大于变化阈值且第i个比值为负时,将第i个令牌生成速度的数值确定为第i+Ι个调整区间的最小值,将第i个调整区间的最大值确定为第i+Ι个调整区间的最大值;
[0153]第二生成模块307,用于将从区间确定模块306确定的第i+Ι个调整区间中任意选择的一个数值设置为第i+Ι个令牌生成速度的数值;
[0154]第二发送模块308,用于将第二生成模块307生成的第i+Ι个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点将第i个令牌生成速度更新为第i+1个令牌生成速度,根据第i+Ι个令牌数生成速度进行流量控制。
[0155]可选的,装置,还包括:
[0156]速度设置模块309,用于第一获取模块301获取第i_l个令牌生成速度和第i_l个总令牌消耗速度之前,根据流控目标设置对象所接入的节点的最小令牌生成速度和最大令牌生成速度;
[0157]区间设置模块310,用于将速度设置模块309设置的最小令牌生成速度的数值确定为第i_l个调整区间的最小值,将最大令牌生成速度的数值确定为第i_l个调整区间的最大值;
[0158]第三生成模块311,用于将从第1-Ι个调整区间中任意选择的一个数值设置为第1-Ι个令牌生成速度的数值;
[0159]第三发送模块312,用于将第三生成模块311生成的第1-Ι个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点根据第i_l个令牌生成速度进行流量控制。
[0160]综上所述,本发明实施例提供的流量控制装置,通过获取第i_l个令牌生成速度和第1-Ι个总令牌消耗速度;根据第i_l个令牌生成速度、第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据地i个调整区间生成第i个令牌生成速度;将第i个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点将第i_l个令牌生成速度更新为第i个令牌生成速度,根据第i个令牌生成速度进行流量控制,由于发送给对象所接入的各个节点的第i个令牌生成速度相同,因此,对象所接入的各个节点处理的请求数相同,解决了令牌生成速度较大的节点处理的请求通常较多,使得该节点的负载较重,导致各个节点间的负载不均衡的问题,达到了弓I导负载在节点间均衡的效果。
[0161]另外,通过将第i个调整区间的最小值确定为第i+Ι个调整区间的最小值,将第i个令牌生成速度的数值确定为第i+ι个调整区间的最大值;或,将第i个令牌生成速度的数值确定为第i+ι个调整区间的最小值,将第i个调整区间的最大值确定为第i+ι个调整区间的最大值,将从第i+Ι个调整区间中任意选择的一个数值设置为第i+Ι个令牌生成速度的数值,可以根据逐步缩小的第i个调整区间使第i个令牌生成速度近似于第i_l个总令牌消耗速度,提高了流量控制的控制效率。
[0162]请参考图5,其示出了本发明一个实施例提供的流量控制装置的结构框架图。该流量控制装置,可以包括:接收机501、处理器502、发射机503以及存储器504。接收机501、处理器502、发射机503和存储器504之间两两耦合。
[0163]存储器504中存储计算机程序,处理器502可以通过访问所述计算机程序执行如下操作:
[0164]接收机501,用于获取第1-Ι个令牌生成速度和第i_l个总令牌消耗速度,令牌生成速度是为对象所接入的节点设置的令牌的生成速度且对象所接入的所有节点在同一时刻的令牌生成速度相同,总令牌消耗速度是对象所接入的所有节点在处理对象发送的请求时所消耗令牌的速度之和,i > 2,并且i为自然数;
[0165]处理器502,用于根据接收机501获取到的第i_l个令牌生成速度、第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据第i个调整区间生成第i个令牌生成速度;
[0166]发射机503,用于将处理器502生成的第i个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点将第i_l个令牌生成速度更新为第i个令牌生成速度,根据第i个令牌生成速度进行流量控制。
[0167]综上所述,本发明实施例提供的流量控制装置,通过获取第i_l个令牌生成速度和第1-Ι个总令牌消耗速度;根据第i_l个令牌生成速度、第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据地i个调整区间生成第i个令牌生成速度;将第i个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点将第i_l个令牌生成速度更新为第i个令牌生成速度,根据第i个令牌生成速度进行流量控制,由于发送给对象所接入的各个节点的第i个令牌生成速度相同,因此,对象所接入的各个节点处理的请求数相同,解决了令牌生成速度较大的节点处理的请求通常较多,使得该节点的负载较重,导致各个节点间的负载不均衡的问题,达到了弓I导负载在节点间均衡的效果。
[0168]请参考图6,其示出了本发明再一实施例提供的流量控制装置的结构框架图。该流量控制装置,可以包括:接收机501、处理器502、发射机503以及存储器504。接收机501、处理器502、发射机503和存储器504之间两两耦合。
[0169]存储器504中存储计算机程序,处理器502可以通过访问计算机程序执行如下操作:
[0170]接收机501,用于获取第1-Ι个令牌生成速度和第i_l个总令牌消耗速度,令牌生成速度是为对象所接入的节点设置的令牌的生成速度且对象所接入的所有节点在同一时刻的令牌生成速度相同,总令牌消耗速度是对象所接入的所有节点在处理对象发送的请求时所消耗令牌的速度之和,i > 2,并且i为自然数;
[0171]处理器502,用于根据接收机501获取到的第i_l个令牌生成速度、第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据第i个调整区间生成第i个令牌生成速度;
[0172]发射机503,用于将处理器502生成的第i个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点将第i_l个令牌生成速度更新为第i个令牌生成速度,根据第i个令牌生成速度进行流量控制。
[0173]可选的,处理器502,用于将第1-Ι个总令牌消耗速度减去流控目标得到第i_l个差值,将第i_l个个差值除以流控目标得到第i_l个比值,比较第i_l个比值与预设的变化阈值;若第i_l个比值的绝对值大于变化阈值且第i_l个比值为正,则根据第i_l个令牌生成速度确定第i个调整区间,生成第i个令牌生成速度。
[0174]可选的,处理器502,还用于若第1-Ι个比值的绝对值大于变化阈值且第i_l个比值为负,则将第i个令牌生成速度的数值设置成为对象所接入的节点配置的最大令牌生成速度的数值;若第i_l个比值的绝对值小于变化阈值,则将第i个令牌生成速度的数值设置成第i_l个令牌生成速度的数值。
[0175]可选的,处理器502,具体用于将为对象所接入的节点配置的最小令牌生成速度的数值确定为第i个调整区间的最小值,将第i_l个令牌生成速度的数值确定为第i个调整区间的最大值;将从第i个调整区间中任意选择的一个数值设置为第i个令牌生成速度的数值。
[0176]可选的,接收机501,还用于发射机503将第i个令牌生成速度发送给对象所接入的各个节点之后,获取第i个令牌生成速度和第i个总令牌消耗速度;
[0177]处理器502,还用于将接收机501获取到的第i个总令牌消耗速度减去流控目标得到第i个差值,将第i个差值除以流控目标得到第i个比值,比较第i个比值与变化阈值;若第i个比值的绝对值大于变化阈值且第i个比值为正,则将第i个调整区间的最小值确定为第i+Ι个调整区间的最大值,将第i个令牌生成速度的数值确定为第i+Ι个调整区间的最大值;若第i个比值大于变化阈值且第i个比值为负,则将第i个令牌生成速度的数值确定为第i+Ι个调整区间的最小值,将第i个调整区间最大值确定为第i+Ι个调整区间的最大值;将从第i个调整区间中任意选择的一个数值设置为第i+Ι个令牌生成速度的数值;
[0178]发射机503,还用于将处理器502生成的第i+Ι个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点将第i个令牌生成速度更新为第i+Ι个令牌生成速度,根据第i+Ι个令牌数生成速度进行流量控制。
[0179]可选的,处理器502,还用于接收机501获取第i_l个令牌生成速度和第i_l个总令牌消耗速度之前,根据流控目标设置节点的最小令牌生成速度和最大令牌生成速度;将最小令牌生成速度的数值确定为第i_l个调整区间的最小值,将最大令牌生成速度的数值确定第i_l个为调整区间的最大值;将从第i_l个调整区间中任意选择的一个数值设置为第i_l个令牌生成速度的数值;
[0180]发射机503,还用于将处理器502生成的第i_l个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点根据第i_l个令牌生成速度进行流量控制。
[0181]综上所述,本发明实施例提供的流量控制装置,通过获取第i_l个令牌生成速度和第1-Ι个总令牌消耗速度;根据第i_l个令牌生成速度、第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据地i个调整区间生成第i个令牌生成速度;将第i个令牌生成速度发送给对象所接入的各个节点,以便对象所接入的各个节点将第i_l个令牌生成速度更新为第i个令牌生成速度,根据第i个令牌生成速度进行流量控制,由于发送给对象所接入的各个节点的第i个令牌生成速度相同,因此,对象所接入的各个节点处理的请求数相同,解决了令牌生成速度较大的节点处理的请求通常较多,使得该节点的负载较重,导致各个节点间的负载不均衡的问题,达到了弓I导负载在节点间均衡的效果。
[0182]另外,通过将第i个调整区间的最小值确定为第i + Ι个调整区间的最小值,将第i个令牌生成速度的数值确定为第i+Ι个调整区间的最大值;或,将第i个令牌生成速度的数值确定为第i+Ι个调整区间的最小值,将第i个调整区间的最大值确定为第i+Ι个调整区间的最大值,将从第i+Ι个调整区间中任意选择的一个数值设置为第i+Ι个令牌生成速度的数值,可以根据逐步缩小的第i个调整区间使第i个令牌生成速度近似于第i_l个总令牌消耗速度,提高了流量控制的控制效率。[0183]需要说明的是:上述实施例提供的流量控制装置在进行流量控制时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将流量控制装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的流量控制装置与流量控制方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0184]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0185]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0186]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种流量控制方法,其特征在于,所述方法包括: 获取第1-Ι个令牌生成速度和第1-Ι个总令牌消耗速度,所述令牌生成速度是为对象所接入的节点设置的令牌的生成速度且所述对象所接入的所有节点在同一时刻的令牌生成速度相同,所述总令牌消耗速度是所述对象所接入的所有节点在处理所述对象发送的请求时所消耗令牌的速度之和,i ≥ 2,并且i为自然数; 根据所述第i_l个令牌生成速度、所述第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据所述第i个调整区间生成第i个令牌生成速度; 将所述第i个令牌生成速度发送给所述对象所接入的各个节点,以便所述对象所接入的各个节点将所述第i_l个令牌生成速度更新为所述第i个令牌生成速度,根据所述第i个令牌生成速度进行流量控制。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第i_l个令牌生成速度、所述第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据所述第i个调整区间生成第i个令牌生成速度,包括: 将所述第i_l个总令牌消耗速度减去所述流控目标得到第i_l个差值,将所述第i_l个差值除以所述流控目标得到第i_l个比值,比较所述第i_l个比值与预设的变化阈值; 若所述第i_l个比值的绝对值大于所述变化阈值且所述第i_l个比值为正,则根据所述第i_l个令牌生成速度确定所述第i个调整区间,生成所述第i个令牌生成速度。
3.根据权利要求2所述的方法,其特征在于,所述比较所述第i_l个比值与预设的变化阈值之后,还包括: 若所述第i_l个比值的绝对值大于所述变化阈值且所述第i_l个比值为负,则将所述第i个令牌生成速度的数值设置成为所述对象所接入的节点配置的最大令牌生成速度的数值; 若所述第i_l个比值的绝对值小于所述变化阈值,则将所述第i个令牌生成速度的数值设置成所述第i_l个令牌生成速度的数值。
4.根据权利要求2所述的方法,其特征在于,所述根据所述第1-Ι个令牌生成速度确定所述第i个调整区间,生成所述第i个令牌生成速度,包括: 将为所述对象所接入的节点配置的最小令牌生成速度的数值确定为所述第i个调整区间的最小值,将所述第i_l个令牌生成速度的数值确定为所述第i个调整区间的最大值; 将从所述第i个调整区间中任意选择的一个数值设置为所述第i个令牌生成速度的数值。
5.根据权利要求4所述的方法,其特征在于,所述将所述第i个令牌生成速度发送给所述对象所接入的各个节点之后,还包括: 获取所述第i个令牌生成速度和第i个总令牌消耗速度; 将所述第i个总令牌消耗速度减去所述流控目标得到第i个差值,将所述第i个差值除以所述流控目标得到第i个比值,比较所述第i个比值与所述变化阈值; 若所述第i个比值的绝对值大于所述变化阈值且所述第i个比值为正,则将所述第i个调整区间的最小值确定为第i+Ι个调整区间的最小值,将所述第i个令牌生成速度的数值确定为所述第i+Ι个调整区间的最大值;若所述第i个比值大于所述变化阈值且所述第I个比值为负,则将所述第i个令牌生成速度的数值确定为第i+ι个调整区间的最小值,将所述第i个调整区间的最大值确定为所述第i+ι个调整区间的最大值; 将从所述第i+Ι个调整区间中任意选择的一个数值设置为第i+Ι个令牌生成速度的数值; 将所述第i+Ι个令牌生成速度发送给所述对象所接入的各个节点,以便所述对象所接入的各个节点将所述第i个令牌生成速度更新为所述第i+Ι个令牌生成速度,根据所述第i+1个令牌数生成速度进行流量控制。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述获取第1-Ι个令牌生成速度和第1-Ι个总令牌消耗速度之前,还包括: 根据所述流控目标设置所述对象所接入的节点的最小令牌生成速度和最大令牌生成速度; 将所述最小令牌生成速度的数值确定为第i_l个调整区间的最小值,将所述最大令牌生成速度的数值确定为所述第i_l个调整区间的最大值; 将从所述第i_l个调整区间中任意选择的一个数值设置为所述第i_l个令牌生成速度的数值; 将所述第i_l个令牌生成速度发送给所述对象所接入的各个节点,以便所述对象所接入的各个节点根据所述第i_l个令牌生成速度进行流量控制。
7.一种流量控制装置,其特征在于,所述装置包括: 第一获取模块,用于获取第i_l个令牌生成速度和第i_l个总令牌消耗速度,所述令牌生成速度是为对象所接入的节点设置的令牌的生成速度且所述对象所接入的所有节点在同一时刻的令牌生成速度相同,所述总令牌消耗速度是所述对象所接入的所有节点在处理所述对象发送的请求时所消耗令牌的速度之和,i > 2,并且i为自然数; 第一生成模块,用于根据所述第一获取模块获取到的所述第i_l个令牌生成速度、所述第i_l个总令牌消耗速度和预设的流控目标确定第i个调整区间,根据所述第i个调整区间生成第i个令牌生成速度; 第一发送模块,用于将所述第一生成模块生成的所述第i个令牌生成速度发送给所述对象所接入的各个节点,以便所述对象所接入的各个节点将所述第i_l个个令牌生成速度更新为所述第i个令牌生成速度,根据所述第i个令牌生成速度进行流量控制。
8.根据权利要求7所述的装置,其特征在于,所述第一生成模块,包括: 数据比较单元,用于将所述第1-Ι个总令牌消耗速度减去所述流控目标得到第i_l个差值,将所述第i_l个差值除以所述流控目标得到第i_l个比值,比较所述第i_l个比值与预设的变化阈值; 第一生成单元,用于在所述数据比较单元比较得出所述第i_l个比值的绝对值大于所述变化阈值且所述第i_l个比值为正时,根据所述第i_l个令牌生成速度确定所述第i个调整区间,生成所述第i个令牌生成速度。
9.根据权利要求8所述的方法,其特征在于,所述第一生成模块,还包括: 第二生成单元,用于在所述数据比较单元比较得出所述第i_l个比值的绝对值大于所述变化阈值且所述第i_l个比值为负时,将所述第i个令牌生成速度的数值设置成为所述对象所接入的节点配置的最大令牌生成速度的数值;第三生成单元,用于在所述数据比较单元比较得出所述第1-Ι个比值的绝对值小于所述变化阈值时,将所述第i个令牌生成速度的数值设置成所述第1-ι个令牌生成速度的数值。
10.根据权利要求 8所述的装置,其特征在于,所述第一生成单元,具体用于将为所述对象所接入的节点配置的最小令牌生成速度的数值确定为所述第i个调整区间的最小值,将所述第i_l个令牌生成速度的数值确定为所述第i个调整区间的最大值;将从所述第i个调整区间中任意选择的一个数值设置为所述第i个令牌生成速度的数值。
11.根据权利要求10所述的装置,其特征在于,所述装置,还包括: 第二获取模块,用于所述第一发送模块将所述第i个令牌生成速度发送给所述对象所接入的各个节点之后,获取所述第i个令牌生成速度和第i个总令牌消耗速度; 数据比较模块,用于将所述第二获取模块获取到的所述第i个总令牌消耗速度减去所述流控目标得到第i个差值,将所述第i个差值除以所述流控目标得到第i个比值,比较所述第i个比值与所述变化阈值; 区间确定模块,用于在所述数据比较模块比较得出所述第i个比值的绝对值大于所述变化阈值且所述第i个比值为正时,将所述第i个调整区间的最小值确定为第i+Ι个调整区间的最小值,将所述第i个令牌生成速度的数值确定为所述第i+Ι个调整区间的最大值;在所述数据比较模块比较得出所述第i个比值的绝对值大于所述变化阈值且所述第i个比值为负时,将所述第i个令牌生成速度的数值确定为第i+Ι个调整区间的最小值,将所述第i个调整区间的最大值确定为所述第i+Ι个调整区间的最大值; 第二生成模块,用于将从所述区间确定模块确定的所述第i+Ι个调整区间中任意选择的一个数值设置为所述第i+Ι个令牌生成速度的数值; 第二发送模块,用于将所述第二生成模块生成的所述第i+Ι个令牌生成速度发送给所述对象所接入的各个节点,以便所述对象所接入的各个节点将所述第i个令牌生成速度更新为所述第i+Ι个令牌生成速度,根据所述第i+Ι个令牌数生成速度进行流量控制。
12.根据权利要求7至11任一项所述的装置,其特征在于,所述装置,还包括: 速度设置模块,用于所述第一获取模块获取第i_l个令牌生成速度和第i_l个总令牌消耗速度之前,根据所述流控目标设置所述对象所接入的节点的最小令牌生成速度和最大令牌生成速度; 区间设置模块,用于将所述速度设置模块设置的所述最小令牌生成速度的数值确定为第i_l个调整区间的最小值,将所述最大令牌生成速度的数值确定为所述第i_l个调整区间的最大值; 第三生成模块,用于将从所述第i_l个调整区间中任意选择的一个数值设置为所述第1-Ι个令牌生成速度的数值; 第三发送模块,用于将所述第三生成模块生成的所述第i_l个令牌生成速度发送给所述对象所接入的各个节点,以便所述对象所接入的各个节点根据所述第i_l个令牌生成速度进行流量控制。
13.—种全局协调器,其特征在于,所述全局协调器包括如权利要求7至12任一项所述的流量控制装置。
【文档编号】H04L12/803GK103929366SQ201410132180
【公开日】2014年7月16日 申请日期:2014年4月2日 优先权日:2014年4月2日
【发明者】曾华荣 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1