服务熔断方法和装置、存储介质及电子设备制造方法及图纸

技术编号:28372995 阅读:15 留言:0更新日期:2021-05-08 00:00
本发明专利技术公开了用于负载均衡服务的一种服务熔断方法和装置、存储介质及电子设备。其中,该方法包括:在上游服务访问下游服务时,获取下游服务中待访问的当前服务;获取为所述当前服务预先配置的熔断类型,其中,所述熔断类型包括服务熔断、实例熔断和调用接口熔断,每一个服务包括一个或多个实例,每一个所述实例包括一个或多个调用接口;按照与所述熔断类型匹配的熔断处理方式,对所述当前服务进行熔断处理。本发明专利技术解决了下游服务不可用时,不能灵活对下游服务进行熔断处理的技术问题。

【技术实现步骤摘要】
服务熔断方法和装置、存储介质及电子设备
本专利技术涉及计算机网络领域,具体而言,涉及一种服务熔断方法和装置、存储介质及电子设备。
技术介绍
现有技术中,在使用上游服务调用下游服务的过程中,如果下游服务不可用,会影响到上游服务,引起上游服务重复调用下游服务,进而导致系统崩溃。而现有技术中,在下游服务不可用时,并未根据具体的不可用场景对下游服务进行熔断处理。针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种服务熔断方法和装置、存储介质及电子设备,以至少解决下游服务不可用时,不能灵活对下游服务进行熔断处理的技术问题。根据本专利技术实施例的一个方面,提供了一种服务熔断方法,包括:在上游服务访问下游服务时,获取上述下游服务中待访问的当前服务;获取为上述当前服务预先配置的熔断类型,其中,上述熔断类型包括服务熔断、实例熔断和调用接口熔断,每一个服务包括一个或多个实例,每一个上述实例包括一个或多个调用接口;按照与上述熔断类型匹配的熔断处理方式,对上述当前服务进行熔断处理。根据本专利技术实施例的另一方面,还提供了一种服务熔断装置,包括:第一获取单元,用于在上游服务访问下游服务时,获取上述下游服务中待访问的当前服务;第二获取单元,用于获取为上述当前服务预先配置的熔断类型,其中,上述熔断类型包括服务熔断、实例熔断和调用接口熔断,每一个服务包括一个或多个实例,每一个上述实例包括一个或多个调用接口;处理单元,用于按照与上述熔断类型匹配的熔断处理方式,对上述当前服务进行熔断处理。作为一种可选的示例,上述处理单元包括:第一处理模块,用于在上述当前服务的熔断类型为上述服务熔断的情况下,获取上述当前服务的第一访问失败比例,在上述第一访问失败比例大于第一阈值的情况下,将上述当前服务设置为禁止访问;第二处理模块,用于在上述当前服务的熔断类型为上述实例熔断的情况下,获取上述当前服务的每一个实例的第二访问失败比例,将大于第二阈值的上述第二访问失败比例对应的上述当前服务的实例设置为禁止访问;第三处理模块,用于在上述当前服务的熔断类型为上述调用接口熔断的情况下,获取上述当前服务的每一个调用接口的第三访问失败比例,将大于第三阈值的上述第三访问失败比例对应的上述当前服务的调用接口设置为禁止访问。作为一种可选的示例,上述处理单元还包括:第四处理模块,用于在将大于上述第二阈值的上述第二访问失败比例对应的上述当前服务的实例设置为禁止访问时,在上述当前服务的所有实例中,被禁止访问的实例的比例大于第四阈值的情况下,将被禁止访问的上述实例中的一个或多个目标实例设置为允许访问,以使上述比例小于或等于上述第四阈值。作为一种可选的示例,上述第四处理模块包括:执行子模块,用于执行如下操作,直到上述比例小于或等于上述第四阈值:将上述当前服务的被禁止访问的实例中,第二访问失败比例最小的实例设置为允许访问,其中,上述第二访问失败比例为访问上述实例的第二访问请求中,未成功访问的请求的第四数量和访问上述实例的上述第二访问请求的第三数量的比值;比对上述比例和上述第四阈值。作为一种可选的示例,上述处理单元还包括:第五处理模块,用于在将上述当前服务设置为禁止访问或者将上述当前服务中的第一实例设置为禁止访问或者将上述当前服务中的第一调用接口设置为禁止访问之后,在经过预定时长的情况下,将被设置为禁止访问的上述当前服务或上述第一实例或上述第一调用接口设置为半允许访问状态,其中,上述当前服务或上述第一实例或上述第一调用接口在上述半允许访问状态下被允许访问;第一获取模块,用于在上述半允许访问状态下,获取访问上述当前服务或上述第一实例或上述第一调用接口的第四访问请求;访问模块,用于响应上述第四访问请求中的预定比例的访问请求,访问上述当前服务或上述第一实例或上述第一调用接口。作为一种可选的示例,上述访问模块包括:第一执行子模块,用于响应上述第四访问请求中,随机选择出的上述预定比例的访问请求;或者第二执行子模块,用于响应上述第四访问请求中,先接收到的上述预定比例的访问请求。作为一种可选的示例,上述处理单元还包括:第二获取模块,用于在响应上述第四访问请求中的预定比例的访问请求,访问上述当前服务或上述第一实例或上述第一调用接口之后,获取在上述半允许访问状态下,上述当前服务的上述第一访问失败比例或上述第一实例的上述第二访问失败比例或上述第一调用接口的上述第三访问失败比例;第一禁止模块,用于在上述当前服务的上述第一访问失败比例大于上述第一阈值的情况下,将上述当前服务重新设置为禁止访问,在上述当前服务的上述第一访问失败比例小于或等于上述第一阈值的情况下,将上述当前服务设置为允许访问;或者第二禁止模块,用于在上述第一实例的上述第二访问失败比例大于上述第二阈值的情况下,将上述第一实例重新设置为禁止访问,在上述第一实例的上述第二访问失败比例小于或等于上述第二阈值的情况下,将上述第一实例设置为允许访问;或者第三禁止模块,用于在上述第一调用接口的上述第三访问失败比例大于上述第三阈值的情况下,将上述第一调用接口重新设置为禁止访问,在上述第一调用接口的上述第三访问失败比例小于或等于上述第三阈值的情况下,将上述第一调用接口设置为允许访问。根据本专利技术实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述服务熔断方法。根据本专利技术实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过上述计算机程序执行上述的服务熔断方法。在本专利技术实施例中,采用了在上游服务访问下游服务时,获取上述下游服务中待访问的当前服务;获取为上述当前服务预先配置的熔断类型,其中,上述熔断类型包括服务熔断、实例熔断和调用接口熔断,每一个服务包括一个或多个实例,每一个上述实例包括一个或多个调用接口;按照与上述熔断类型匹配的熔断处理方式,对上述当前服务进行熔断处理的方法,由于在上述方法中,可以为下游服务的每一个服务设置一个熔断类型,根据熔断类型,可以对每一个服务或每一个实例或每一个调用接口进行熔断,实现了对下游服务的熔断控制,保证了系统稳定,进而解决了下游服务不可用时,不能灵活对下游服务进行熔断处理的技术问题。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是根据本专利技术实施例的一种可选的服务熔断方法的应用环境的示意图;图2是根据本专利技术实施例的一种可选的服务熔断方法的流程图;图3是根据本专利技术实施例的一种可选的服务熔断方法的服务熔断示意图;图4是根据本专利技术实施例的一种可选的服务熔断方法的实例熔断示意图;图5是根据本专利技术实施例的一种可选的服务熔断方法的调用接口熔断示意图;图6是根据本专利技术实施例的一种可选的服务熔断方法的服务熔断配置示意图;图7是根据本专利技术实施本文档来自技高网...

