基于redis的服务动态降级方法、装置、服务器及存储介质制造方法及图纸

技术编号:20181762 阅读:20 留言:0更新日期:2019-01-23 02:03
本发明专利技术公开一种基于redis的服务动态降级方法,包括如下步骤:在redis中为每个服务接口建立一个key来记录在预设监控周期内的访问量;为每个服务接口设置请求量阈值;计算各个服务接口的请求拒绝率;根据所述请求拒绝率对各个服务接口做对应的服务动态降级策略处理。本发明专利技术还提出一种基于redis的服务动态降级装置,包括记录模块、设置模块、计算模块、处理模块。本发明专利技术提出一种服务器,其处理器执行所述方法的步骤。本发明专利技术还提供一种计算机可读存储介质,其计算机程序执行所述方法的步骤。本发明专利技术通过redis结合服务接口级别的实时访问量,制定出灵活动态的服务降级策略,保证了在流量剧增时服务和接口的健康,提高系统健壮性。本发明专利技术属于软件工程领域。

Redis-based dynamic service degradation methods, devices, servers and storage media

The invention discloses a redis-based dynamic service degradation method, which includes the following steps: establishing a key for each service interface in redis to record the visits during the preset monitoring period; setting a request threshold for each service interface; calculating the request rejection rate for each service interface; and making corresponding dynamic service degradation policies for each service interface according to the request rejection rate. Slightly dealt with. The invention also proposes a redis-based dynamic service degrading device, which includes a recording module, a setting module, a computing module and a processing module. The invention provides a server whose processor executes the steps of the method. The invention also provides a computer readable storage medium whose computer program executes the steps of the method. The invention formulates a flexible and dynamic service degradation strategy by combining redis with real-time access at the service interface level, ensures the health of the service and interface when the traffic increases sharply, and improves the robustness of the system. The invention belongs to the field of software engineering.

