本申请涉及业务限流的领域,尤其涉及交互式限流的方法和系统。
背景技术:
1、在当前万物互联的各种场景中,经常存在多个请求方不定期地向后端系统传送业务处理请求以由后端系统处理的情形。在这些情形/场景中,单位时间内传送给后端系统的业务处理请求过少,将使得后端系统“空闲”,降低其资源使用率;单位时间内传送给后端系统的业务处理请求过多,将使后端系统“过载”并影响其执行效率,同时请求方需要重传之前所发送的业务处理请求,造成网络资源、请求方的处理资源等的浪费并提高了时间成本。
2、因此,高效、智能地确定业务处理请求的tps,保证请求方与后端系统这两者的资源使用率的合理最大化是很重要的。
技术实现思路
1、本说明书的一个或多个实施例通过以下技术方案来实现其上述目的。
2、根据本公开的第一方面,提供了一种交互式限流的方法,包括:根据tps来发送业务处理请求以供服务器处理;接收对业务处理请求的处理结果以及所述服务器的负载;在确定所述服务器的负载不在服务器负载范围内的情况下,自动调整tps;以及根据经调整的tps来发送业务处理请求以供所述服务器处理。
3、根据一实施例,自动调整tps包括:在所述服务器的负载低于所述服务器负载范围的下限的情况下,将tps提升第一值;以及在所述服务器的负载高于所述服务器负载范围的上限的情况下,将tps降低第二值。
4、根据另一实施例,自动调整tps包括:将第一计数器和第二计数器初始化成零;在所述服务器的负载低于所述服务器负载范围的下限的情况下,将所述第一计数器加一;在所述服务器的负载高于所述服务器负载范围的上限的情况下,将所述第二计数器加一;定期读取所述第一计数器的值和所述第二计数器的值并在所述读取之后将所述第一计数器和所述第二计数器重置成零;在所读取的所述第一计数器的值和所述第二计数器的值两者都等于零的情况下,维持tps不变;在所读取的所述第一计数器的值大于零且所读取的所述第二计数器的值等于零的情况下,将tps提升第一值;以及在所读取的所述第二计数器的值大于零的情况下的情况下,将tps降低第二值。
5、根据又一实施例,自动调整tps还包括在所读取的所述第一计数器的值和所述第二计数器的值两者都大于零的情况下,发出警报和/或通知服务器调整所述服务器负载范围。
6、根据又一实施例,所述第一值和/或所述第二值是固定值或者与所述服务器的负载同所述服务器负载范围的下限或上限之差成正比。
7、根据又一实施例,所述服务器负载范围是与所述服务器预先协商的或从所述服务器接收到的。
8、根据又一实施例,所述服务器的负载包括网络带宽使用率、内存使用率、cpu使用率、预定时间内cpu正在处理以及等待cpu处理的进程数中的至少一者。
9、根据本公开的第二方面,提供了一种交互式限流的系统,包括:传送模块,所述传送模块被配置成根据tps来发送业务处理请求以供服务器处理;接收模块,所述接收模块被配置成接收对业务处理请求的处理结果以及所述服务器的负载;以及tps调整模块,所述tps调整模块被配置成在确定所述服务器的负载不在服务器负载范围内的情况下,自动调整tps,其中所述传送模块还被配置成根据经调整的tps来发送业务处理请求以供所述服务器处理。
10、根据一实施例,自动调整tps包括:在所述服务器的负载低于所述服务器负载范围的下限的情况下,将tps提升第一值;以及在所述服务器的负载高于所述服务器负载范围的上限的情况下,将tps降低第二值。
11、根据又一实施例,自动调整tps包括:将第一计数器和第二计数器初始化成零;在所述服务器的负载低于所述服务器负载范围的下限的情况下,将所述第一计数器加一;在所述服务器的负载高于所述服务器负载范围的上限的情况下,将所述第二计数器加一;定期读取所述第一计数器的值和所述第二计数器的值并在所述读取之后将所述第一计数器和所述第二计数器重置成零;在所读取的所述第一计数器的值和所述第二计数器的值两者都等于零的情况下,维持tps不变;在所读取的所述第一计数器的值大于零且所读取的所述第二计数器的值等于零的情况下,将tps提升第一值;以及在所读取的所述第二计数器的值大于零的情况下的情况下,将tps降低第二值。
12、根据又一实施例,自动调整tps还包括在所读取的所述第一计数器的值和所述第二计数器的值两者都大于零的情况下,发出警报和/或通知服务器调整所述服务器负载范围。
13、根据又一实施例,所述第一值和/或所述第二值是固定值或者与所述服务器的负载同所述服务器负载范围的下限或上限之差成正比。
14、根据又一实施例,所述服务器的负载包括网络带宽使用率、内存使用率、cpu使用率、预定时间内cpu正在处理以及等待cpu处理的进程数中的至少一者。
15、根据本公开的第三方面,提供了一种交互式限流的系统,包括:请求端以及服务端,其中所述请求端被配置成根据tps来发送业务处理请求以供所述服务端处理,并且所述服务端被配置成根据接收到的业务处理请求来处理业务并将处理结果和服务器负载返回给所述请求端,其中所述请求端还被配置成:在接收到来自所述服务端的处理结果以及服务器负载之后,确定所述服务器负载不在服务器负载范围内,自动调整tps,以及根据经调整的tps来发送业务处理请求。
16、根据本公开的第四方面,提供了一种交互式限流的装置,包括:处理器;以及与所述处理器耦合的存储器,所述存储器存储有处理器可执行指令,所述指令在被所述处理器执行时使所述处理器执行根据本公开的第一方面所述的方法。
17、根据本公开的第五方面,提供了一种非瞬态处理器可读存储介质,包括处理器可执行指令,所述指令在被所述处理器执行时使所述处理器执行根据本公开的第一方面所述的方法。
18、本说明书一个或多个实施例能够实现以下技术效果中的一者或多者:
19、本公开的方法和系统通过增加请求端或服务端系统之间的自动交互来自动调整tps,无需人工干预tps的调整和/或设定;服务端的负载会被反馈给请求端,当服务端的负载降低到负载范围的下限以下时,请求端会调升tps,提升服务端的资源使用率;由于是通过控制请求端的tps来达到限流的目的,一旦超过设置的负载范围,tps会被降到合理的值,会大大减少因为服务端限流而导致业务处理请求失败而需要重试的情况。本公开的方法和系统提供了新颖的交互式的限流,通过增加请求端和服务端之间的自动交互,来达到根据服务端的负载自动调整tps,实现智能限流。
1.一种交互式限流的方法,包括:
2.根据权利要求1所述的方法,自动调整tps包括:
3.根据权利要求1所述的方法,自动调整tps包括:
4.根据权利要求3所述的方法,自动调整tps还包括在所读取的所述第一计数器的值和所述第二计数器的值两者都大于零的情况下,发出警报和/或通知服务器调整所述服务器负载范围。
5.根据权利要求2-4中的任一项所述的方法,所述第一值和/或所述第二值是固定值或者与所述服务器的负载同所述服务器负载范围的下限或上限之差成正比。
6.根据权利要求1所述的方法,所述服务器负载范围是与所述服务器预先协商的或从所述服务器接收到的。
7.根据权利要求1所述的方法,所述服务器的负载包括网络带宽使用率、内存使用率、cpu使用率、预定时间内cpu正在处理以及等待cpu处理的进程数中的至少一者。
8.一种交互式限流的系统,包括:
9.根据权利要求8所述的系统,自动调整tps包括:
10.根据权利要求8所述的系统,自动调整tps包括:
11.根据权利要求10所述的系统,自动调整tps还包括在所读取的所述第一计数器的值和所述第二计数器的值两者都大于零的情况下,发出警报和/或通知服务器调整所述服务器负载范围。
12.根据权利要求9-11中的任一项所述的系统,所述第一值和/或所述第二值是固定值或者与所述服务器的负载同所述服务器负载范围的下限或上限之差成正比。
13.根据权利要求8所述的系统,所述服务器的负载包括网络带宽使用率、内存使用率、cpu使用率、预定时间内cpu正在处理以及等待cpu处理的进程数中的至少一者。
14.一种交互式限流的系统,包括:
15.一种交互式限流的装置,包括:
16.一种非瞬态处理器可读存储介质,包括处理器可执行指令,所述指令在被所述处理器执行时使所述处理器执行如权利要求1-7中任一项所述的方法。