CN117499309A - 流量控制的方法、装置、电子设备和计算机可读介质 - Google Patents
流量控制的方法、装置、电子设备和计算机可读介质 Download PDFInfo
- Publication number
- CN117499309A CN117499309A CN202310855238.1A CN202310855238A CN117499309A CN 117499309 A CN117499309 A CN 117499309A CN 202310855238 A CN202310855238 A CN 202310855238A CN 117499309 A CN117499309 A CN 117499309A
- Authority
- CN
- China
- Prior art keywords
- threshold
- flow
- user
- request
- threshold value
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000012545 processing Methods 0.000 claims abstract description 33
- 238000005111 flow chemistry technique Methods 0.000 claims abstract description 25
- 230000002596 correlated effect Effects 0.000 claims abstract description 6
- 238000007477 logistic regression Methods 0.000 claims description 34
- 238000012360 testing method Methods 0.000 claims description 29
- 238000012549 training Methods 0.000 claims description 25
- 230000000875 corresponding effect Effects 0.000 claims description 21
- 230000006399 behavior Effects 0.000 claims description 8
- 238000004422 calculation algorithm Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 19
- 238000003860 storage Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003542 behavioural effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000012821 model calculation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 101100295776 Drosophila melanogaster onecut gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/29—Flow control; Congestion control using a combination of thresholds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种流量控制的方法,所述方法包括:获取目标用户的第一流量请求在流量处理队列中的参数值;在所述参数值大于第一阈值且所述参数值小于或等于第二阈值的情况下,获取所述目标用户执行目标事件的第一命中率,其中,所述第一阈值和所述第二阈值与预设最大承载请求量正相关,所述第一阈值小于所述第二阈值,所述第二阈值小于所述预设最大承载请求量;在所述第一命中率大于或等于概率阈值的情况下,处理所述第一流量请求。
Description
技术领域
本申请涉及流量控制技术领域,尤其涉及一种流量控制的方法、装置、电子设备和计算机可读介质。
背景技术
令牌桶算法是网络流量整形和速率限制中的一种常用算法,用于控制发送到网络上的数据的数目,并允许突发数据的发送。基于令牌桶算法的限流策略根据***可承载流量确定令牌数量,并根据令牌数量限制用户的访问请求。相对于其他限流策略,基于令牌桶算法的限流策略能够更有效的限制短时间之内的集中流量。
然而,目前基于令牌桶算法的限流策略在进行流量限制时没有考虑到***承载能力的变化,导致***资源没有被合理利用。例如,当令牌桶剩余数量为10个,即使第11位请求访问的用户执行目标事件的可能性高于前10位用户,第11位用户也不会被允许访问。
发明内容
本申请实施例的目的是提供一种流量控制的方法、装置、电子设备和计算机可读介质,能够提供一种兼顾用户因素的限流方案。
为解决上述技术问题,本申请实施例是通过以下各方面实现的。
第一方面,本申请实施例提供了一种流量控制的方法,包括:获取目标用户的第一流量请求在流量处理队列中的参数值;在所述参数值大于第一阈值且所述参数值小于或等于第二阈值的情况下,执行目标事件的第一命中率,其中,所述第一阈值和所述第二阈值与预设最大承载请求量正相关,所述第一阈值小于所述第二阈值,所述第二阈值小于所述预设最大承载请求量;在所述第一命中率大于或等于概率阈值的情况下,处理所述第一流量请求。
第二方面,本申请实施例提供了一种流量控制的装置,包括:第一获取模块,用于获取目标用户的第一流量请求在流量处理队列中的参数值;第二获取模块,用于在所述参数值大于第一阈值且所述参数值小于或等于第二阈值的情况下,获取所述目标用户执行目标事件的第一命中率,其中,所述第一阈值和所述第二阈值与预设最大承载请求量正相关,所述第一阈值小于所述第二阈值,所述第二阈值小于所述预设最大承载请求量;处理模块,用于在所述第一命中率大于或等于概率阈值的情况下,处理所述第一流量请求。
第三方面,本申请实施例提供了一种电子设备,包括:存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现上述第一方面所述的流量控制的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令被处理器执行时实现上述第一方面所述的流量控制的方法。
在本申请实施例中,通过获取目标用户的第一流量请求在流量处理队列中的参数值;在所述参数值大于第一阈值且所述参数值小于或等于第二阈值的情况下,获取所述目标用户执行目标事件的第一命中率,其中,所述第一阈值和所述第二阈值与预设最大承载请求量正相关,所述第一阈值小于所述第二阈值,所述第二阈值小于所述预设最大承载请求量;在所述第一命中率大于或等于概率阈值的情况下,处理所述第一流量请求,能够提供一种兼顾用户因素的限流方案,有效对突发大量请求进行限流,以应对高并发的使用场景,提升***运行的流畅性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出本申请实施例的一种流量控制***的一种架构示意图;
图2示出本申请实施例提供的一种流量控制的方法的一种流程示意图;
图3示出本申请实施例提供的一种流量控制的方法的另一种流程示意图;
图4示出本申请实施例提供的一种流量控制的方法的另一种流程示意图;
图5示出本申请实施例提供的一种流量控制的装置的结构示意图;
图6为执行本申请实施例提供的一种流量控制的方法的电子设备的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请的流量控制方法可以由电子设备执行,例如服务端设备。换言之,本发明的方法可以由安装在服务端设备的软件或硬件来执行。
图1示出本申请实施例的一种流量控制***的一种架构示意图,包括终端200和服务器300,终端200包括但不限于:智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能电视、智能手表、车载终端等。服务端300包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。终端200和服务器300通过网络400互相连接。
在一种实施方式中,本申请的方法应用于部署在网络400或服务器300的网关,例如nginx、LVS、HAProxy等。网关是分布式***中流量的出入口,可以用于限流、负载平衡、安全策略等。网关包括转发模块和计算模块;转发模块用于流量转发;计算模块用于计算,例如模型计算、平均值计算、阈值计算、概率阈值计算等。具体的,网关接收第一流量请求。网关调用计算模块,通过计算模块确定第一流量请求在流量处理队列中的参数值、第一阈值、第二阈值、第一命中率、概率阈值等。如果参数值小于或等于第一阈值,代表后端应用服务器有足够的处理能力,通过转发模块将第一流量请求转发至服务器进行处理。如果参数值大于第二阈值,代表此时服务器已满负荷,为避免过载导致***崩溃,拒绝该第一流量请求,向前端返回“流量请求失败”。如果参数值大于第一阈值且小于等于第二阈值,代表服务器尚有余力,但应对突发流量的能力有限,此时可以进一步确定该用户执行目标事件的命中率,当命中率大于预设概率阈值,通过转发模块处理第一流量请求,否则拒绝第一流量请求。
本申请实施例中,在考虑***承载能力的基础上提供一种兼顾用户因素的限流方案,通过两级阈值判定,能够在高并发的使用场景中,保证***服务的稳定性,避免过载风险。同时兼顾用户因素,在服务器处理能力有限时,合理利用有限资源,使得***既能够流畅运行,又能有效应对突发流量。
图2示出本申请实施例提供的一种流量控制的方法的一种流程示意图。该方法可以应用于各种互联网在线***、网站、平台、应用程序,例如,电商***在618、双11等大型促销活动期间,直播平台在夜间、节假日等直播带货时间段,或者购票网站在国庆、春节等假期前后。为了避免突发流量超过服务器处理负荷引起过载风险,都需要制定限流策略应对这些高并发场景。
以下以该方法应用于促销期间的电商***为例进行说明,可以理解的是,该方法也可应用于上述例举的直播平台、购票网站,以及其他突发流量的场景。如图所示,该方法可以包括以下步骤。
步骤S110:获取目标用户的第一流量请求在流量处理队列中的参数值。
目标用户可以为互联网电商***的用户,第一流量请求用于请求访问电商***。可选的,流量处理队列包括电商***正在处理的多个流量请求,参数值用于表示第一流量请求在多个流量请求中的排序。
可选的,参数值可以表示为令牌桶算法中当前正在处理的令牌数量。相比固定窗口算法,令牌桶算法通过限制令牌的总数,能够避免瞬间流量高峰的问题。例如,限制1分钟内***能够承接N次请求,根据固定窗口算法,如果记录的1分钟内的请求量超过了N次,则触发限流策略;然而,如果第一分钟的后30秒和第二分钟的前30秒分别产生了1/2N次请求,由于这N次请求分布在两个时间窗口内,使用固定窗口算法不能触发限流。令牌桶算法则是每隔1/N的时间往桶内放入一个令牌,并限制桶内的令牌总数,以克服上述固定窗口算法的问题。
可选的,目标用户、第一流量请求和参数值具有对应关系。
步骤S120:获取所述目标用户执行目标事件的第一命中率。
在所述参数值大于第一阈值且所述参数值小于或等于第二阈值的情况下,获取所述目标用户执行目标事件的第一命中率。目标事件用于表示用户通过所述***、网站、平台、应用程序可以实现的事件,例如信息查询、信息获取、商品购买等。可选的,第一命中率用于表示目标用户执行目标事件的可能性,其取值区间为0至1。第一命中率越高,目标用户执行目标事件的可能性越大。第一阈值和第二阈值可以为根据令牌桶算法确定的令牌数量阈值,所述第一阈值小于所述第二阈值。例如,第二阈值可以等于令牌总数,也称为全部拒绝阈值;第一阈值小于第二阈值,也称为部分拒绝阈值。在处理请求前,需要从桶中获得一个令牌,如果桶中没有令牌了,需要等待新的令牌或者拒绝该请求。也就是说,可以根据参数值与第一阈值、第二阈值的关系,以确定后续需要执行的步骤。
可选的,第一命中率用于表示目标用户在电商***进行交易的概率。第一命中率越大,表示目标用户通过第一流量请求进行交易的可能性越大。
可以通过不同方式存储令牌数量,包括第一阈值、第二阈值以及参数值。在单机环境下,令牌的数量可以被存储为单机进程中的一个变量;在分布式服务环境中,由于不同机器之间无法共享进程的变量,可以使用Redis分布式缓存存储令牌的数量。
所述第一阈值和所述第二阈值与预设最大承载请求量正相关。可选的,在使用令牌桶算法进行限流前,需要评估电商***的最大承载请求量,用于表示该***单位时间能够处理的流量的数量。可以使用最大承载请求量乘以相应的百分比以确定第一阈值和第二阈值,例如第一阈值=80%*最大承载请求量,第二阈值=90%*最大承载请求量。
所述第二阈值小于所述预设最大承载请求量。
根据压力测试的结果和实际业务需要,在传统令牌桶算法的基础上,引入了包含两个阈值的限流方案,能够避免传统令牌桶算法进行限流时“一刀切”的问题。
步骤S130:处理所述第一流量请求。
在所述第一命中率大于或等于概率阈值的情况下,处理所述第一流量请求。
可选的,概率阈值用于表示***用户进行交易的可能性,第一命中率大于或等于概率阈值表示目标用户进行交易的可能性较高或者目标用户进行交易的意愿较强。此时,处理第一流量请求,可以让交易意愿较强的目标用户能够优先于其他交易意愿较弱的用户访问电商***。
在本申请实施例中,通过获取目标用户的第一流量请求在流量处理队列中的参数值;在所述参数值大于第一阈值且所述参数值小于或等于第二阈值的情况下,获取所述目标用户执行目标事件的第一命中率目标用户,其中,所述第一阈值和所述第二阈值与预设最大承载请求量正相关,所述第一阈值小于所述第二阈值,所述第二阈值小于所述预设最大承载请求量;在所述第一命中率大于或等于概率阈值的情况下,处理所述第一流量请求,在处理用户的流量请求时,能够综合考虑流量请求的排序以及对应用户的交易命中率,让让执行目标事件的可能性较高的客户优先允许访问,因此,能够提供一种兼顾用户因素的限流方案,有效对突发大量请求进行限流,以应对高并发的使用场景,提升***运行的流畅性。
在一种可能的实现方式中,在所述获取所述目标用户执行目标事件的第一命中率目标用户之后,还包括:在所述第一命中率小于所述概率阈值的情况下,拒绝所述第一流量请求。
在***可以处理的流量请求数量有限的情况下,拒绝处理对目标事件命中低的用户,优先处理对目标事件命中率高的用户,能够在有效限制流量的基础上,满足用户对***的使用需求。
在一种可能的实现方式中,在所述获取目标用户的第一流量请求在流量处理队列中的参数值之后,还包括:在所述参数值小于或等于所述第一阈值的情况下,处理所述第一流量请求;或在所述参数值大于所述第二阈值的情况下,拒绝所述第一流量请求。
如果参数值小于或等于第一阈值,表示***正在处理的请求数在第一阈值之内,***能够轻松处理所有请求,则***处理全部请求。
如果参数值大于第二阈值,即令牌桶里没有可用令牌了,表示***正在处理的请求流量已经达到***能够处理的流量最大值,则在***正在处理的请求流量没有变化的情况下,***拒绝所有新来的请求。
根据***正在处理的流量请求的数量和***能够处理的流量请求的数量,判断是否处理当前的流量请求,能够针对不同情况采取不同流量控制策略,以对电商***进行有效的流量控制。
图3示出本申请实施例提供的流量控制的方法的另一种流程示意图。如图所示,该方法可以包括以下步骤。
步骤S210:获取目标用户的第一流量请求在流量处理队列中的参数值。
步骤S220:将所述第一流量请求中携带的目标用户的信息输入逻辑回归模型;输出所述第一命中率。
逻辑回归模型是一种使用二分类标签训练的机器学习模型,模型预测结果介于0和1之间,值越接近1表示越接近正样本,值越接近0表示越接近负样本。
第一流量请求中携带的所述目标用户的信息包括例如目标用户的标识信息、目标用户的历史交易信息。逻辑回归模型的计算结果,即第一命中率,可以为一个介于0至1之间的小数。
可选的,在***应用于高并发场景前,部署逻辑回归模型,用于计算第一流量请求对应的目标用户执行目标事件的可能性。例如,在电商***中部署逻辑回归模型,计算与第一流量请求对应的目标用户进行交易的可能性。
在一种可能的实现方式中,目标用户执行目标事件还可以包括以下至少一者:
目标用户在预定条件下执行目标事件、目标用户在预定时间内执行目标事件。
例如,目标用户交换目标对象、目标用户在预定条件下交换目标对象、目标用户在预定时间内交换目标对象。
预定条件用于表示与目标用户进行目标对象交换相关的影响因素,以及目标用户进行目标对象交换所处的状况。以目标用户出售/购买商品为例,预定条件可以是目标用户是/否接收到相关推送消息,目标用户出售/购买目标商品的数量等。
预定时间用于表示预先确定的与目标用户进行目标对象交换相关时间点或时间周期,例如6月18日、或者6月18日的20:00至24:00期间。
步骤S230:处理所述第一流量请求。
步骤S210和步骤S230可以采用图2实施例对应步骤的描述,对于可重复的部分,在此不再赘述。
在本申请实施例中,通过部署逻辑回归模型,可以根据用户信息准确地预测与流量请求对应的交易命中率。
在一种可能的实现方式中,获取所述概率阈值包括:获取所述流量处理队列中的N个流量请求,N个所述流量请求对应携带有用户信息;将N个所述用户信息输入逻辑回归模型,得到所述流量处理队列中N个流量请求对应的命中率;根据所述命中率,确定所述概率阈值。
可选的,流量处理队列中各流量请求为***当前正在处理的所有请求,逻辑回归模型可以计算各请求对应用户的交易命中率。概率阈值例如为所有请求的交易命中率的平均值。
例如,第一流量请求在流量处理队列中的参数值为第1000。则逻辑回归模型可以计算***正在处理的999个请求对应用户的交易命中率。概率阈值为999个流量请求的交易命中率的平均值。
可选的,当目标用户的第一请求流量的参数值小于或等于所述第一阈值的情况下,在处理该流量请求之前,计算该流量请求对应的命中率,保证所有流量请求在加入处理队列之前都计算了命中率。在流量处理队列发生变化,如有新的流量加入队列,或者有流量处理完毕后从队列中退出时,仅需更新流量处理队列中的各流量请求命中率的平均值,避免重复计算队列中各流量的命中率,能够降低计算资源的开销。
可选的,所述概率阈值还可以是根据历史经验值、实际需求值、根据历史经验值和/或实际需求值确定的数值。
通过上述方式确定的概率阈值,可以用于合理评估当前目标用户执行目标事件的可能性所在水平。
在一种可能的方式中,在所述将所述第一流量请求中携带的所述目标用户的信息输入逻辑回归模型之前,还包括:获取多个用户的行为数据;从所述行为数据中,提取用户执行数据和执行标签,其中所述用户执行数据为用户执行所述目标事件相关的数据,所述执行标签用于指示用户是否执行所述目标事件,且提取的用户执行数据为信息价值(Information Value,IV)大于预定值的数据;基于所述执行标签和用户执行数据,训练所述逻辑回归模型。
用户的行为数据可以为用户的历史行为数据,例如在非大促期间,携带于用户流量请求中的数据。用户的执行数据可以为与用户执行目标事件相关的特征变量,例如流量请求的发生时间、流量请求相关的事件、流量请求中包含的商品信息;其中,商品信息可以包括商品标签、商品价格、是否为历史购买商品、与历史购买商品的相似度、与历史购买商品的关联度等。可选的,以用户是否下单作为执行标签,用户下单表示为1,用户未下单表示为0。
在数据采集后对数据进行清洗工作。清洗完成后,通过计算各特征变量的信息价值(Information Value,IV)对得到的特征变量进行筛选。IV用来评估变量的预测能力,IV值越高,预测能力越强,如果IV值小于指定门限值,例如0.1,说明该变量或数据对模型的预测能力弱,剔除此类数据可以提升模型的准确性。可选的,用户执行数据的IV值大于预定阈值。
可选的,可以使用等宽分组、等高分组、决策树分组等离散化方法对变量进行分组;分组后,计算目标组的证据权重(Weight of Evidence,WOE)。WOE用于表示当前分组中响应客户占所有响应客户的比例和当前分组中没有响应的客户占所有没有响应客户的比例之间的差异,其中响应客户指正样本,未响应客户指负样本,在申请的方案中,响应样本也就是执行标签为指示用户执行目标事件的执行数据,未响应样本为指示用户未执行目标事件的执行数据。通过对WOE进行加权求和,确定IV。基于提取的用户执行数据和执行标签训练逻辑回归模型,以使逻辑回归模型可以根据输入的流量请求中的用户信息,输出与用户对应的第一命中率。
在一种可能的实现方式中,所述训练所述逻辑回归模型包括:将所述用户执行数据划分为训练数据集和测试数据集,所述训练数据集对所述逻辑回归模型进行训练,所述测试数据集对所述逻辑回归模型进行测试;以及在训练数据集中用户执行目标事件的占比(也即正样本占比)与测试集中用户执行目标事件的占比之间的差值小于预定值的情况下,使用该用户执行数据对所述逻辑回归模型进行训练。
在特征变量筛选完成后进行数据集划分。可选的,以90%的数据为训练集,以10%的数据为测试集。
为了避免样本数据倾斜的问题,例如训练集中用户下单比例与测试集中用户下单比例不均衡的问题,除了需要将训练集和测试集的数据量保持在指定比例,还需要使训练集中用户执行所述目标事件的占比接近所述测试集中用户执行所述目标事件的占比,使训练集的下单数占比等于测试集的下单数占比。
之后,使用训练集训练模型,使用测试集验证模型。
并在测试验证完成后,用所有数据对模型进行二次训练,得到最终的模型。
通过以上方式,可以提升模型预测的准确性。
在一种可能的实现方式中,所述处理所述第一流量请求之前,还包括:通过逻辑回归模型,获取所述流量处理队列中各流量请求对应的命中率;根据所述命中率,确定所述概率阈值。
在一种可能的实现方式中,在所述获取所述目标用户执行目标事件的第一命中率之前,还包括:获取所述最大承载请求量;基于压力测试的结果,确定所述最大承载请求量;根据所述最大承载请求量,确定所述第一阈值或所述第二阈值。
可以通过***性能压力测试来确定***的最大承载能力,即最大承载请求量。压力测试通过给软件不断加压,强制其在极限的情况下运行;并通过测试程序在同一时间内或某一段时间内,向***发送预期数量的交易请求,测试***在不同压力情况下的效率状况,以及***可以承受的压力情况。在压力测试过程中逐步提升每秒钟的请求量(QueriesPer Second,QPS),当请求量到达某个值时,***出现无法响应服务状态,当前的QPS即为***的最大承载能力。第二阈值也可以通过压力测试确定,然而,不能以最大承载能力作为第二阈值。这是因为在分布式***的各个节点上,需要运行核心服务相关的进程,还需要运行***资深进程以及相关的监控进程,这些进程占用的资源会有微小的波动,因此需要预留一些空闲资源供这些进程使用。在接近***最大承载能力时,持续压力测试一段时间,在其他进程能保持正常运行的情况下,可以确定当前压力测试的QPS可以作为第二阈值。例如,经过测试,***的最大承载请求量为1000QPS,请求量在900QPS左右时,无论其他进程占用资源怎么波动,都能正常运行***核心服务,此时的请求量为最大承载能力的90%,确定第二阈值为900QPS。第一阈值则可以根据实际业务情况确定。例如,如果当前业务需要包括更多下单意愿强烈的客户的请求,则可以将第一阈值对应的百分比设置得较低,例如设置为70%、80%,以尽可能多地拒绝下单可能性低的请求。反之,如果业务没有这个需求,可以把第一阈值对应的百分比设置得较高,例如85%,即第一阈值为850QPS。
图4示出本申请实施例提供的流量控制的方法的另一种流程示意图。如图所示,该方法可以包括以下步骤。
S310:建模步骤。
在非高并发场景的正常流量请求中,获取用户的行为数据,并从用户的行为数据中提取用户交易数据。以用户是否执行目标事件为标签,使用逻辑回归模型建模。在应用于高并发场景前,部署建好的逻辑回归模型。在高并发场景中,通过逻辑回归模型,实时预测用户执行目标事件的命中率,例如用户下单的概率。
S320:限流步骤。
限流步骤通过限制到达***的并发请求数量,保证***能够正常响应部分用户的请求;而对超过限制的流量,采取拒绝服务的方式。
在第一流量请求进入后,使用令牌桶算法进行限流。在使用令牌桶算法限流的算法中,定义第一阈值和第二阈值(即,部分拒绝阈值和全部拒绝阈值)。如果当前请求数小于或等于部分拒绝阈值,则处理全部请求。如果当前请求数在部分拒绝阈值和全部拒绝阈值之间,则计算新来的请求的下单概率,如果该命中率大于或等于当前所有请求下单概率的平均值,则处理新来的请求;如果该命中率小于当前所有请求命中率的平均值,则触发限流策略,拒绝新来的请求。如果当前请求数大于全部拒绝阈值,则拒绝全部请求。
例如,电商***每秒钟能处理6000次请求,定义第一阈值(部分拒绝阈值)=***最大承载请求量*70%=4200,第二阈值(全部拒绝阈值)=***最大承载请求量*90%=5400。
假设参数值(当前正在处理的令牌数)为4000,其小于部分拒绝阈值,表示正在处理的流量在部分拒绝阈值,***能够处理所有请求,则***处理全部请求。
假设当前正在处理的令牌数为5000,其在部分拒绝阈值和全部拒绝阈值之间,则进一步判断当前流量对应的第一命中率(即用户在当前请求下单的概率)。假设当前正在处理的所有请求的下单概率平均值为0.4,当前请求的下单概率为0.5,即当前请求的下单概率大于或等于下单概率平均值,则处理当前请求;如果当前请求的下单概小于下单概率平均值,则拒绝当前请求。
假设当前正在处理的令牌数为5500,其大于全部拒绝阈值,表示当前令牌桶内已经没有令牌可用,当前的请求流量大于***的最大承载能力,则拒绝所有新来的请求。
在本申请实施例中,通过获取目标用户的第一流量请求在流量处理队列中的参数值;在所述参数值大于第一阈值且所述参数值小于或等于第二阈值的情况下,获取所述目标用户进行交易的第一命中率,其中,所述第一阈值和所述第二阈值与预设最大承载请求量正相关,所述第一阈值小于所述第二阈值,所述第二阈值小于所述预设最大承载请求量;在所述第一命中率大于或等于概率阈值的情况下,处理所述第一流量请求,在处理用户的流量请求时,能够综合考虑流量请求的排序以及对应用户的交易命中率,让购买意愿较强的用户能够优先被允许访问,因此,在限制访问流量的同时,充分考虑到用户因素,能够更大程度满足意愿强烈的用户实现需求。
图5示出本申请实施例提供的流量控制的装置的结构示意图,该装置400包括:第一获取模块410、第二获取模块420和处理模块430。
第一获取模块410用于获取目标用户的第一流量请求在流量处理队列中的参数值;第二获取模块420用于在所述参数值大于第一阈值且所述参数值小于或等于第二阈值的情况下,获取所述目标用户执行目标事件的第一命中率目标用户,其中,所述第一阈值和所述第二阈值与预设最大承载请求量正相关,所述第一阈值小于所述第二阈值,所述第二阈值小于所述预设最大承载请求量;处理模块430用于在所述第一命中率大于或等于概率阈值的情况下,处理所述第一流量请求。
在一种可能的实现方式中,处理模块430还用于在所述参数值小于或等于所述第一阈值的情况下,处理所述第一流量请求;或在所述参数值大于所述第二阈值的情况下,拒绝所述第一流量请求。
在一种可能的实现方式中,第二获取模块420用于将所述第一流量请求中携带的所述目标用户的信息输入逻辑回归模型,输出所述第一命中率。
在一种可能的实现方式中,所述装置还包括概率阈值获取模块,用于获取所述流量处理队列中的N个流量请求,N个所述流量请求对应携带有用户信息;将N个所述用户信息输入逻辑回归模型,得到所述流量处理队列中N个流量请求对应的命中率;根据所述命中率,确定所述概率阈值。
在一种可能的实现方式中,流量控制的装置还包括模型训练模块,用于获取多个用户的行为数据;从所述行为数据中,提取与用户执行所述目标事件相关的用户执行数据以及用于指示用户是否执行所述目标事件的执行标签,所述用户执行数据的信息价值大于预定阈值;基于所述执行标签和目标用户执行数据,训练所述逻辑回归模型。
在一种可能的实现方式中,所述训练模块用于将所述用户执行数据划分为训练数据集和测试数据集,所述训练数据集用于对所述逻辑回归模型进行训练,所述测试数据集用于对所述逻辑回归模型进行测试;以及在所述训练数据集中用户执行所述目标事件的占比与所述测试集中用户执行所述目标事件的占比之间的差值小于预定门限值的情况下,使用所述用户执行数据对所述逻辑回归模型进行训练。
在一种可能的实现方式中,所述目标用户执行目标事件还可以包括以下至少一者:
所述目标用户在预定条件下执行目标事件,所述目标用户在预定时间内执行目标事件。
在一种可能的实现方式中,所述装置还用于获取所述最大承载请求量;基于压力测试的结果,确定所述最大承载请求量。
本申请实施例提供的该装置400,可执行前文方法实施例中所述的各方法,并实现前文方法实施例中所述的各方法的功能和有益效果,在此不再赘述。
图6示出执行本申请实施例提供的一种流量控制的方法的电子设备的硬件结构示意图,参考该图,在硬件层面,电子设备包括处理器510,可选地,包括内部总线520、网络接口530、存储器。其中,存储器可能包含内存540,例如高速随机存取存储器(Random-AccessMemory,RAM),也可能还包括非易失性存储器(non-volatile memory)550,例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器510、网络接口530和存储器可以通过内部总线520相互连接,该内部总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,该图中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存540和非易失性存储器550,并向处理器510提供指令和数据。
处理器510从非易失性存储器550中读取对应的计算机程序到内存540中然后运行,在逻辑层面上形成定位目标用户的装置。处理器510,执行存储器所存放的程序,并具体用于执行图2至图4实施例所述的方法,并实现相同或相应的技术效果。
上述如本申请图2至图4所示实施例揭示的方法可以应用于处理器中,或者由处理器510实现。处理器510可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器510中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器510可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器510读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行前文方法实施例中所述的各方法,并实现前文方法实施例中所述的各方法的功能和有益效果,在此不再赘述。
当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,所述计算机可读介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行图2至图4实施例所述的方法,并实现相同或相应的技术效果。
其中,所述的计算机可读存储介质包括只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
进一步地,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,实现前文方法实施例中所述的各方法。
总之,以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (10)
1.一种流量控制的方法,其特征在于,包括:
获取目标用户的第一流量请求在流量处理队列中的参数值;
在所述参数值大于第一阈值且所述参数值小于或等于第二阈值的情况下,获取所述目标用户执行目标事件的第一命中率,所述第一阈值和所述第二阈值与预设最大承载请求量正相关,所述第一阈值小于所述第二阈值,所述第二阈值小于所述预设最大承载请求量;
在所述第一命中率大于或等于预定的概率阈值的情况下,处理所述第一流量请求。
2.根据权利要求1所述的方法,其特征在于,在所述获取目标用户的第一流量请求在流量处理队列中的参数值之后,还包括:
在所述参数值小于或等于所述第一阈值的情况下,处理所述第一流量请求;
在所述参数值大于所述第二阈值的情况下,拒绝所述第一流量请求。
3.根据权利要求1所述的方法,其特征在于,所述获取所述目标用户执行目标事件的第一命中率,包括:
将所述第一流量请求中携带的用户信息输入逻辑回归模型,输出所述第一命中率。
4.根据权利要求1所述的方法,其特征在于,获取所述概率阈值包括:
获取所述流量处理队列中的N个第二流量请求,N个所述流量请求对应携带有用户信息;
将N个所述用户信息输入逻辑回归模型,得到所述流量处理队列中N个流量请求对应的第二命中率;
根据所述第二命中率,确定所述概率阈值。
5.根据权利要求3或4所述的方法,其特征在于,将所述用户信息输入逻辑回归模型之前,还包括:
获取多个用户的行为数据;
从所述行为数据中,提取用户执行数据和执行标签,所述用户执行数据的信息价值大于预定阈值,其中所述用户执行数据为用户执行所述目标事件相关的数据,所述执行标签用于指示用户是否执行所述目标事件;
基于所述用户执行数据和执行标签,训练所述逻辑回归模型。
6.根据权利要求5所述的方法,其特征在于,所述训练所述逻辑回归模型,包括:
将所述用户执行数据划分为训练集和测试集,所述训练集用于对所述逻辑回归模型进行训练,所述测试集用于对所述逻辑回归模型进行测试;其中,
所述训练集中正样本数量占比与所述测试集中正样本数量占比之差小于预定值。
7.根据权利要求1所述的方法,其特征在于,所述目标用户执行目标事件还包括以下至少一者:
所述目标用户在预定条件下执行目标事件,所述目标用户在预定时间内执行目标事件。
8.一种流量控制的装置,其特征在于,包括:
第一获取模块,用于获取目标用户的第一流量请求在流量处理队列中的参数值;
第二获取模块,用于在所述参数值大于第一阈值且所述参数值小于或等于第二阈值的情况下,获取所述目标用户执行目标事件的第一命中率,其中,所述第一阈值和所述第二阈值与预设最大承载请求量正相关,所述第一阈值小于所述第二阈值,所述第二阈值小于所述预设最大承载量;
处理模块,用于在所述第一命中率大于或等于概率阈值的情况下,处理所述第一流量请求。
9.一种电子设备,包括:
处理器;以及
存储计算机可执行指令的存储器,所述可执行指令被所述处理器执行时实现如权利要求1-7中任一项所述的流量控制的方法。
10.一种计算机可读介质,所述计算机可读介质存储一个或多个程序,所述一个或多个程序被电子设备执行时实现如权利要求1-7中任一项所述的流量控制的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310855238.1A CN117499309A (zh) | 2023-07-12 | 2023-07-12 | 流量控制的方法、装置、电子设备和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310855238.1A CN117499309A (zh) | 2023-07-12 | 2023-07-12 | 流量控制的方法、装置、电子设备和计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117499309A true CN117499309A (zh) | 2024-02-02 |
Family
ID=89681614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310855238.1A Pending CN117499309A (zh) | 2023-07-12 | 2023-07-12 | 流量控制的方法、装置、电子设备和计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117499309A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117793783A (zh) * | 2024-02-27 | 2024-03-29 | 深圳市英迈通信技术有限公司 | 一种5g手机数据流量监控方法和*** |
-
2023
- 2023-07-12 CN CN202310855238.1A patent/CN117499309A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117793783A (zh) * | 2024-02-27 | 2024-03-29 | 深圳市英迈通信技术有限公司 | 一种5g手机数据流量监控方法和*** |
CN117793783B (zh) * | 2024-02-27 | 2024-04-26 | 深圳市英迈通信技术有限公司 | 一种5g手机数据流量监控方法和*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109063985B (zh) | 一种业务的风险决策方法及装置 | |
CN110874440B (zh) | 一种信息推送及其模型训练的方法、装置及电子设备 | |
CN109347787B (zh) | 一种身份信息的识别方法及装置 | |
CN109034583B (zh) | 异常交易识别方法、装置及电子设备 | |
CN107563757B (zh) | 数据风险识别的方法及装置 | |
AU2019232799A1 (en) | Service processing method and apparatus | |
CN111353850B (zh) | 一种风险识别策略的更新、风险商户的识别方法和装置 | |
CN104965844A (zh) | 信息处理方法及装置 | |
CN106487603B (zh) | 一种响应测试方法及装置 | |
CN108416616A (zh) | 投诉举报类别的排序方法和装置 | |
CN117499309A (zh) | 流量控制的方法、装置、电子设备和计算机可读介质 | |
CN110807643A (zh) | 一种用户信任评估方法、装置及设备 | |
CN110334936B (zh) | 一种信贷资质评分模型的构建方法、装置和设备 | |
CN110490595B (zh) | 一种风险控制方法和装置 | |
CN110245684B (zh) | 数据处理方法、电子设备和介质 | |
CN111461730B (zh) | 一种风控方法、装置、***和电子设备 | |
CN113297462A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN113326064A (zh) | 划分业务逻辑模块的方法、电子设备及存储介质 | |
CN109063967B (zh) | 一种风控场景特征张量的处理方法、装置及电子设备 | |
CN111275071A (zh) | 预测模型训练、预测方法、装置及电子设备 | |
CN109245943B (zh) | 一种故障定位方法及装置 | |
CN116560794A (zh) | 虚拟机的异常处理方法和装置、介质和计算机设备 | |
CN116228439A (zh) | 基于知识图谱的风险识别方法、装置、设备以及存储介质 | |
CN110334909B (zh) | 一种风险管控方法、装置及设备 | |
US20210201395A1 (en) | Adaptive System for Detecting Abusive Accounts |
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 |