1.一种用于限制请求频率的方法,其特征在于,应用在直播平台上,所述方法包括:获取用户发送请求的第一时间戳及所述用户的用户标识;
判断限制请求频率的熔断机制是否启动,若确定所述熔断机制处于关闭状态时,确定所述第一时间戳的第一时间槽位slot,所述第一slot的数量包括多个,每个所述第一slot对应不同的时间段;
根据所述第一时间戳对应的第一slot及所述用户标识为所述用户在每个所述第一slot中生成唯一的第一发送请求标识key值,并将所述第一key值存储至预先建立的缓存器中;
统计第一总时间段内所述第一key值的数量,所述第一总时间段为每个所述第一slot对应的时间段的时间总和;所述第一key值的数量根据所述第一slot内的发送的请求的成功状态确定;
根据所述第一key值的数量判断所述用户在所述第一总时间段内发送的请求是否全部发送成功,若全部发送成功,则继续判断所述第一key值的数量是否超出预设的第一阈值,若所述第一key值的数量超出所述预设的第一阈值,则拒绝所述用户当前发送的请求;其中,若所述熔断机制为开启状态时,确定当前使用的是单机请求频率的限制机制;若确定所述熔断机制处于关闭状态时,确定当前使用的是基于全局统计的请求频率的限制机制。
2.如权利要求1所述的方法,其特征在于,确定所述熔断机制处于启动状态时,包括:判断所述熔断机制的启动时间是否超出预设的启动时间,若确定所述熔断机制的启动时间确超出了预设的启动时间,则允许发送预设数量的请求,所述预设数量的请求的多个第二时间戳对应同一个第二slot;
确定多个所述第二时间戳对应的第二slot;
根据所述第二slot及当前用户的用户标识为所述当前用户在所述第二slot中生成第二key值;
根据预设的第二总时间段内所述第二key值的数量,判断所述当前用户在所述第二总时间段内发送的请求是否全部发送成功,若全部发送成功,则关闭所述熔断机制,并允许用户发送当前请求。
3.如权利要求1所述的方法,其特征在于,根据所述第一key值的数量判断所述用户在所述第一总时间段内发送的请求是否全部发送成功,若发送失败,包括:统计所述第一总时间段内的发送失败率及连续失败的次数;
当确定所述发送失败率超出预设的发送失败率且所述连续失败的次数超出预设的第二阈值时,启动所述熔断机制,并基于令牌桶算法或漏桶算法统计所述用户在预设的第三总时间段内发送请求的总次数;
判断所述用户在预设的第三总时间段内发送请求的总次数是否超出了预设的第三阈值,若超出,则拒绝所述用户发送的请求。
4.如权利要求2所述的方法,其特征在于,判断所述当前用户在所述第二总时间段内发送的请求是否全部发送成功,若发送失败,包括:基于令牌桶算法或漏桶算法统计所述用户在预设的第四总时间段内发送请求的总次数;
判断所述用户在预设的第四总时间段内发送请求的总次数是否超出了预设的第四阈值,若超出,则拒绝所述用户发送的请求。
5.一种用于限制请求频率的装置,其特征在于,所述装置包括:
获取单元,用于获取用户发送请求的第一时间戳及所述用户的用户标识;
第一判断单元,用于判断限制请求频率的熔断机制是否启动,若确定所述熔断机制处于关闭状态时,确定所述第一时间戳的第一时间槽位slot,所述第一slot包括多个,每个所述第一slot对应不同的时间段;
生成单元,用于根据所述第一时间戳对应的第一slot及所述用户标识为所述用户在每个所述第一slot中生成唯一的第一发送请求标识key值,并将所述第一key值存储至预先建立的缓存器中;
统计单元,用于统计第一总时间段内所述第一key值的数量,所述第一总时间段为每个所述第一slot对应的时间段的时间总和;所述第一key值的数量根据所述第一slot内的发送的请求的成功状态确定;
第二判断单元,用于根据所述第一key值的数量判断所述用户在所述第一总时间段内发送的请求是否全部发送成功,若全部发送成功,则继续判断所述第一key值的数量是否超出预设的第一阈值,若所述第一key值的数量超出所述预设的第一阈值,则拒绝所述用户当前发送的请求;其中,若所述熔断机制为开启状态时,确定当前使用的是单机请求频率的限制机制;若确定所述熔断机制处于关闭状态时,确定当前使用的是基于全局统计的请求频率的限制机制。
6.如权利要求5所述的装置,其特征在于,所述第一判断单元还用于:在确定所述熔断机制启动时,判断所述熔断机制的启动时间是否超出预设的启动时间,若确定所述熔断机制的启动时间确超出了预设的启动时间,则允许发送预设数量的请求,所述预设数量的请求的多个第二时间戳对应同一个第二slot;并确定多个所述第二时间戳对应的第二slot;
所述生成单元,还用于根据所述第二slot及当前用户的用户标识为所述当前用户在所述第二slot中生成第二key值;
所述第二判断单元,还用于根据预设的第二总时间段内所述第二key值的数量,判断所述当前用户在所述第二总时间段内发送的请求是否全部发送成功,若全部发送成功,则关闭所述熔断机制,并允许用户发送的当前请求。
7.如权利要求5所述的装置,其特征在于,所述第二判断单元具体用于:
在所述用户在所述第一总时间段内发送请求失败时,统计所述第一总时间段内的发送失败率及连续失败的次数;
当确定所述发送失败率超出预设的发送失败率且所述连续失败的次数超出预设的第二阈值时,启动所述熔断机制,并基于令牌桶算法或漏桶算法统计所述用户在预设的第三总时间段内发送请求的总次数;
判断所述用户在预设的第三总时间段内发送请求的总次数是否超出了预设的第三阈值,若超出,则拒绝所述用户发送的请求。
8.如权利要求6所述的装置,其特征在于,所述第二判断单元用于:
在所述当前用户在所述第二总时间段内发送的请求发送失败时,基于令牌桶算法或漏桶算法统计所述用户在预设的第四总时间段内发送请求的总次数;
判断所述用户在预设的第四总时间段内发送请求的总次数是否超出了预设的第四阈值,若超出,则拒绝所述用户发送的请求。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时能够执行如权利要求1至4任一所述的方法。
10.一种限制请求频率的计算机设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中,
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至4任一所述的方法。