System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理,具体而言,涉及一种请求处理方法、装置、电子设备、存储介质及计算机程序。
技术介绍
1、在计算机网络中,为了解决突发网络流量引起的网络拥塞问题,使流量以比较均匀的速度向外发送。令牌桶算法是网络流量整形和速率限制中最常使用的一种算法,其可控制发送到网络上数据的数目,并允许突发数据的发送。
2、在多服务节点部署场景下,每当有一个请求到达时,服务都需要向令牌桶申请令牌,使得频繁的和令牌桶进行交互。在高并发场景下,频繁的网络交互会极大的增加令牌桶的压力,从而影响请求处理的稳定性。
技术实现思路
1、本申请实施例的目的在于提供一种请求处理方法、装置、电子设备、存储介质及计算机程序,用以在处理请求的过程中,减少与令牌桶的交互,从而降低令牌桶的访问压力,提高请求处理的稳定性。
2、第一方面,本申请实施例提供一种请求处理方法,该方法应用于服务节点;该方法包括:统计单位时间接收的请求的第一请求数量;若第一请求数量不小于第一预设阈值,则向令牌桶所在服务发送第一令牌发放请求,以使令牌桶所在服务基于第一令牌发放请求,按预设的第一令牌发放周期向服务节点分发预设数量的第一令牌;第一令牌发放请求用于表征服务节点向令牌桶所在服务被动获取令牌;基于第一令牌对第一请求数量不小于第一预设阈值后接收的请求进行处理。
3、本申请实施例中,服务器向令牌桶所在服务发送第一令牌发放请求后,令牌桶所在服务按照第一令牌发放周期向服务节点主动分发令牌,因此,并不是服务节点每接收一个
4、在一些实施例中,该方法还包括:在基于第一令牌对第一请求数量不小于第一预设阈值后接收的请求进行处理的过程中,若服务节点所在服务的任一服务节点接收的请求的第二请求数量不小于第二预设阈值,则向令牌桶所在服务发送第一令牌获取请求,以获得令牌桶所在服务发送的第二令牌;第二预设阈值大于第一预设阈值;第一令牌获取请求用于表征服务节点向令牌桶所在服务主动获取令牌;基于第二令牌对第二请求数量不小于第二预设阈值后接收的请求进行处理。
5、本申请实施例中,若服务节点所在服务的任一服务节点接收的请求的第二请求数量不小于第二预设阈值,表明服务节点所在服务进入流量高峰,此时需要将服务节点被动获取令牌的方式更改为主动获取令牌的方式,以此提高请求处理的稳定性。
6、在一些实施例中,在基于第二令牌对第二请求数量不小于第二预设阈值后接收的请求进行处理之后,该方法还包括:若服务节点所在服务中在预设连续时间段内存在:接收的请求的数量不小于第一预设阈值的目标服务节点,且服务节点所在服务的所有服务节点在预设连续时间段内接收的请求的数量都小于第二预设阈值,则服务节点向令牌桶所在服务发送第二令牌发放请求,以使令牌桶所在服务基于第二令牌发放请求,按预设的第二令牌发放周期向服务节点分发预设数量的第三令牌。
7、本申请实施例中,考虑到服务节点的流量情况在不断变化,但瞬时或短时间的变化不足以表征服务节点流量的整体情况,因此,若在连续的时间段内,所有服务节点的请求数量都小于第二预设阈值,且存在服务节点的请求数量不小于第一预设阈值时才更改令牌获取方式,以此提高请求处理的稳定性。
8、在一些实施例中,该方法还包括:在基于第一令牌对第一请求数量不小于第一预设阈值后接收的请求进行处理的过程中,若接收的请求的数量大于第一令牌的数量,则向令牌桶所在服务发送第二令牌获取请求,以获得令牌桶所在服务发送的第四令牌;第二令牌获取请求用于表征服务节点向令牌桶所在服务主动获取令牌;根据第四令牌对未处理的请求进行处理。
9、本申请实施例中,在预先分发的令牌不够处理接收的请求时,服务节点主动向令牌桶所在服务申请获得令牌,提高了请求处理的效率和稳定性。
10、在一些实施例中,在向令牌桶所在服务发送第一令牌获取请求之后,该方法还包括:接收令牌桶所在服务发送的等待标识,等待标识包括等待时间;等待标识在令牌桶中无令牌时向服务节点发送;按照等待时间向令牌桶所在服务重新发送第一令牌获取请求,若未获得第二令牌,则基于新接收的等待标识更新等待时间;基于更新后的等待时间向令牌桶所在服务重新发送第一令牌获取请求,直至获得第二令牌。
11、本申请实施例中,若未能第一次就获取到令牌,表明令牌桶中无令牌可用,也从侧面表明需要访问的目标服务的资源已达上限,此时服务节点的请求需要进行等待处理,以此提高请求处理的稳定性。
12、在一些实施例中,第一令牌的数量按照下式动态计算:,其中,表示第一令牌的数量,表示向下取整函数,表示令牌桶中剩余的总令牌数,表示百分比;表示服务节点所在服务的总服务节点数。
13、本申请实施例中,考虑到令牌桶中的令牌数量是在动态变化的,因此,通过公式动态计算第一令牌的数量,使得每一个第一令牌发放周期分发的第一令牌数可能是相同的,也可能是不同的,从而实现灵活获得不同数量的令牌,提高请求处理的灵活性。并且通过置百分比,使令牌桶中始终存在一定的存量令牌对突发的流量进行处理,从而提高请求处理的稳定性。
14、在一些实施例中,令牌桶所在服务基于第一令牌发放请求,按预设的第一令牌发放周期向服务节点分发预设数量的第一令牌,包括:判断令牌桶中的令牌数量与服务节点所在服务的总服务节点数之间的关系;若令牌数量大于总服务节点数,则执行向服务节点分发预设数量的第一令牌的步骤。
15、本申请实施例中,考虑到令牌数量可能不足以进行分发的情况,只有在令牌数量足以进行分发时,才执行分发令牌的步骤,因此,在一定程度上降低了令牌桶所在服务与服务节点的交互频率,减轻了对令牌桶的压力,进而提高了令牌桶所在服务稳定性,以此提高请求处理的稳定性。
16、在一些实施例中,该方法还包括:若服务节点所在服务的所有服务节点接收的请求的数量都小于第一预设阈值,则将请求发送给目标服务进行处理。
17、本申请实施例中,在流量较低时,不使用令牌,而是直接对请求进行处理,在降低服务节点与令牌桶所在服务交互频率的同时,提高了请求处理的效率。
18、第二方面,本申请实施例提供一种请求处理装置,该装置包括:统计模块,用于统计单位时间接收的请求的第一请求数量;令牌发放模块,用于若第一请求数量不小于第一预设阈值,则向令牌桶所在服务发送第一令牌发放请求,以使令牌桶所在服务基于第一令牌发放请求,按预设的第一令牌发放周期向服务节点分发预设数量的第一令牌;第一令牌发放请求用于表征服务节点向令牌桶所在服务被动获取令牌;处理模块,用于基于第一令牌对第一请求数量不小于第一预设阈值后接收的请求进行处理。
19、第三方面,本申请实施例提供一种电子设备,包括:本文档来自技高网...
【技术保护点】
1.一种请求处理方法,其特征在于,所述方法应用于服务节点;所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,在所述基于所述第二令牌对所述第二请求数量不小于所述第二预设阈值后接收的请求进行处理之后,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求2-3任一所述的方法,其特征在于,在向所述令牌桶所在服务发送第一令牌获取请求之后,所述方法还包括:
6.根据权利要求1-4任一所述的方法,其特征在于,所述第一令牌的数量按照下式动态计算:
7.根据权利要求1-4任一所述的方法,其特征在于,所述令牌桶所在服务基于所述第一令牌发放请求,按预设的第一令牌发放周期向所述服务节点分发预设数量的第一令牌,包括:
8.根据权利要求1-4任一所述的方法,其特征在于,所述方法还包括:
9.一种请求处理装置,其特征在于,所述装置包括:
10.一种电子设备,其特征在于,包括:处理器和存储器,所述
11.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至8任一所述的方法。
12.一种计算机程序产品,其特征在于,包括:计算机程序,所述计算机程序被处理器运行时执行如权利要求1至8任一所述的方法。
...【技术特征摘要】
1.一种请求处理方法,其特征在于,所述方法应用于服务节点;所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,在所述基于所述第二令牌对所述第二请求数量不小于所述第二预设阈值后接收的请求进行处理之后,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求2-3任一所述的方法,其特征在于,在向所述令牌桶所在服务发送第一令牌获取请求之后,所述方法还包括:
6.根据权利要求1-4任一所述的方法,其特征在于,所述第一令牌的数量按照下式动态计算:
7.根据权利要求1-4任一所述的方法,其特征在于,所述令牌桶所在服务基于所述第一令...
【专利技术属性】
技术研发人员:文严,李雪梅,王发修,高斌,
申请(专利权)人:成都新希望金融信息有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。