利索能及
我要发布
收藏
专利号: 2018110436091
申请人: 武汉斗鱼网络科技有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2024-09-26
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于redis的服务动态降级方法,其特征在于,包括如下步骤:S1、预设监控周期,在redis数据库中为每个服务接口建立一个string类型的key,用所述string类型的key记录各个服务接口在所述预设监控周期内的访问量;

S2、为每个服务接口设置在所述预设监控周期内的请求量阈值;

S3、根据所述访问量及所述请求量阈值计算各个服务接口的请求拒绝率;

S4、根据所述请求拒绝率对各个服务接口做对应的服务动态降级策略处理。

2.根据权利要求1所述基于redis的服务动态降级方法,其特性在于,步骤S1中所述用所述string类型的key记录每个服务接口在所述预设监控周期内的访问量的具体过程为:将所述string类型的key的过期时间设置为所述预设监控周期,单个服务接口每接收到一次用户请求都将所述服务接口对应的所述string类型key的键值加1。

3.根据权利要求1所述基于redis的服务动态降级方法,其特性在于,步骤S2中所述请求量阈值,是基于当前的服务资源和服务接口的具体处理性能综合指定,所述请求量阈值的计算方式为:统计在指定的天数内,每个接口平均每天响应时间在设定参考时间内的请求数,继而计算各个服务接口在所述预设监控周期内的请求数,根据在所述预设监控周期内的请求数设置请求量阈值;将所述请求量阈值以hash类型的key存储在redis数据库中,并且可实时修改。

4.根据权利要求1所述基于redis的服务动态降级方法,其特性在于,步骤S3中所述根据所述访问量及所述请求量阈值计算各个服务接口的请求拒绝率之前还包括:按所述预设监控周期扫描各个接口中所述string类型的key,获取各个服务接口在当前监控周期内的访问量,同时查询各个服务接口设置的请求量阈值。

5.根据权利要求1所述基于redis的服务动态降级方法,其特性在于,所述步骤S3的具体过程为:设服务接口总数为n,i=1,2,…,n,第i个服务接口在当前监控周期内的访问量为Mi,所述服务接口设置的请求量阈值为Ni,则第i个服务接口的请求拒绝率Ri为:其中,Ri保留指定小数位数,并将Ri保存至redis数据库的一个hash类型的拒绝率key中。

6.根据权利要求5所述基于redis的服务动态降级方法,其特性在于,步骤S4中所述根据所述请求拒绝率对各个服务接口做对应的服务动态降级策略处理之前还包括:对单个服务接口,每次请求到达时,都随机生成一个取值为0到1之间且指定精度的浮点数,所述指定精度与所述请求拒绝率保留的指定小数位数数值相同。

7.根据权利要求6所述基于redis的服务动态降级方法,其特性在于,所述步骤S4的具体过程为:对单个服务接口,若所述请求拒绝率小于等于零,摒弃服务降级策略;若所述请求拒绝率大于零,比较所述请求拒绝率与所述浮点数:若所述请求拒绝率大于所述浮点数,触发服务降级策略,直接返回默认值;

若所述请求拒绝率小于等于所述浮点数,则正常进行业务请求的处理。

8.一种基于redis的服务动态降级装置,其特征在于,包括以下内容:记录模块:预设监控周期,在redis数据库中为每个服务接口建立一个string类型的key,用所述string类型的key记录各个服务接口在所述预设监控周期内的访问量;

设置模块:为每个服务接口设置在所述预设监控周期内的请求量阈值;

计算模块:根据所述访问量及所述请求量阈值计算各个服务接口的请求拒绝率;

处理模块:根据所述请求拒绝率对各个服务接口做对应的服务动态降级策略处理。

9.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述基于redis的服务动态降级方法的步骤。

10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述基于redis的服务动态降级方法的步骤。