The invention in particular relates to a timeout fusing method and system that relies on remote call dependency. The method comprises the following steps: obtaining the service call request, and determine the service invocation request to the corresponding target service is to fuse, if not, then call the target service module from the service, and will be sent to the target service service module; if so, obtaining the target service fuse length, and determine when fuse whether long reaches the preset recovery time, if so, then the preset fuse recovery step, if not, to the service module returns the abnormal response information. The invention uses the concept of fuse circuit, when the target service call slow or a large number of timeouts, fusing the service calls, for subsequent calls, return to the rapid release of resources, if the target service is better recovery calls, so as to solve the traditional service call paralysis through socket timeout timeout caused by judging system the.
【技术实现步骤摘要】
一种应对远程调用依赖的超时熔断方法和系统
本专利技术涉及互联网
,特别涉及一种应对远程调用依赖的超时熔断方法和系统。
技术介绍
复杂分布式架构通常都具有很多依赖,比如HTTP、Netty、Dubbo等,如果一个应用不能对来自依赖的故障进行隔离,那该应用就处在被拖垮的风险中。在一个高流量高并发的系统中,某个单一的后端一旦发生延迟,将会在数秒内导致所有应用资源被耗尽。现有的处理方法主要是通过请求超时方式,通过超时时间进行阻断,但此种方式在大并情况下会导致系统资源耗尽。
技术实现思路
本专利技术提供了一种应对远程调用依赖的超时熔断方法和系统,解决了以上所述的技术问题。本专利技术解决上述技术问题的技术方案如下:一种应对远程调用依赖的超时熔断方法,包括以下步骤:步骤1,获取服务调用请求,并判断所述服务调用请求对应的目标服务是否为熔断状态,若否,则执行步骤2,若是,则执行步骤3;步骤2,调用所述目标服务,并将所述目标服务发送至服务使用模块,然后返回至步骤1;步骤3,获取所述目标服务的已熔断时长,并判断所述已熔断时长是否达到预设恢复时间,若是,则进行预设的熔断恢复步骤,若否, ...
【技术保护点】
一种应对远程调用依赖的超时熔断方法,其特征在于,包括以下步骤:步骤1,获取服务调用请求,并判断所述服务调用请求对应的目标服务是否为熔断状态,若否,则执行步骤2,若是,则执行步骤3;步骤2,调用所述目标服务,并将所述目标服务发送至服务使用模块,然后返回至步骤1;步骤3,获取所述目标服务的已熔断时长,并判断所述已熔断时长是否达到预设恢复时间,若是,则进行预设的熔断恢复步骤,若否,则向服务使用模块返回异常响应信息。
【技术特征摘要】
1.一种应对远程调用依赖的超时熔断方法,其特征在于,包括以下步骤:步骤1,获取服务调用请求,并判断所述服务调用请求对应的目标服务是否为熔断状态,若否,则执行步骤2,若是,则执行步骤3;步骤2,调用所述目标服务,并将所述目标服务发送至服务使用模块,然后返回至步骤1;步骤3,获取所述目标服务的已熔断时长,并判断所述已熔断时长是否达到预设恢复时间,若是,则进行预设的熔断恢复步骤,若否,则向服务使用模块返回异常响应信息。2.根据权利要求1所述的应对远程调用依赖的超时熔断方法,其特征在于,所述预设的熔断恢复步骤具体为:从服务提供模块中调用预设次数的所述目标服务,并获取所述目标服务每次调用的请求响应时间,判断所有的所述请求响应时间是否均达到预设的响应时间阈值,若是,则将所述目标服务的状态恢复为未熔断状态,若否,则将所述目标服务的状态保持为已熔断状态。3.根据权利要求1或2所述的应对远程调用依赖的超时熔断方法,其特征在于,所述服务调用请求为HTTP请求。4.根据权利要求3所述的应对远程调用依赖的超时熔断方法,其特征在于,步骤1中,通过get或post方式接收所述HTTP请求。5.根据权利要求4所述的应对远程调用依赖的超时熔断方法,其特征在于,步骤2中判断所述目标服务是否为熔断状态具体为:获取所述目标服务在预设时间范围的请求错误率,并判断所述请求错误率是否达到预设错误率阈值,若是,则判断所述目标服务为熔断状态,若否,则判断所述目标服务为未熔断状态。6.根据权利要求5所述的应对远程调用依赖的超时熔断方法,其特征在于,步骤2中,将所述HTTP请求包装为CircuitCommand类,所述CircuitCommand类包括预设熔断算法,所述预设熔断算法包括所述预...
【专利技术属性】
技术研发人员:张清锁,
申请(专利权)人:北京思特奇信息技术股份有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。