【技术保护点】
1.一种服务熔断方法,其特征在于,包括:/n在上游服务访问下游服务时,获取所述下游服务中待访问的当前服务;/n获取为所述当前服务预先配置的熔断类型,其中,所述熔断类型包括服务熔断、实例熔断和调用接口熔断,每一个服务包括一个或多个实例,每一个所述实例包括一个或多个调用接口;/n按照与所述熔断类型匹配的熔断处理方式,对所述当前服务进行熔断处理。/n

【技术特征摘要】
1.一种服务熔断方法,其特征在于,包括:
在上游服务访问下游服务时,获取所述下游服务中待访问的当前服务;
获取为所述当前服务预先配置的熔断类型,其中,所述熔断类型包括服务熔断、实例熔断和调用接口熔断,每一个服务包括一个或多个实例,每一个所述实例包括一个或多个调用接口;
按照与所述熔断类型匹配的熔断处理方式,对所述当前服务进行熔断处理。


2.根据权利要求1所述的方法,其特征在于,所述按照与所述熔断类型匹配的熔断处理方式,对所述当前服务进行熔断处理包括:
在所述当前服务的熔断类型为所述服务熔断的情况下,获取所述当前服务的第一访问失败比例,在所述第一访问失败比例大于第一阈值的情况下,将所述当前服务设置为禁止访问;
在所述当前服务的熔断类型为所述实例熔断的情况下,获取所述当前服务的每一个实例的第二访问失败比例,将大于第二阈值的所述第二访问失败比例对应的所述当前服务的实例设置为禁止访问;
在所述当前服务的熔断类型为所述调用接口熔断的情况下,获取所述当前服务的每一个调用接口的第三访问失败比例,将大于第三阈值的所述第三访问失败比例对应的所述当前服务的调用接口设置为禁止访问。


