[发明专利]基于redis的服务动态降级方法、装置、服务器及存储介质有效
申请号: | 201811043609.1 | 申请日: | 2018-09-07 |
公开(公告)号: | CN109257294B | 公开(公告)日: | 2022-04-12 |
发明(设计)人: | 张振铎 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | H04L47/10 | 分类号: | H04L47/10;H04L47/20;H04L67/51 |
代理公司: | 武汉河山金堂专利事务所(普通合伙) 42212 | 代理人: | 胡清堂;陈懿 |
地址: | 430073 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 redis 服务 动态 降级 方法 装置 服务器 存储 介质 | ||
1.一种基于redis的服务动态降级方法,其特征在于,包括如下步骤:
S1、预设监控周期,在redis数据库中为每个服务接口建立一个string类型的key,用所述string类型的key记录各个服务接口在所述预设监控周期内的访问量;
S2、为每个服务接口设置在所述预设监控周期内的请求量阈值,所述请求量阈值的计算方式为:统计在指定的天数内,每个接口平均每天响应时间在设定参考时间内的请求数,继而计算各个服务接口在所述预设监控周期内的请求数,根据所述预设监控周期内的请求数设置请求量阈值;
S3、根据所述访问量及所述请求量阈值计算各个服务接口的请求拒绝率;
S4、根据所述请求拒绝率对各个服务接口做对应的服务动态降级策略处理;
其中,所述步骤S4具体包括如下内容:
对单个服务接口,每次请求到达时,都随机生成一个取值为0到1之间且指定精度的浮点数,所述指定精度与所述请求拒绝率保留的指定小数位数数值相同;
对单个服务接口,若所述请求拒绝率小于等于零,摒弃服务降级策略;若所述请求拒绝率大于零,比较所述请求拒绝率与所述浮点数:
若所述请求拒绝率大于所述浮点数,触发服务降级策略,直接返回默认值;
若所述请求拒绝率小于等于所述浮点数,则正常进行业务请求的处理。
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=(Mi-Ni)/Mi
其中,Ri保留指定小数位数,并将Ri保存至redis数据库的一个hash类型的拒绝率key中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811043609.1/1.html,转载请声明来源钻瓜专利网。