一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

流量控制方法、装置与流程

2022-06-01 10:01:47 来源:中国专利 TAG:


1.本技术属于通信技术领域,具体涉及一种流量控制方法、装置。


背景技术:

2.随着互联网行业的火热发展,一些大型互联网公司的业务系统可能需要应对的移动终端设备数量为千万级甚至数亿级。业务系统部署在企业的自建机房或云机房中,但是不管业务系统部署在自建机房或云机房,服务端的资源都非常有限。当按照终端访问峰值进行后端资源评估的情况下,可能会导致服务器资源的严重浪费,而采用较小的终端访问峰值进行服务器资源评估又会导致整个业务系统应对流量突变的能力较差,遇到某些突发情况下甚至让整个业务系统不可用,给企业带来经济损失,也会对用户体验带来影响。
3.因此,现有技术采用限流方案平衡用户访问峰值和服务稳健运行之间的关系。消息中间件(message queue,mq)为了平衡生产流量峰值和mq服务器server稳健运行提供了基于消费者流量和生产者流量两个维度的限流处理实现方式。
4.但是,多业务共同访问同一集群时评估项目的限流阈值比较困难,阈值设置较大,则多个项目同时增长会导致mq server稳定性受到影响;阈值设置较小,则应对项目的流量突变能力较弱。


技术实现要素:

