请求处理方法、装置、电子设备、存储介质及计算机程序与流程
- 国知局
- 2024-08-05 11:48:22
本技术涉及数据处理,具体而言,涉及一种请求处理方法、装置、电子设备、存储介质及计算机程序。
背景技术:
1、在计算机网络中,为了解决突发网络流量引起的网络拥塞问题,使流量以比较均匀的速度向外发送。令牌桶算法是网络流量整形和速率限制中最常使用的一种算法,其可控制发送到网络上数据的数目,并允许突发数据的发送。
2、在多服务节点部署场景下,每当有一个请求到达时,服务都需要向令牌桶申请令牌,使得频繁的和令牌桶进行交互。在高并发场景下,频繁的网络交互会极大的增加令牌桶的压力,从而影响请求处理的稳定性。
技术实现思路
1、本技术实施例的目的在于提供一种请求处理方法、装置、电子设备、存储介质及计算机程序,用以在处理请求的过程中,减少与令牌桶的交互,从而降低令牌桶的访问压力,提高请求处理的稳定性。
2、第一方面,本技术实施例提供一种请求处理方法,该方法应用于服务节点;该方法包括:统计单位时间接收的请求的第一请求数量;若第一请求数量不小于第一预设阈值,则向令牌桶所在服务发送第一令牌发放请求,以使令牌桶所在服务基于第一令牌发放请求,按预设的第一令牌发放周期向服务节点分发预设数量的第一令牌;第一令牌发放请求用于表征服务节点向令牌桶所在服务被动获取令牌;基于第一令牌对第一请求数量不小于第一预设阈值后接收的请求进行处理。
3、本技术实施例中,服务器向令牌桶所在服务发送第一令牌发放请求后,令牌桶所在服务按照第一令牌发放周期向服务节点主动分发令牌,因此,并不是服务节点每接收一个请求,就向令牌桶所在服务申请一次令牌向目标服务进行访问,降低了服务节点与令牌桶所在服务交互的频率,以此降低令牌桶所在服务的访问压力。并且,分发的第一令牌的数量在不同的令牌分发周期内可能是不同的,不仅实现了通过令牌对访问目标服务的请求进行控制,还提高了请求处理的稳定性。
4、在一些实施例中,该方法还包括:在基于第一令牌对第一请求数量不小于第一预设阈值后接收的请求进行处理的过程中,若服务节点所在服务的任一服务节点接收的请求的第二请求数量不小于第二预设阈值,则向令牌桶所在服务发送第一令牌获取请求,以获得令牌桶所在服务发送的第二令牌;第二预设阈值大于第一预设阈值;第一令牌获取请求用于表征服务节点向令牌桶所在服务主动获取令牌;基于第二令牌对第二请求数量不小于第二预设阈值后接收的请求进行处理。
5、本技术实施例中,若服务节点所在服务的任一服务节点接收的请求的第二请求数量不小于第二预设阈值,表明服务节点所在服务进入流量高峰,此时需要将服务节点被动获取令牌的方式更改为主动获取令牌的方式,以此提高请求处理的稳定性。
6、在一些实施例中,在基于第二令牌对第二请求数量不小于第二预设阈值后接收的请求进行处理之后,该方法还包括:若服务节点所在服务中在预设连续时间段内存在:接收的请求的数量不小于第一预设阈值的目标服务节点,且服务节点所在服务的所有服务节点在预设连续时间段内接收的请求的数量都小于第二预设阈值,则服务节点向令牌桶所在服务发送第二令牌发放请求,以使令牌桶所在服务基于第二令牌发放请求,按预设的第二令牌发放周期向服务节点分发预设数量的第三令牌。
7、本技术实施例中,考虑到服务节点的流量情况在不断变化,但瞬时或短时间的变化不足以表征服务节点流量的整体情况,因此,若在连续的时间段内,所有服务节点的请求数量都小于第二预设阈值,且存在服务节点的请求数量不小于第一预设阈值时才更改令牌获取方式,以此提高请求处理的稳定性。
8、在一些实施例中,该方法还包括:在基于第一令牌对第一请求数量不小于第一预设阈值后接收的请求进行处理的过程中,若接收的请求的数量大于第一令牌的数量,则向令牌桶所在服务发送第二令牌获取请求,以获得令牌桶所在服务发送的第四令牌;第二令牌获取请求用于表征服务节点向令牌桶所在服务主动获取令牌;根据第四令牌对未处理的请求进行处理。
9、本技术实施例中,在预先分发的令牌不够处理接收的请求时,服务节点主动向令牌桶所在服务申请获得令牌,提高了请求处理的效率和稳定性。
10、在一些实施例中,在向令牌桶所在服务发送第一令牌获取请求之后,该方法还包括:接收令牌桶所在服务发送的等待标识,等待标识包括等待时间;等待标识在令牌桶中无令牌时向服务节点发送;按照等待时间向令牌桶所在服务重新发送第一令牌获取请求,若未获得第二令牌,则基于新接收的等待标识更新等待时间;基于更新后的等待时间向令牌桶所在服务重新发送第一令牌获取请求,直至获得第二令牌。
11、本技术实施例中,若未能第一次就获取到令牌,表明令牌桶中无令牌可用,也从侧面表明需要访问的目标服务的资源已达上限,此时服务节点的请求需要进行等待处理,以此提高请求处理的稳定性。
12、在一些实施例中,第一令牌的数量按照下式动态计算:,其中,表示第一令牌的数量,表示向下取整函数,表示令牌桶中剩余的总令牌数,表示百分比;表示服务节点所在服务的总服务节点数。
13、本技术实施例中,考虑到令牌桶中的令牌数量是在动态变化的,因此,通过公式动态计算第一令牌的数量,使得每一个第一令牌发放周期分发的第一令牌数可能是相同的,也可能是不同的,从而实现灵活获得不同数量的令牌,提高请求处理的灵活性。并且通过置百分比,使令牌桶中始终存在一定的存量令牌对突发的流量进行处理,从而提高请求处理的稳定性。
14、在一些实施例中,令牌桶所在服务基于第一令牌发放请求,按预设的第一令牌发放周期向服务节点分发预设数量的第一令牌,包括:判断令牌桶中的令牌数量与服务节点所在服务的总服务节点数之间的关系;若令牌数量大于总服务节点数,则执行向服务节点分发预设数量的第一令牌的步骤。
15、本技术实施例中,考虑到令牌数量可能不足以进行分发的情况,只有在令牌数量足以进行分发时,才执行分发令牌的步骤,因此,在一定程度上降低了令牌桶所在服务与服务节点的交互频率,减轻了对令牌桶的压力,进而提高了令牌桶所在服务稳定性,以此提高请求处理的稳定性。
16、在一些实施例中,该方法还包括:若服务节点所在服务的所有服务节点接收的请求的数量都小于第一预设阈值,则将请求发送给目标服务进行处理。
17、本技术实施例中,在流量较低时,不使用令牌,而是直接对请求进行处理,在降低服务节点与令牌桶所在服务交互频率的同时,提高了请求处理的效率。
18、第二方面,本技术实施例提供一种请求处理装置,该装置包括:统计模块,用于统计单位时间接收的请求的第一请求数量;令牌发放模块,用于若第一请求数量不小于第一预设阈值,则向令牌桶所在服务发送第一令牌发放请求,以使令牌桶所在服务基于第一令牌发放请求,按预设的第一令牌发放周期向服务节点分发预设数量的第一令牌;第一令牌发放请求用于表征服务节点向令牌桶所在服务被动获取令牌;处理模块,用于基于第一令牌对第一请求数量不小于第一预设阈值后接收的请求进行处理。
19、第三方面,本技术实施例提供一种电子设备,包括:处理器、存储器、存储介质和总线,其中,所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的方法步骤。
20、第四方面,本技术实施例提供一种非暂态计算机可读存储介质,包括:所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的方法步骤。
21、第五方面,本技术实施例提供一种计算机程序产品,包括:计算机程序,所述计算机程序被处理器运行时执行第一方面的方法步骤。
22、本技术的有益效果:
23、本技术实施例中,服务器向令牌桶所在服务发送第一令牌发放请求后,令牌桶所在服务按照第一令牌发放周期向服务节点主动分发令牌,因此,并不是服务节点每接收一个请求,就向令牌桶所在服务申请一次令牌向目标服务进行访问,降低了服务节点与令牌桶所在服务交互的频率,以此降低令牌桶所在服务的访问压力。并且,分发的第一令牌的数量在不同的令牌分发周期内可能是不同的,不仅实现了通过令牌对访问目标服务的请求进行控制,还提高了请求处理的稳定性。并且,若服务节点所在服务的任一服务节点接收的请求的第二请求数量不小于第二预设阈值,表明服务节点所在服务进入流量高峰,此时需要将服务节点被动获取令牌的方式更改为主动获取令牌的方式,以此提高请求处理的稳定性。
24、本技术的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术实施例了解。
本文地址:https://www.jishuxx.com/zhuanli/20240802/259502.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。