本申请涉及数据网络,特别是涉及一种限流方法、装置、设备、介质及产品。
背景技术:
1、随着互联网技术的发展,网络服务的应用越来越普遍,然而,在现有的数据网络中,由于报文流量的突发性,常常会导致网络拥塞,在大流量高并发系统中,一般通过缓存、限流和降级来控制流量。其中,限流是指限制到达系统的并发请求数,即单位时间内到达系统的请求数,使得系统能够正常的处理部分用户的请求,来保证系统的稳定性。
2、然而,现有技术中,通常通过多路复用的限流方式,将请求压入缓存队列,运用多条路对请求进行处理。但是在高负载场景下,这个时候每条路无法及时处理请求,用户进行大量重试,导致队列中的内容取出时很多都已经失效,无法响应用户请求。
技术实现思路
1、本申请提供的一种限流方法、装置、设备、介质及产品,能够解决用户请求过多的情况下,无法处理用户请求的问题。
2、第一方面,本申请实施例提供一种限流方法,方法包括:
3、根据第一时间段,以及第一时间段内预设添加速率,确定向令牌桶中添加目标数量的令牌,第一时间段为上一次向令牌桶添加令牌的时间和当前时间之间的时间差;
4、向令牌桶中添加目标数量的令牌;
5、在接收到第一用户请求的情况下,从令牌桶中获取令牌;
6、在从令牌桶中获取到第一令牌的情况下,对第一用户请求进行处理;
7、在从令牌桶中未获取到第一令牌的情况下,不对第一用户请求进行处理。
8、第二方面,本申请提供一种限流装置,该装置包括:
9、第一确定模块,用于根据第一时间段,以及第一时间段内预设添加速率,确定向令牌桶中添加目标数量的令牌,第一时间段为上一次向令牌桶添加令牌的时间和当前时间之间的时间差;
10、添加模块,用于向令牌桶中添加目标数量的令牌;
11、第一获取模块,用于在接收到第一用户请求的情况下,从令牌桶中获取令牌;
12、第一处理模块,用于在从令牌桶中获取到第一令牌的情况下,对第一用户请求进行处理;
13、第二处理模块,用于在从令牌桶中未获取到第一令牌的情况下,不对第一用户请求进行处理。
14、第三方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器以及存储有计算机程序指令的存储器;
15、处理器执行计算机程序指令时实现如第一方面中任意一个实施例中的限流方法。
16、第四方面,本申请实施例提供了一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面中任意一个实施例中的限流方法。
17、第五方面,本申请实施例提供了一种计算机程序产品,计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备执行实现如上述第一方面中任意一个实施例中的限流方法。
18、在本申请实施例提供的一种限流方法、装置、设备、介质及产品中,通过根据第一时间段,以及第一时间段内预设添加速率,确定向令牌桶中添加目标数量的令牌,其中,第一时间段为上一次向令牌桶添加令牌的时间和当前时间之间的时间差;随后向令牌桶中添加目标数量的令牌;然后在接收到第一用户请求的情况下,从令牌桶中获取令牌;随后在从令牌桶中获取到第一令牌的情况下,对第一用户请求进行处理;然后在从令牌桶中未获取到第一令牌的情况下,不对第一用户请求进行处理。通过上述方式,能够通过每次添加令牌的时间,确定每次接收用户请求时添加的令牌数量,即在每次接收用户请求时,就向令牌桶中添加目标数量的令牌,在遇到流量突发的情况下,由于令牌桶在接收请求时会添加令牌,即使令牌添加的速度小于用户请求获取令牌的速度,仍然会有部分用户请求能够从令牌桶中获取到令牌,这部分获取到令牌的用户请求仍旧可以得到处理,可有效解决用户请求过多的情况下,无法处理所有用户请求的问题。
1.一种限流方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据第一时间段,以及所述第一时间段内预设速率,确定向令牌桶中添加目标数量的令牌之前,包括:
3.根据权利要求2所述的方法,其特征在于,所述在接收到第二用户请求的情况下,从令牌桶中获取令牌,包括:
4.根据权利要求1所述的方法,其特征在于,所述向所述令牌桶中添加所述目标数量的令牌,包括:
5.根据权利要求3所述的方法,其特征在于,所述在接收到第一用户请求的情况下,从所述令牌桶中获取令牌,包括:
6.一种限流装置,其特征在于,所述装置包括:
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
8.一种电子设备,其特征在于,所述设备包括:处理器以及存储有计算机程序指令的存储器;
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-5任意一项所述的限流方法。
10.一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如权利要求1-5任意一项所述的限流方法。