5.本技术实施例的目的是提供一种流量控制方法、装置,能够解决现有技术多业务共同访问同一集群时,限流阈值较大会导致mq server稳定性受到影响,限流阈值较小导致应对项目的流量突变能力较弱的问题。
6.为了解决上述技术问题,本技术是这样实现的:
7.第一方面,本技术实施例提供了一种流量控制方法,包括:
8.在获取到第一项目的限流信息、且确定需要调整所述限流信息中的第一限流阈值的情况下,获取目标缓存代理服务器允许增加的第一流量值,所述目标缓存代理服务器为与所述第一项目关联的缓存代理服务器;
9.根据所述第一限流阈值以及所述第一流量值,确定所述第一项目在所述第一限流阈值的基础上所需增加的第一流量调整值;
10.根据所述第一流量调整值调整所述第一限流阈值,得到目标限流阈值。
11.第二方面,本技术实施例提供了一种流量控制装置,包括:
12.第一获取模块,用于在获取到第一项目的限流信息、且确定需要调整所述限流信息中的第一限流阈值的情况下,获取目标缓存代理服务器允许增加的第一流量值,所述目标缓存代理服务器为与所述第一项目关联的缓存代理服务器;
13.第一确定模块,用于根据所述第一限流阈值以及所述第一流量值,确定所述第一项目在所述第一限流阈值的基础上所需增加的第一流量调整值;
14.第一处理模块,用于根据所述第一流量调整值调整所述第一限流阈值,得到目标
限流阈值。
15.第三方面,本技术实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
16.第四方面,本技术实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
17.第五方面,本技术实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
18.第六方面,本技术实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。
19.在本技术实施例中,在获取到第一项目的限流信息、且确定需要调整所述限流信息中的第一限流阈值的情况下,获取与所述第一项目关联的目标缓存代理服务器允许增加的第一流量值,根据所述第一限流阈值以及所述第一流量值,确定所述第一项目在所述第一限流阈值的基础上所需增加的第一流量调整值,根据所述第一流量调整值调整所述第一限流阈值,得到目标限流阈值。上述过程,在接收到第一项目的限流信息时触发限流预警,获取与所述第一项目关联的目标缓存代理服务器允许增加的第一流量值,保证在服务端负载极限值之内项目的可用性;根据第一限流阈值以及第一流量值,确定第一项目所需增加的第一流量调整值,并根据第一流量调整值,对第一限流阈值进行调整,得到目标限流阈值,由此自动调整第一项目的限流阈值,实现第一项目的智能限流,提升mq在多项目下的流量突变应对能力和资源利用率。
附图说明
20.图1是本技术实施例提供的一种流量控制方法的流程图;
21.图2是本技术实施例提供的限流系统的结构框图;
22.图3是本技术实施例提供的流量借调的示意图;
23.图4是本技术实施例提供的一种流量控制装置的结构示意图;
24.图5是本技术实施例提供的一种电子设备的结构框图;
25.图6是本技术实施例提供的另一种电子设备的结构框图。
具体实施方式
26.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本技术保护的范围。
27.本技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
28.下面结合附图,通过具体的实施例及其应用场景对本技术实施例提供的流量控制方法进行详细地说明。
29.如图1所示,本技术实施例提供了一种流量控制方法,包括:
30.步骤101,在获取到第一项目的限流信息、且确定需要调整所述限流信息中的第一限流阈值的情况下,获取目标缓存代理服务器允许增加的第一流量值,所述目标缓存代理服务器为与所述第一项目关联的缓存代理服务器。
31.具体的,如果获取到第一项目的限流信息,则需要确定是否需要调整限流信息中的第一限流阈值。如果确定需要调整限流信息中的第一限流阈值,则需要计算与第一项目关联的目标缓存代理服务器允许增加的第一流量值。其中,第一限流阈值为当前时间第一项目的限流阈值。
32.需要说明的是,上述第一限流阈值可以是当前的限流阈值,也可以是当前的限流阈值乘以一个比例得到的值。例如:当前限流阈值为100m,可以是100m*80%=80m。
33.在一具体实施例中,如图2所示,上述流量控制方法可以应用于mq限流系统,该mq限流系统包括:mq服务器21、监控平台22以及mq平台23,三者之间通信连接。其中,mq服务器21包括多个缓存代理服务器broker,每一个broker下关联多个项目。图2中示例为3个缓存代理服务器,分别为缓存代理服务器1、缓存代理服务器2、缓存代理服务器3,项目有3个,分别为项目1、项目2、项目3。监控平台22包括告警配置模块221、告警检测模块222以及高效的时序型查询数据库223。
34.其中,所有项目接入mq服务器21,并分配一个mq用户。并且,预先为每个项目设置生产流量限流阈值或者消费流量限流阈值,并设置可以修改用户的生产流量限速阈值producer_byte_rate以及消费流量限速阈值consumer_byte_rate。开启mq java管理扩展指标采集器jmx metrics采集数据,并部署java管理扩展指标采集器传输通道jmxtrans采集的jmx metrics数据通过接口方式上报到高效的时序型查询数据库durid中进行存储,durid中储存有jmx metrics流量数据、生产流量数据/消费流量数据以及用户信息,即urid中储存有哪个用户、使用多少流量以及使用的流量是生产流量还是消费流量。
35.定时任务实时收集jmx metrics流量数据,告警配置模块221配置检测规则,告警检测模块222进行检测。为防止流量突刺的情况,可对上述流量数据做连续时间窗口内的三到五次检测,得到的检测结果进行均值计算,若均值计算的结果超过限流阈值的第一比例,则认定用户流量的限流阈值需要进行动态调整,则告警检测模块222发出限流预警通知,并配置回调的限流信息,用于告警项目流量限流;mq平台23提供项目限流预警回调接口,告警检测模块222通过回调接口发送限流信息,并向mq服务器21发送限流信息。
36.其中,第一比例可以是预设比例,如:80%-90%,也可以是计算出来的比例,计算方式如下:
37.r=1-(f*t/l)
38.其中,r表示第一比例,可以用百分比表示;
39.t表示发起流量预警到限流阈值调整结束的时间周期,可以是上一次流量阈值调整的周期,也可以是多次阈值调整的时间周期的平均值等;
40.f表示流量的增幅,即相邻两次获取的实际使用流量的增幅;
41.l表示项目当前的限流阈值。
42.需要说明的是,限流阈值为业务根据自身业务情况评估的流量,该流量作为该项目初始的限流阈值。
43.步骤102,根据所述第一限流阈值以及所述第一流量值,确定所述第一项目在所述第一限流阈值的基础上所需增加的第一流量调整值。
44.具体的,根据第一限流阈值以及第一流量值,自动可以确定第一项目的第一限流阈值需要增加多少流量值,即第一流量调整值。
45.步骤103,根据所述第一流量调整值调整所述第一限流阈值,得到目标限流阈值。
46.具体的,根据第一流量调整值,可以对第一限流阈值进行自动调整,即将第一限流阈值增加第一流量调整值,得到目标限流阈值,自动调整第一项目的限流阈值,实现第一项目的智能限流,提升mq在多项目下的流量突变应对能力和资源利用率。
47.在本技术实施例中,在获取到第一项目的限流信息、且确定需要调整所述限流信息中的第一限流阈值的情况下,获取与所述第一项目关联的目标缓存代理服务器允许增加的第一流量值,根据所述第一限流阈值以及所述第一流量值,确定所述第一项目在所述第一限流阈值的基础上所需增加的第一流量调整值,根据所述第一流量调整值调整所述第一限流阈值,得到目标限流阈值。上述过程,在接收到第一项目的限流信息时触发限流预警,获取与所述第一项目关联的目标缓存代理服务器允许增加的第一流量值,保证在服务端负载极限值之内项目的可用性;根据第一限流阈值以及第一流量值,确定第一项目所需增加的第一流量调整值,并根据第一流量调整值,对第一限流阈值进行调整,得到目标限流阈值,由此自动调整第一项目的限流阈值,实现第一项目的智能限流,提升mq在多项目下的流量突变应对能力和资源利用率。
48.作为一可选的实施例,所述步骤101获取目标缓存代理服务器允许增加的第一流量值之前,所述方法还包括:
49.在获取到所述限流信息的情况下,根据所述限流信息,调用采集的所述目标缓存代理服务器的n种硬件中每一种硬件的负载值,n为正整数;
50.在所述每一种硬件的负载值均小于硬件负载阈值的情况下,确定需要调整所述第一限流阈值。
51.具体的,如果获取到第一项目的限流信息,则需要根据该限流信息,调用已经采集的目标缓存代理服务器的n种硬件中每一种硬件的负载值,判断是否需要调整第一限流值;其中,每一种硬件的负载值即为该硬件的实际负载值。如果每一种硬件的负载值均小于该硬件的硬件负载阈值,则确定需要调整第一限流阈值,反之,如果有至少一种硬件的负载值大于或等于其对应的硬件负载阈值,则确定不需要增加第一限流阈值。
52.需要确定是否需要调整限流信息中的第一限流阈值。如果确定需要调整限流信息中的第一限流阈值
53.在一具体实施例中,如图2所示,mq平台23根据回调的限流信息中的ip信息,可以查询durid中的数据,由此获取目标缓存代理服务器的网卡、中央处理器(central processing unit,cpu)、磁盘等硬件负载情况。根据硬件负载情况判断此次预警回调是否可以增加第一限流阈值。如果每一种硬件的负载值均小于对应的硬件负载阈值,则确定需要增加第一限流阈值。反之,如果有至少一种硬件的负载值大于或等于其对应的硬件负载
阈值,则确定不需要增加第一限流阈值。
54.进一步的,所述硬件负载阈值包括但不限于以下至少一项:
55.中央处理器cpu负载阈值;
56.磁盘的输入负载阈值;
57.磁盘的输出负载阈值;
58.网卡入流量阈值;
59.网卡出流量阈值。
60.在硬件为cpu时,其对应的硬件负载阈值为cpu负载阈值;在硬件为磁盘时,其对应的硬件负载阈值为磁盘的输入负载阈值和/或磁盘的输出负载阈值;在硬件为网卡时,其对应的硬件负载阈值为网卡入流量阈值和/或网卡出流量阈值。
61.作为一可选的实施例,所述步骤101获取目标缓存代理服务器允许增加的第一流量值,包括:
62.根据所述每一种硬件的负载值以及对应的硬件负载阈值,计算所述每一种硬件的负载调整值;
63.根据n种硬件的负载调整值,确定所述目标缓存代理服务器允许增加的第一流量值。
64.具体的,如果获取到第一项目的限流信息,并且确定需要调整限流信息中的第一限流阈值,则针对每一种硬件,需要根据该硬件的负载值以及其对应的硬件负载阈值,计算负载值和硬件负载阈值之间的差值,由此得到负载调整值,进一步得到n种硬件的负载调整值,即得到n个负载调整值。根据n种硬件的负载调整值可以确定目标缓存代理服务器允许增加的第一流量值。
65.在一具体实施例中,如果可以增加第一限流阈值,则根据目标缓存代理服务器的各种硬件负载信息,计算出在目标缓存代理服务器负载极限值情况下的最大调整值,即第一流量值。
66.目标缓存代理服务器的流量极限值计算:mq服务器搭建初期都会对每一个缓存代理服务器的各种硬件负载做极限值压测,并将压测值作为流量极限值保存到mq服务器中。其中,硬件负载阈值为小于压测值的一个硬件负载最大值。
67.如下表1为压测值和硬件负载阈值的示意图:
68.表1压测值与硬件负载阈值
[0069][0070]
其中,假设流量预警回调时,目标缓存代理服务器的实际入流量为300m/s,实际出流量为600m/s,此时未达到各硬件的硬件负载阈值,则各硬件的负载调整值为:
[0071]
cpu的负载调整值=540m/s-300m/s=240m/s
[0072]
磁盘的输入输出负载调整值=720m/s-300m/s=420m/s
[0073]
网卡入流量负载调整值=900m/s-300m/s=600m/s
[0074]
如果网卡出流量接口为两个,则网卡出流量负载调整值=(900m/s-600m/s)/2=150m/s
[0075]
进一步的,上述根据n种硬件的负载调整值,确定所述目标缓存代理服务器允许增加的第一流量值,包括:
[0076]
将所述n种硬件的负载调整值中的最小负载调整值确定为所述第一流量值。
[0077]
具体的,根据上述得到的n种硬件的负载调整值,将n种硬件的负载调整值进行大小比较,将其中的最小的负载调整值作为目标缓存代理服务器允许增加的最大的第一流量值,可以保证所有硬件均不超过硬件负载阈值。
[0078]
在一具体实施例中,目标缓存代理服务器允许增加的最大的第一流量值min(240,420,600,150)=150m/s。
[0079]
作为一可选的实施例,所述限流信息还包括:所述第一项目的第一使用流量值;
[0080]
所述步骤102根据所述第一限流阈值以及所述第一流量值,确定所述第一项目在所述第一限流阈值的基础上所需增加的第一流量调整值,包括:
[0081]
根据所述第一使用流量值和所述第一限流阈值,计算所述第一项目需要增加的第二流量调整值;
[0082]
根据所述第二流量调整值和所述第一流量值,确定所述第一项目在所述第一限流阈值的基础上所需增加的第一流量调整值。
[0083]
具体的,在限流信息包含第一项目实际使用的第一使用流量值的情况下,根据第一使用流量值和第一限流阈值,计算第一限流阈值与第一使用流量值之间的差值,即可以得到第一项目所需要增加的第二流量调整值。根据该第二流量调整值和第一限流阈值,可以确定该第一项目的第一限流阈值所需要增加的第一流量调整值,整个过程不需要人工介入即可自动完成,实现第一项目的智能限流,提升mq在多项目下的流量突变应对能力和资源利用率。
[0084]
在一具体实施例中,第一流量调整值的确定方式可以为:如果第一项目设置的第一限流阈值为300m/s,实际使用的第一使用流量值为270m/s,如果实际使用的第一使用流量超过第一限流阈值的80%,则触发限流预警,由于第一使用流量值为270m/s等于300m/s*90%=270m/s,则触发限流预警,如果需要按照调整后的实际使用流量为第一限流阈值的80%计算,则调整后的第一限流阈值为270/0.8=340m/s,则需要增加的第一流量调整值为340-300=40m/s。
[0085]
作为一可选的实施例,上述根据所述第二流量调整值和所述第一流量值,确定所述第一项目在所述第一限流阈值的基础上所需增加的第一流量调整值的步骤,具体包括:
[0086]
将所述第二流量调整值和所述第一流量值中的较小值确定为所述第一流量调整值。
[0087]
具体的,将上述得到的第二流量调整值与第一流量值进行大小比较,将其中的最小的值作为第一项目在第一限流阈值的基础上所需增加的第一流量调整值。
[0088]
在一具体实施例中,第二流量调整值为40m/s,第一流量值为150m/s,第一流量调
整值为min(40,150)=40m/s。进一步可以得知,该第一项目的目标限流阈值为300 40=340m/s。
[0089]
作为一可选的实施例,所述步骤103根据所述第一流量调整值,对所述第一限流阈值进行调整,得到目标限流阈值之后,所述方法还包括:
[0090]
获取m个第二项目中每一第二项目的第二限流阈值,以及每一第二项目的第二使用流量值;
[0091]
根据所述第二限流阈值和所述第二使用流量值,确定每一所述第二项目可调整的第三流量调整值;
[0092]
根据每一所述第二项目可调整的第三流量调整值,从所述m个第二项目中借调所述第一流量调整值;
[0093]
其中,所述m个第二项目为与所述目标缓存代理服务器关联的项目中除所述第一项目之外的项目,m为正整数。
[0094]
具体的,在得到目标限流阈值之后,可以在durid查询与目标缓存代理服务器关联的项目中除第一项目之外的m个第二项目中,每一个第二项目的第二限流阈值和第二使用流量值,针对每一个第二项目,根据该第二项目的第二限流阈值和其第二使用流量值,计算该第二项目可借出的第三流量调整值。根据m个第二项目可借出的第三流量调整值,从m个第二项目中借调出第一流量调整值以供第一项目使用。其中,第二使用流量值为第二项目的实际使用流量值。
[0095]
下面通过一示例对借调、归还流量关系进行说明:
[0096]
如图3所示,第一行中:项目1的第一限流阈值为50m,第一使用流量值为10m,项目2的第一限流阈值为50m,第一使用流量值为60m。此时需要项目2借调30m使得项目2的限流阈值达到目标限流阈值80m。第二行中:项目1借出30m,借出后的第一限流阈值为20m,项目2借调项目1的30m,使得达到目标限流阈值80m,借调过程中项目2继续使用流量,项目2的第一使用流量值达到70m。第三行:在项目2使用完成后,可以归还借调的流量,项目2将30m归还至项目1,此时项目1的第一限流阈值变回50m,项目1在持续使用流量,此时项目1的第一使用流量达到30m。
[0097]
在一具体实施例中,每一个第二项目可借出的第三流量值的计算方式可以为:
[0098]
f=项目流量阈值(lf)-实际流量(rf)/70%
[0099]
其中,f表示第二项目的第三流量值;
[0100]
lf表示第二项目的第二限流阈值;
[0101]
rf表示第二项目的第二使用流量值;
[0102]
作为一可选的实施例,上述根据每一所述第二项目可调整的第三流量调整值,从所述m个第二项目中借调所述第一流量调整值的步骤,具体包括:
[0103]
将所述n个项目可调整的第三流量调整值进行优先级排序,按照优先级的顺序,向目标项目借调所述第一流量调整值;
[0104]
其中,所述目标项目为所述m个第二项目中优先级较高的至少一个项目,所述目标项目可调整的第三流量调整值总和为所述第一流量调整值。
[0105]
具体的,将m个第二项目可调整(即可以借出)的第三流量调整值进行优先级排序,即将m个第三流量值进行优先级排序,按照优先级由高到低的顺序,优先向优先级高的第二
项目借调流量,如果第一个第二项目可以借出的第三流量调整值小于或等于第一流量调整值,则不再向其他第二项目借调;如果第一个第二项目可借出的第三流量调整值小于第一流量调整值,则继续向第二个第二项目借调,直至借够第一流量调整值。
[0106]
在一具体实施例中,优先级的排序可以按照第三流量调整值的大小进行排序,较大的优先级较高,较小的优先级较低。并且,可以记录该次流量的借调信息,并持久化到mq服务器中的mysql数据库中,以便后续查看自动调整记录以及调整明细等信息。
[0107]
作为一种优选的,可以提供单步回滚到任意一次动态阈值调整后的状态,即如果将第一限流阈值调整为目标限流阈值,则可以一键返回至第一限流阈值。如果进行多次调整,则可以返回至任意一次调整前或者调整后的状态。
[0108]
作为另一种优选的,还可以提供一键恢复到初始化状态,即一键返回到人工设置的初始限流阈值的状态,为用户提供更多便利。
[0109]
综上所述,本技术实施例,在接收到第一项目的限流信息时触发限流预警,获取与所述第一项目关联的目标缓存代理服务器允许增加的第一流量值,保证在服务端负载极限值之内项目的可用性;根据第一限流阈值以及第一流量值,确定第一项目所需增加的第一流量调整值,并根据第一流量调整值调整第一限流阈值,得到目标限流阈值,由此自动调整第一项目的限流阈值,实现第一项目的智能限流,实现真正的限流和限流调整功能,以应对流量突增的情况,极大提升mq服务器的资源利用率,降低服务器硬件成本;并且,多项目之间的限流阈值相互自动借用归还,提升mq在多项目下的流量突变应对能力和资源利用率。
[0110]
本技术实施例提供的流量控制方法,执行主体可以为流量控制装置。本技术实施例中以流量控制装置执行流量控制方法为例,说明本技术实施例提供的流量控制装置。
[0111]
如图4所示,本技术实施例还提供了一种流量控制装置,包括:
[0112]
第一获取模块401,用于在获取到第一项目的限流信息、且确定需要调整所述限流信息中的第一限流阈值的情况下,获取目标缓存代理服务器允许增加的第一流量值,所述目标缓存代理服务器为与所述第一项目关联的缓存代理服务器;
[0113]
第一确定模块402,用于根据所述第一限流阈值以及所述第一流量值,确定所述第一项目在所述第一限流阈值的基础上所需增加的第一流量调整值;
[0114]
第一处理模块403,用于根据所述第一流量调整值调整所述第一限流阈值,得到目标限流阈值。
[0115]
可选的,所述装置还包括:
[0116]
调用模块,用于在获取到所述限流信息的情况下,根据所述限流信息,调用采集的所述目标缓存代理服务器的n种硬件中每一种硬件的负载值,n为正整数;
[0117]
第二确定模块,用于在所述每一种硬件的负载值均小于硬件负载阈值的情况下,确定需要调整所述第一限流阈值。
[0118]
可选的,所述第一获取模块401,具体用于:
[0119]
根据所述每一种硬件的负载值以及对应的硬件负载阈值,计算所述每一种硬件的负载调整值;
[0120]
根据n种硬件的负载调整值,确定所述目标缓存代理服务器允许增加的第一流量值。
[0121]
可选的,所述限流信息还包括:所述第一项目的第一实际使用流量值;
[0122]
所述第一确定模块402,具体用于:
[0123]
根据所述第一实际使用流量值和所述第一限流阈值,计算所述第一项目需要增加的第二流量调整值;
[0124]
根据所述第二流量调整值和所述第一流量值,确定所述第一项目在所述第一限流阈值的基础上所需增加的第一流量调整值。
[0125]
可选的,所述第一确定模块402在根据所述第二流量调整值和所述第一流量值,确定所述第一项目在所述第一限流阈值的基础上所需增加的第一流量调整值时,具体用于:
[0126]
将所述第二流量调整值和所述第一流量值中的较小值确定为所述第一流量调整值。
[0127]
可选的,所述装置还包括:
[0128]
第二获取模块,用于获取m个第二项目中每一第二项目的第二限流阈值,以及每一第二项目的第二实际使用流量值;
[0129]
第三确定模块,用于根据所述第二限流阈值和所述第二实际使用流量值,确定每一所述第二项目可调整的第三流量调整值;
[0130]
借调模块,用于根据每一所述第二项目可调整的第三流量调整值,从所述m个第二项目中借调所述第一流量调整值;
[0131]
其中,所述m个第二项目为与所述目标缓存代理服务器关联的项目中除所述第一项目之外的项目,m为正整数。
[0132]
综上所述,本技术实施例,在接收到第一项目的限流信息时触发限流预警,获取与所述第一项目关联的目标缓存代理服务器允许增加的第一流量值,保证在服务端负载极限值之内项目的可用性;根据第一限流阈值以及第一流量值,确定第一项目所需增加的第一流量调整值,并根据第一流量调整值调整第一限流阈值,得到目标限流阈值,由此自动调整第一项目的限流阈值,实现第一项目的智能限流,实现真正的限流和限流调整功能,以应对流量突增的情况,极大提升mq服务器的资源利用率,降低服务器硬件成本;并且,多项目之间的限流阈值相互自动借用归还,提升mq在多项目下的流量突变应对能力和资源利用率。
[0133]
本技术实施例中的流量控制装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(mobile internet device,mid)、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本或者个人数字助理(personal digital assistant,pda)等,还可以为服务器、网络附属存储器(network attached storage,nas)、个人计算机(personal computer,pc)、电视机(television,tv)、柜员机或者自助机等,本技术实施例不作具体限定。
[0134]
本技术实施例中的流量控制装置可以为具有操作系统的装置。该操作系统可以为安卓(android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本技术实施例不作具体限定。
[0135]
本技术实施例提供的流量控制装置能够实现图1至图3的方法实施例实现的各个过程,为避免重复,这里不再赘述。
[0136]
可选地,如图5所示,本技术实施例还提供一种电子设备500,包括处理器501和存储器502,存储器502上存储有可在所述处理器501上运行的程序或指令,该程序或指令被处理器501执行时实现上述流量控制方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0137]
需要说明的是,本技术实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
[0138]
图6为实现本技术实施例的一种电子设备的硬件结构示意图。
[0139]
该电子设备1000包括但不限于:射频单元1001、网络模块1002、音频输出单元1003、输入单元1004、传感器1005、显示单元1006、用户输入单元1007、接口单元1008、存储器1009、以及处理器1010等部件。
[0140]
本领域技术人员可以理解,电子设备1000还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器1010逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图6中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
[0141]
其中,处理器1010,用于在获取到第一项目的限流信息、且确定需要调整所述限流信息中的第一限流阈值的情况下,获取目标缓存代理服务器允许增加的第一流量值,所述目标缓存代理服务器为与所述第一项目关联的缓存代理服务器;
[0142]
根据所述第一限流阈值以及所述第一流量值,确定所述第一项目在所述第一限流阈值的基础上所需增加的第一流量调整值;
[0143]
根据所述第一流量调整值调整所述第一限流阈值,得到目标限流阈值。
[0144]
在本技术实施例中,在获取到第一项目的限流信息、且确定需要调整所述限流信息中的第一限流阈值的情况下,获取与所述第一项目关联的目标缓存代理服务器允许增加的第一流量值,根据所述第一限流阈值以及所述第一流量值,确定所述第一项目在所述第一限流阈值的基础上所需增加的第一流量调整值,根据所述第一流量调整值调整所述第一限流阈值,得到目标限流阈值。上述过程,在接收到第一项目的限流信息时触发限流预警,获取与所述第一项目关联的目标缓存代理服务器允许增加的第一流量值,保证在服务端负载极限值之内项目的可用性;根据第一限流阈值以及第一流量值,确定第一项目所需增加的第一流量调整值,并根据第一流量调整值,对第一限流阈值进行调整,得到目标限流阈值,由此自动调整第一项目的限流阈值,实现第一项目的智能限流,提升mq在多项目下的流量突变应对能力和资源利用率。
[0145]
可选地,所述处理器1010在获取目标缓存代理服务器允许增加的第一流量值之前,还用于:
[0146]
在获取到所述限流信息的情况下,根据所述限流信息,调用采集的所述目标缓存代理服务器的n种硬件中每一种硬件的负载值,n为正整数;
[0147]
在所述每一种硬件的负载值均小于硬件负载阈值的情况下,确定需要调整所述第一限流阈值。
[0148]
可选地,所述处理器1010在获取目标缓存代理服务器允许增加的第一流量值时,具体用于:
[0149]
根据所述每一种硬件的负载值以及对应的硬件负载阈值,计算所述每一种硬件的负载调整值;
[0150]
根据n种硬件的负载调整值,确定所述目标缓存代理服务器允许增加的第一流量值。
[0151]
可选地,所述限流信息还包括:所述第一项目的第一使用流量值;
[0152]
所述处理器1010在根据所述第一限流阈值以及所述第一流量值,确定所述第一项目在所述第一限流阈值的基础上所需增加的第一流量调整值时,具体用于:
[0153]
根据所述第一使用流量值和所述第一限流阈值,计算所述第一项目需要增加的第二流量调整值;
[0154]
根据所述第二流量调整值和所述第一流量值,确定所述第一项目在所述第一限流阈值的基础上所需增加的第一流量调整值。
[0155]
可选地,所述处理器1010在根据所述第二流量调整值和所述第一流量值,确定所述第一项目在所述第一限流阈值的基础上所需增加的第一流量调整值时,具体用于:
[0156]
将所述第二流量调整值和所述第一流量值中的较小值确定为所述第一流量调整值。
[0157]
可选地,所述处理器1010在根据所述第一流量调整值,对所述第一限流阈值进行调整,得到目标限流阈值之后,还用于:
[0158]
获取m个第二项目中每一第二项目的第二限流阈值,以及每一第二项目的第二使用流量值;
[0159]
根据所述第二限流阈值和所述第二使用流量值,确定每一所述第二项目可调整的第三流量调整值;
[0160]
根据每一所述第二项目可调整的第三流量调整值,从所述m个第二项目中借调所述第一流量调整值;
[0161]
其中,所述m个第二项目为与所述目标缓存代理服务器关联的项目中除所述第一项目之外的项目,m为正整数。
[0162]
综上所述,本技术实施例,在接收到第一项目的限流信息时触发限流预警,获取与所述第一项目关联的目标缓存代理服务器允许增加的第一流量值,保证在服务端负载极限值之内项目的可用性;根据第一限流阈值以及第一流量值,确定第一项目所需增加的第一流量调整值,并根据第一流量调整值调整第一限流阈值,得到目标限流阈值,由此自动调整第一项目的限流阈值,实现第一项目的智能限流,实现真正的限流和限流调整功能,以应对流量突增的情况,极大提升mq服务器的资源利用率,降低服务器硬件成本;并且,多项目之间的限流阈值相互自动借用归还,提升mq在多项目下的流量突变应对能力和资源利用率。
[0163]
应理解的是,本技术实施例中,输入单元1004可以包括图形处理器(graphics processing unit,gpu)10041和麦克风10042,图形处理器10041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元1006可包括显示面板10061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板10061。用户输入单元1007包括触控面板10071以及其他输入设备10072中的至少一种。触控面板10071,也称为触摸屏。触控面板10071可包括触摸检测装置和触摸控制器两个部分。其他输入设备10072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键
等)、轨迹球、鼠标、操作杆,在此不再赘述。
[0164]
存储器1009可用于存储软件程序以及各种数据。存储器1009可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器1009可以包括易失性存储器或非易失性存储器,或者,存储器1009可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddrsdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synch link dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,drram)。本技术实施例中的存储器1009包括但不限于这些和任意其它适合类型的存储器。
[0165]
处理器1010可包括一个或多个处理单元;可选的,处理器1010集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器1010中。
[0166]
本技术实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述流量控制方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0167]
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器rom、随机存取存储器ram、磁碟或者光盘等。
[0168]
本技术实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述流量控制方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0169]
应理解,本技术实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
[0170]
本技术实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述流量控制方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0171]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本技术实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序
来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
[0172]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
[0173]
上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献