3.根据权利要求2所述的方法,其特征在于,
所述在所述当前服务的熔断类型为服务熔断的情况下,获取所述当前服务的第一访问失败比例包括:获取访问所述当前服务的第一访问请求的第一数量和所述第一访问请求中未成功访问的请求的第二数量,将所述第二数量与所述第一数量的比值确定为所述第一访问失败比例;
所述在所述当前服务的熔断类型为实例熔断的情况下,获取所述当前服务的每一个实例的第二访问失败比例包括:将所述当前服务的每一个实例确定为当前实例,对所述当前实例执行如下操作:获取访问所述当前实例的第二访问请求的第三数量和所述第二访问请求中未成功访问的请求的第四数量,将所述第四数量与所述第三数量的比值确定为所述第二访问失败比例;
所述在所述当前服务的熔断类型为调用接口熔断的情况下,获取所述当前服务的每一个调用接口的第三访问失败比例包括:将所述当前服务的每一个调用接口确定为当前调用接口,对所述当前调用接口执行如下操作:获取访问所述当前调用接口的第三访问请求的第五数量和所述第三访问请求中未成功访问的请求的第六数量,将所述第六数量与所述第五数量的比值确定为所述第三访问失败比例。


4.根据权利要求3所述的方法,其特征在于,
获取访问所述当前服务的第一访问请求中未成功访问的请求的第二数量包括:将所述第一访问请求中,被确定为错误访问的访问请求的数量确定为所述第二数量,或者将所述第一访问请求中,成功访问但响应时长超过第一预定时长的请求的数量确定为所述第二数量;
获取访问所述当前服务的第二访问请求中未成功访问的请求的第四数量包括:将所述第二访问请求中,被确定为错误访问的访问请求的数量确定为所述第四数量,或者将所述第二访问请求中,成功访问但响应时长超过第二预定时长的请求的数量确定为所述第四数量;
获取访问所述当前调用接口的第三访问请求中未成功访问的请求的第六数量包括:将所述第三访问请求中,被确定为错误访问的访问请求的数量确定为所述第六数量,或者将所述第三访问请求中,成功访问但响应时长超过第三预定时长的请求的数量确定为所述第六数量。


5.根据权利要求2所述的方法,其特征在于,在将大于所述第二阈值的所述第二访问失败比例对应的所述当前服务的实例设置为禁止访问时,所述方法还包括:
在所述当前服务的所有实例中,被禁止访问的实例的比例大于第四阈值的情况下,将被禁止访问的所述实例中的一个或多个目标实例设置为允许访问,以使所述比例小于或等于所述第四阈值。


6.根据权利要求5所述的方法,其特征在于,所述在所述当前服务的所有实例中,被禁止访问的实例的比例大于第四阈值的情况下,将被禁止访问的所述实例中的一个或多个目标实例设置为允许访问包括:
执行如下操作,直到所述比例小于或等于所述第四阈值:
将所述当前服务的被禁止访问的实例中,第二访问失败比例最小的实例设置为允许访问,其中,所述第二访问失败比例为访问所述实例的第二访问请求中,未成功访问的请求的第四数量和访问所述实例的所述第二访问请求的第三数量的比值;
比对所述比例和所述第四阈值。


7.根据权利要求2所述的方法,其特征在于,在将所述当前服务设置为禁止访问或者将所述当前服务中的第一实例设置为禁止访问或者将所述当前服务中的第一调用接口设置为禁止访问之后,所述方法还包括:
在经过预定时长的情况下,将被设置为禁止访问的所述当前服务或所述第一实例或所述第一调用接口设置为半允许访问状态,其中,所述当前服务或所述第一实例或所述第一调用接口在所述半允许访问状态下被允许访问;
在所述半允许访问状态下,获取访问所述当前服务或所述第一实例或所述第一调用接口的第四访问请求;
响应所述第四访问请求中的预定比例的访问请求,访问所述当前...

【专利技术属性】
技术研发人员:张培培
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1