【技术实现步骤摘要】
基于redis的服务动态降级方法、装置、服务器及存储介质
本专利技术公开了一种基于redis的服务动态降级方法、装置、服务器及存储介质,属于软件工程领域。
技术介绍
软件工程领域,常有流量的大范围波动,如电商和游戏行业,在一些商业活动的时候,有大量请求和流量同时涌入,形成流量波峰,流量的剧增对服务器和应用带来巨大冲击,如果不加处理,可能造成服务挂掉,服务器宕机等情况,造成应用不可使用。常用的服务接口的流量控制策略有分流、降级、限流等。比如事先预警大流量,并提前扩容服务器,增加机器应对流量剧增,但是这种方法成本较高,开销较大,增加了运维成本。还有的系统采用配置化的限流策略,让用户请求排队处理或直接返回错误或者默认数据,这种方法很好的应对了流量剧增,但是需要人工配置并及时调整,如果调整不及时会带来不可预料的问题。
技术实现思路
本专利技术公开了一种基于redis的服务动态降级方法、装置、服务器及存储介质,用于在流量剧增时自动执行流量监控及服务动态降级的策略,保证服务正常运行。本专利技术实施例的第一方面,提供了一种基于redis的服务动态降级方法,具体采用了如下技术方案:S1、预设监控周期,在redis数据库中为每个服务接口建立一个string类型的key,用所述string类型的key记录各个服务接口在所述预设监控周期内的访问量;S2、为每个服务接口设置在所述预设监控周期内的请求量阈值;S3、根据所述访问量及所述请求量阈值计算各个服务接口的请求拒绝率;S4、根据所述请求拒绝率对各个服务接口做对应的服务动态降级策略处理。在上述技术方案中,步骤S1中所述用所述string类型的key记录每个服务接口在所述预设监控周期内的访问量的具体过程为:将所述string类型的key的过期时间设置为所述预设监控周期,单个服务接口每接收到一次用户请求都将所述服务接口对应的所述string类型key的键值加1。在上述技术方案中,步骤S2中所述请求量阈值,是基于当前的服务资源和服务接口的具体处理性能综合指定,所述请求量阈值的计算方式为:统计在指定的天数内,每个接口平均每天响应时间在设定参考时间内的请求数,继而计算各个服务接口在所述预设监控周期内的请求数,根据所述预设监控周期内的请求数设置请求量阈值;将所述请求量阈值以hash类型的key存储在redis数据库中,并且可实时修改。在上述技术方案中,步骤S3中所述根据所述访问量及所述请求量阈值计算各个服务接口的请求拒绝率之前还包括:按所述预设监控周期扫描各个接口中所述string类型的key,获取各个服务接口在当前监控周期内的访问量,同时查询各个服务接口设置的请求量阈值。在上述技术方案中,所述步骤S3的具体过程为:设服务接口总数为n,i=1,2,…,n,第i个服务接口在当前监控周期内的访问量为Mi,所述服务接口设置的请求量阈值为Ni,则第i个服务接口的请求拒绝率Ri为:其中,Ri保留指定小数位数,并将Ri保存至redis数据库的一个hash类型的拒绝率key中。在上述技术方案中,步骤S4中所述根据所述请求拒绝率对各个服务接口做对应的服务动态降级策略处理之前还包括:对单个服务接口,每次请求到达时,都随机生成一个取值为0到1之间且指定精度的浮点数,所述指定精度与所述请求拒绝率保留的指定小数位数数值相同。在上述技术方案中,所述步骤S4的具体过程为:对某一服务接口,若所述请求拒绝率小于等于零,摒弃服务降级策略;若所述请求拒绝率大于零,比较所述请求拒绝率与所述浮点数:若所述请求拒绝率大于所述浮点数,触发服务降级策略,直接返回默认值;若所述请求拒绝率小于等于所述浮点数,则正常进行业务请求的处理。本专利技术实施例的第二方面,提供了一种基于redis的服务动态降级装置,具体包括如下模块:记录模块:预设监控周期,在redis数据库中为每个服务接口建立一个string类型的key,用所述string类型的key记录各个服务接口在所述预设监控周期内的访问量;设置模块:为每个服务接口设置在所述预设监控周期内的请求量阈值;计算模块:根据所述访问量及所述请求量阈值计算各个服务接口的请求拒绝率;处理模块:根据所述请求拒绝率对各个服务接口做对应的服务动态降级策略处理。本专利技术实施例的第三方面,提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本专利技术实施例第一方面所述方法的步骤。本专利技术实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本专利技术实施例第一方面提供的所述方法的步骤。本专利技术带来的有益效果是:本专利技术提出一种基于redis的服务动态降级方法、装置、服务器及存储介质,在redis数据库中预警最近的流量请求访问,并根据预设置的服务接口请求量阈值,实时计算该服务接口的访问量是否触发服务降级策略,实现了自动的流量监控与服务动态降级,不同的流量增加采用不同的降级策略,并精确在每个服务接口级别。通过计算各个服务接口的降级比率,灵活动态的应对了不同流量涌入时的服务降级策略,保证了服务的正常运行,同时当流量波峰过去后,该套系统自动能摒弃服务降级策略。本专利技术通过使用redis数据库结合服务接口级别的实时访问量,并根据一定策略动态的降级、恢复接口的服务策略,保证了在流量剧增时服务和接口的健康,提高了系统健壮性。附图说明为了更清楚地说明本专利技术的技术方案,下面将对本专利技术技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的基于redis的服务动态降级方法流程示意图;图2为本专利技术实施例提供的基于redis的服务动态降级装置结构示意图;图3位本专利技术实施例提供的服务器结构示意图。具体实施方式本专利技术提出一种基于redis的服务动态降级方法、装置、服务器及存储介质,用于在流量剧增时自动执行流量监控及服务动态降级的策略,保证服务正常运行。以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路、以及方法的详细说明,以免不必要的细节妨碍本申请的描述。应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。下面对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本专利技术一部分实施例,而非全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。请参见图1,本专利技术提出了一种基于redis的服务动态降级方法,该方法包括以下步骤:S1、预设监控周期,在redis数据本文档来自技高网...

【技术保护点】
1.一种基于redis的服务动态降级方法,其特征在于,包括如下步骤:S1、预设监控周期,在redis数据库中为每个服务接口建立一个string类型的key,用所述string类型的key记录各个服务接口在所述预设监控周期内的访问量;S2、为每个服务接口设置在所述预设监控周期内的请求量阈值;S3、根据所述访问量及所述请求量阈值计算各个服务接口的请求拒绝率;S4、根据所述请求拒绝率对各个服务接口做对应的服务动态降级策略处理。

【技术特征摘要】
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个服务接口在当前监控周期内的访...

【专利技术属性】
技术研发人员:张振铎
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1