System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于it与软件开发,具体涉及一种基于分级动态反馈和多因素决策的api熔断方法。
技术介绍
1、api网关在微服务架构下作为整个系统的统一入口,负责管理系统中所有的请求流量,将所有api请求转发给后端服务器,一般具备统一接入、协议适配、流量监控与容错、安全防护等几个核心功能,熔断机制是应对雪崩效应的一种微服务链路保护机制,当调用链路中的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。
2、网关统一负责平台内所有资源池所有产品的api转发,如果要精确到api级别熔断,单个缓存中统计数据量较大,每次请求都要在缓存中查询影响到了网关的转发效率,如果按资源池+产品作为一个熔断服务对象,服务里又同时有某一两个高频api经常失败,这时常用的失败次数与失败率决策算法容易触发熔断,不符合预期。
技术实现思路
1、本专利技术的目的是提供一种基于分级动态反馈和多因素决策的api熔断方法,能够通过设置api不同的权重更合理地决策是否要熔断资源池中的整个产品服务。
2、本专利技术采取的技术方案具体如下:
3、一种基于分级动态反馈和多因素决策的api熔断方法,包括:
4、获取微服务架构中的两级网关,所述两级网关包括全国区网关和资源池网关;
5、获取每个api的统计信息,所述统计信息包括滑动窗口时间内api的失败次数、滑动窗口时间内api的失败率、单个api的熔断权重、断路器标志以及熔
6、依据api的统计信息搭建高速缓冲存储器,所述高速缓冲存储器包括第一缓冲存储器和第二缓冲存储器;
7、依据统计信息更新第一缓冲存储器中单个业务逻辑层中已熔断的api总权重,再将其输入至评估模型中,并根据所述评估模型的输出结果确定触发指令,其中,所述触发指令包括触发熔断或触发熔断恢复。
8、在一种优选方案中,所述全国区网关与资源池网关之间维持健康监测,且在健康监测连续失败两次后,判定该资源池网络不可达,且所述第一缓冲存储器对断路器标志和熔断恢复时刻执行更新;
9、其中,更新后的断路器标志为熔断,熔断恢复时刻由当前时刻依据滑动窗口时长进行偏移得到。
10、在一种优选方案中,新增api请求时,获取api归属的目标业务逻辑层,并在所述第一缓冲存储器中查询单个业务逻辑层中已熔断的api总权重、单个业务逻辑层中熔断总权重阈值、断路器标志以及熔断恢复时刻;
11、若所述单个业务逻辑层中熔断总权重阈值为零,且熔断恢复时刻在当前时刻之后,则表明api属于熔断期内,全国区网关直接拒绝api,反之,api则转发至对应资源池网关。
12、在一种优选方案中,所述单个业务逻辑层中熔断总权重阈值为零,且熔断恢复时刻在当前时刻之前,表明熔断到期但未执行更新,并立即异步触发一次第一缓冲存储器的更新,再将api则转发至对应资源池网关。
13、在一种优选方案中,所述资源池网关接收api请求之前,根据路由规则从第二缓冲存储器中查询得到对应的滑动窗口时间内api的失败次数、滑动窗口时间内api的失败率、单个api的熔断权重、断路器标志以及熔断恢复时刻。
14、在一种优选方案中,所述api请求读取完成后,获取所述第二缓冲存储器中的单个业务逻辑层中熔断总权重阈值和熔断恢复时刻,且在所述单个业务逻辑层中熔断总权重阈值为零,且熔断恢复时刻在当前时刻之后,资源池网关直接拒绝api,反之,则将api转发至对应的业务逻辑层。
15、在一种优选方案中,所述单个业务逻辑层中熔断总权重阈值为零,且熔断恢复时刻在当前时刻之前,表明熔断到期但未执行更新,并立即更新第二缓冲存储器中对应路由规则的滑动窗口时间内api失败次数和滑动窗口时间内api失败率。
16、在一种优选方案中,所述第二缓冲存储器执行更新时,获取api失败次数阈值,api失败率阈值,并分别与滑动窗口时间内api失败次数和滑动窗口时间内api失败率进行比较,并在滑动窗口时间内api失败次数大于api失败次数阈值,且滑动窗口时间内api失败率大于api失败率阈值时,更新第二缓冲存储器中的断路器标志和熔断恢复时刻;
17、其中,更新后的断路器标志为熔断,熔断恢复时刻由当前时刻依据滑动窗口时长进行偏移得到。
18、在一种优选方案中,所述根据所述评估模型的输出结果确定触发指令的步骤,包括:
19、获取断路器标志为熔断下的单个api的熔断权重,并将其标定为待评估参数;
20、从所述评估模型中调用评估函数;
21、将所述待评估参数输入至评估模型中,得到单个业务逻辑层中已熔断的api总权重;
22、若所述单个业务逻辑层中已熔断的api总权重大于或等于单个业务逻辑层熔断总权重阈值,则生成触发熔断的触发指令;
23、若所述单个业务逻辑层中已熔断的api总权重小于单个业务逻辑层熔断总权重阈值,则生成触发恢复熔断的触发指令,并将断路器标志更新为正常。
24、本专利技术还提供了,一种基于分级动态反馈和多因素决策的api熔断系统,应用于上述的基于分级动态反馈和多因素决策的api熔断方法,包括:
25、第一获取模块,所述第一获取模块用于获取微服务架构中的两级网关,所述两级网关包括全国区网关和资源池网关;
26、统计模块,所述统计模块用于获取每个api的统计信息,所述统计信息包括滑动窗口时间内api的失败次数、滑动窗口时间内api的失败率、单个api的熔断权重、断路器标志以及熔断恢复时刻,其中断路器标志包括熔断和正常;
27、第二获取模块,所述第二获取模块用于依据api的统计信息搭建高速缓冲存储器,所述高速缓冲存储器包括第一缓冲存储器和第二缓冲存储器;
28、评估模块,所述评估模块用于依据统计信息更新第一缓冲存储器中单个业务逻辑层中已熔断的api总权重,再将其输入至评估模型中,并根据所述评估模型的输出结果确定触发指令,其中,所述触发指令包括触发熔断或触发熔断恢复。
29、本专利技术取得的技术效果为:
30、本专利技术通过分级网关分散使用多个缓存实现了对api级别的熔断控制,再结合异步动态反馈和多因素决策,对api转发的不同阶段从不同维度的统计数据进行综合分析,通过设置api不同的权重更合理地决策是否要熔断资源池中的整个产品服务,结合多因素决策算法,控制了单个缓存中元素数量,网关进行熔断判断的消耗基本可以忽略,网关之间的通信可以感知到资源池中服务的宕机而提前熔断,除了支持api级别的控制,还可以通过多种权重与阈值的搭配设置更灵活地管控熔断的发生与恢复,兼顾实现了控制上的精细化、灵活性、可控性。
本文档来自技高网...【技术保护点】
1.一种基于分级动态反馈和多因素决策的api熔断方法,其特征在于:包括:
2.根据权利要求1所述的一种基于分级动态反馈和多因素决策的api熔断方法,其特征在于:所述全国区网关与资源池网关之间维持健康监测,且在健康监测连续失败两次后,判定该资源池网络不可达,且所述第一缓冲存储器对断路器标志和熔断恢复时刻执行更新;
3.根据权利要求1所述的一种基于分级动态反馈和多因素决策的api熔断方法,其特征在于:新增api请求时,获取api归属的目标业务逻辑层,并在所述第一缓冲存储器中查询单个业务逻辑层中已熔断的api总权重、单个业务逻辑层中熔断总权重阈值、断路器标志以及熔断恢复时刻;
4.根据权利要求3所述的一种基于分级动态反馈和多因素决策的api熔断方法,其特征在于:所述单个业务逻辑层中熔断总权重阈值为零,且熔断恢复时刻在当前时刻之前,表明熔断到期但未执行更新,并立即异步触发一次第一缓冲存储器的更新,再将api则转发至对应资源池网关。
5.根据权利要求1所述的一种基于分级动态反馈和多因素决策的api熔断方法,其特征在于:所述资源池网关接收api
6.根据权利要求5所述的一种基于分级动态反馈和多因素决策的api熔断方法,其特征在于:所述api请求读取完成后,获取所述第二缓冲存储器中的单个业务逻辑层中熔断总权重阈值和熔断恢复时刻,且在所述单个业务逻辑层中熔断总权重阈值为零,且熔断恢复时刻在当前时刻之后,资源池网关直接拒绝api,反之,则将api转发至对应的业务逻辑层。
7.根据权利要求6所述的一种基于分级动态反馈和多因素决策的api熔断方法,其特征在于:所述单个业务逻辑层中熔断总权重阈值为零,且熔断恢复时刻在当前时刻之前,表明熔断到期但未执行更新,并立即更新第二缓冲存储器中对应路由规则的滑动窗口时间内api失败次数和滑动窗口时间内api失败率。
8.根据权利要求7所述的一种基于分级动态反馈和多因素决策的api熔断方法,其特征在于:所述第二缓冲存储器执行更新时,获取api失败次数阈值,api失败率阈值,并分别与滑动窗口时间内api失败次数和滑动窗口时间内api失败率进行比较,并在滑动窗口时间内api失败次数大于api失败次数阈值,且滑动窗口时间内api失败率大于api失败率阈值时,更新第二缓冲存储器中的断路器标志和熔断恢复时刻;
9.根据权利要求1所述的一种基于分级动态反馈和多因素决策的api熔断方法,其特征在于:所述根据所述评估模型的输出结果确定触发指令的步骤,包括:
10.一种基于分级动态反馈和多因素决策的api熔断系统,应用于权利要求1至9中任意一项所述的基于分级动态反馈和多因素决策的api熔断方法,其特征在于:包括:
...【技术特征摘要】
1.一种基于分级动态反馈和多因素决策的api熔断方法,其特征在于:包括:
2.根据权利要求1所述的一种基于分级动态反馈和多因素决策的api熔断方法,其特征在于:所述全国区网关与资源池网关之间维持健康监测,且在健康监测连续失败两次后,判定该资源池网络不可达,且所述第一缓冲存储器对断路器标志和熔断恢复时刻执行更新;
3.根据权利要求1所述的一种基于分级动态反馈和多因素决策的api熔断方法,其特征在于:新增api请求时,获取api归属的目标业务逻辑层,并在所述第一缓冲存储器中查询单个业务逻辑层中已熔断的api总权重、单个业务逻辑层中熔断总权重阈值、断路器标志以及熔断恢复时刻;
4.根据权利要求3所述的一种基于分级动态反馈和多因素决策的api熔断方法,其特征在于:所述单个业务逻辑层中熔断总权重阈值为零,且熔断恢复时刻在当前时刻之前,表明熔断到期但未执行更新,并立即异步触发一次第一缓冲存储器的更新,再将api则转发至对应资源池网关。
5.根据权利要求1所述的一种基于分级动态反馈和多因素决策的api熔断方法,其特征在于:所述资源池网关接收api请求之前,根据路由规则从第二缓冲存储器中查询得到对应的滑动窗口时间内api的失败次数、滑动窗口时间内api的失败率、单个api的熔断权重、断路器标志以及熔断恢复时刻。
6.根据权利要求5所述的一种基于分级动态反馈和多因素决策的api熔断方法,其特征在于:...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。