CN107171828A - 一种应对远程调用依赖的超时熔断方法和系统 - Google Patents

一种应对远程调用依赖的超时熔断方法和系统 Download PDF

Info

Publication number
CN107171828A
CN107171828A CN201710255978.6A CN201710255978A CN107171828A CN 107171828 A CN107171828 A CN 107171828A CN 201710255978 A CN201710255978 A CN 201710255978A CN 107171828 A CN107171828 A CN 107171828A
Authority
CN
China
Prior art keywords
service
destination service
request
fusing
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710255978.6A
Other languages
English (en)
Other versions
CN107171828B (zh
Inventor
张清锁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Si Tech Information Technology Co Ltd
Original Assignee
Beijing Si Tech Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Si Tech Information Technology Co Ltd filed Critical Beijing Si Tech Information Technology Co Ltd
Priority to CN201710255978.6A priority Critical patent/CN107171828B/zh
Publication of CN107171828A publication Critical patent/CN107171828A/zh
Application granted granted Critical
Publication of CN107171828B publication Critical patent/CN107171828B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明特别涉及一种应对远程调用依赖的超时熔断方法和系统。方法包括以下步骤:获取服务调用请求,并判断服务调用请求对应的目标服务是否为熔断状态,若否,则从服务提供模块中调用目标服务,并将目标服务发送至服务使用模块;若是,则获取目标服务的已熔断时长,并判断已熔断时长是否达到预设恢复时间,若是,则进行预设的熔断恢复步骤,若否,则向服务使用模块返回异常响应信息。本发明借鉴了电路熔断的理念,当目标服务调用慢或有大量超时,熔断该服务的调用,对于后续调用请求,直接返回,从而快速释放资源,如果目标服务情况好转则恢复调用,从而解决了传统服务调用通过socket超时时间判断超时引起的系统瘫痪问题。

Description

一种应对远程调用依赖的超时熔断方法和系统
技术领域
本发明涉及互联网技术领域,特别涉及一种应对远程调用依赖的超时熔断方法和系统。
背景技术
复杂分布式架构通常都具有很多依赖,比如HTTP、Netty、Dubbo等,如果一个应用不能对来自依赖的故障进行隔离,那该应用就处在被拖垮的风险中。在一个高流量高并发的系统中,某个单一的后端一旦发生延迟,将会在数秒内导致所有应用资源被耗尽。现有的处理方法主要是通过请求超时方式,通过超时时间进行阻断,但此种方式在大并情况下会导致系统资源耗尽。
发明内容
本发明提供了一种应对远程调用依赖的超时熔断方法和系统,解决了以上所述的技术问题。
本发明解决上述技术问题的技术方案如下:
一种应对远程调用依赖的超时熔断方法,包括以下步骤:
步骤1,获取服务调用请求,并判断所述服务调用请求对应的目标服务是否为熔断状态,若否,则执行步骤2,若是,则执行步骤3;
步骤2,调用所述目标服务,并将所述目标服务发送至服务使用模块,然后返回至步骤1;
步骤3,获取所述目标服务的已熔断时长,并判断所述已熔断时长是否达到预设恢复时间,若是,则进行预设的熔断恢复步骤,若否,则向服务使用模块返回异常响应信息。
本发明的有益效果是:本发明的方法借鉴了电路熔断的理念,如果某个目标服务调用慢或者有大量超时,此时,熔断该服务的调用,对于后续调用请求,不再继续调用目标服务,直接返回,从而快速释放资源;如果目标服务情况好转则恢复调用,避免在某一服务故障时,由此带来的服务调用连锁反应,引起大面积的系统瘫痪,同时在依赖的服务回复后系统能够通过算法自动恢复正常调用,解决了传统服务调用通过socket超时时间判断超时引起的系统瘫痪问题。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述预设的熔断恢复步骤具体为:从服务提供模块中调用预设次数的所述目标服务,并获取所述目标服务每次调用的请求响应时间,判断所有的所述请求响应时间是否均达到预设的响应时间阈值,若是,则将所述目标服务的状态恢复为未熔断状态,若否,则将所述目标服务的状态保持为已熔断状态。
采用上述进一步方案的有益效果是:本进一步技术方案中,所述请求响应时间为客户端发出请求到得到响应的整个时间,如果所述目标服务每次调用的请求响应时间均小于预设的响应时间阈值,则说明所述目标服务已恢复健康,因此可以将目标服务的状态恢复为未熔断状态,从而对所述目标服务进行正常调用。
进一步,所述服务调用请求为HTTP请求。
进一步,步骤1中,通过get或post方式接收所述HTTP请求。
采用上述进一步方案的有益效果是:本进一步技术方案中,HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统,而通过get或post方式发送HTTP请求和接收HTTP响应,只需传送请求方法和路径,因此简单快速。
进一步,步骤2中判断所述目标服务是否为熔断状态具体为:获取所述目标服务在预设时间范围的请求错误率,并判断所述请求错误率是否达到预设错误率阈值,若是,则判断所述目标服务为熔断状态,若否,则判断所述目标服务为未熔断状态。
采用上述进一步方案的有益效果是:本进一步技术方案中,所述请求错误率为目标服务的失败次数、超时次数和拒绝次数的和占整个请求次数的比例,通过请求错误率的实时值可以获知目标服务当前的状态,当请求错误率达到预设错误率阈值时,说明该目标服务再继续调用容易导致系统崩溃,此时将目标服务设定为熔断状态,从而可以直接返回异常响应信息,快速释放资源,维持系统的正常运行状态,当目标服务情况好转即可恢复调用。
进一步,步骤2中,将所述HTTP请求包装为CircuitCommand类,所述CircuitCommand类包括预设熔断算法,所述预设熔断算法包括所述预设时间范围和所述预设错误率阈值,通过所述CircuitCommand类判断所述目标服务是否为熔断状态。
采用上述进一步方案的有益效果是:本进一步技术方案中采用CircuitCommand类进行熔断算法判断,不仅算法的实现过程简单而且判断速度快、效率高。
为了解决本发明的技术问题,还提供了一种应对远程调用依赖的超时熔断系统,包括请求获取单元、第一判断单元、服务调用单元、第二判断单元、熔断恢复单元和异常信息生成单元,
所述请求获取单元用于获取服务调用请求;
所述第一判断单元用于判断所述服务调用请求对应的目标服务是否为熔断状态,若否,则驱动服务调用单元,若是,则驱动第二判断单元;
所述服务调用单元用于从服务提供模块中调用所述目标服务,并将所述目标服务发送至服务使用模块;
所述第二判断单元用于获取所述目标服务的已熔断时长,并判断所述已熔断时长是否达到预设恢复时间,若是,则驱动熔断恢复单元,若否,则驱动异常信息生成单元;
所述熔断恢复单元用于采用预设的熔断恢复步骤对目标服务的已熔断状态进行恢复;
所述异常信息生成单元用于向服务使用模块返回异常响应信息。本发明的有益效果是:本发明的系统借鉴了电路熔断的理念,如果某个目标服务调用慢或者有大量超时,此时,熔断该服务的调用,对于后续调用请求,不再继续调用目标服务,直接返回,从而快速释放资源;如果目标服务情况好转则恢复调用,避免在某一服务故障时,由此带来的服务调用连锁反应,引起大面积的系统瘫痪,同时在依赖的服务回复后系统能够通过算法自动恢复正常调用,解决了传统服务调用通过socket超时时间判断超时引起的系统瘫痪问题。
进一步,所述熔断恢复单元具体用于从服务提供模块中调用预设次数的所述目标服务,并获取所述目标服务每次调用的请求响应时间,判断所有的所述请求响应时间是否均达到预设的响应时间阈值,若是,则将所述目标服务的状态恢复为未熔断状态,若否,则将所述目标服务的状态保持为已熔断状态。
进一步,所述第一判断单元具体用于获取所述目标服务在预设时间范围的请求错误率,并判断所述请求错误率是否达到预设错误率阈值,若是,则判断所述目标服务为熔断状态,若否,则判断所述目标服务为未熔断状态。
进一步,所述服务调用请求为HTTP请求。
本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
图1为本发明实施例提供的一种应对远程调用依赖的超时熔断方法的示意性流程图;
图2为本发明实施例提供的一种应对远程调用依赖的超时熔断系统的示意性结构图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
图1为本发明实施例提供的一种应对远程调用依赖的超时熔断方法的示意性流程图,如图1所示,包括以下步骤:
步骤1,获取服务调用请求,并判断所述服务调用请求对应的目标服务是否为熔断状态,若否,则执行步骤2,若是,则执行步骤3;
步骤2,调用所述目标服务,并将所述目标服务发送至服务使用模块,然后返回至步骤1;
步骤3,获取所述目标服务的已熔断时长,并判断所述已熔断时长是否达到预设恢复时间,若是,则进行预设的熔断恢复步骤,若否,则向服务使用模块返回异常响应信息。
本实施例的方法借鉴了电路熔断的理念,如果某个目标服务调用慢或者有大量超时,此时,熔断该服务的调用,对于后续调用请求,不再继续调用目标服务,直接返回,从而快速释放资源;如果目标服务情况好转则恢复调用,避免在某一服务故障时,由此带来的服务调用连锁反应,引起大面积的系统瘫痪,同时在依赖的服务回复后系统能够通过算法自动恢复正常调用,解决了传统服务调用通过socket超时时间判断超时引起的系统瘫痪问题。
优选实施例中,所述预设的熔断恢复步骤具体为:从服务提供模块中调用预设次数的所述目标服务,并获取所述目标服务每次调用的请求响应时间,判断所有的所述请求响应时间是否均达到预设的响应时间阈值,若是,则将所述目标服务的状态恢复为未熔断状态,若否,则将所述目标服务的状态保持为已熔断状态。具体实施例中,所述预设恢复时间设定为5~10s,即每间隔5~10秒允许部分所述目标服务对应的服务调用请求通过,若每次调用的请求响应时间均达到预设的响应时间阈值,比如0.5s,说明所述服务调用请求是健康的,则将所述目标服务的状态恢复为未熔断状态,从而对所述目标服务进行正常调用。所述请求响应时间为客户端发出请求到得到响应的整个时间。
在另一优选实施例中,步骤2中判断所述目标服务是否为熔断状态具体为:获取所述目标服务在预设时间范围的请求错误率,并判断所述请求错误率是否达到预设错误率阈值,若是,则判断所述目标服务为熔断状态,若否,则判断所述目标服务为未熔断状态。在具体的实施例中,为服务提供模块中的每个服务均分配一个熔断器,所述熔断器每秒创建一个计数容器,且每个熔断器维护10个计数容器,当有新的计数容器被创建时,最早的计数容器被移出熔断器。每个计数容器中记录对应服务的不同调用结果的次数,比如成功次数、失败次数、超时次数和拒绝次数,然后通过对10个计数容器中记载的次数进行统计和计算,可以得到请求错误率,所述请求错误率为目标服务的失败次数、超时次数和拒绝次数的和占整个请求次数的比例。通过请求错误率的实时值可以获知目标服务当前的状态,当请求错误率达到预设错误率阈值,比如50%~80%时,说明该目标服务再继续调用容易导致系统崩溃,此时将目标服务设定为熔断状态,从而可以直接返回异常响应信息,快速释放资源,维持系统的正常运行状态,当目标服务情况好转即可恢复调用。在具体实施例中,预先设置每个服务的超时时间阈值,对目标服务进行调用时,获取目标服务的连接超时时间和读取超时时间,并对连接超时时间和读取超时时间进行求和,当求和结果大于所述超时时间阈值时,说明所述目标服务调用超时,并对熔断器中计数容器的数据进行更新。
优选的,所述服务调用请求为HTTP请求,通过get或post方式接收所述HTTP请求。服务使用模块为APP(即安装在客户端,比如手机上的智能软件),通过APP生成HTTP(超文本传输协议)请求,然后通过get或post方式接收所述HTTP请求。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于多种信息系统,通过get或post方式发送HTTP请求和接收HTTP响应简单快速。get方式是默认的HTTP请求方法,我们日常用get方法来提交表单数据,然而用get方法提交的表单数据只经过了简单的编码,因此,使用get方法来提交表单数据就存在着安全隐患。优选的采用post方式,post方式是get方式的一个替代方法,它主要是向服务器提交表单数据,尤其是大批量的数据,post方式克服了get方式中信息无法保密和数据量太小的缺点。
在另一优选实施例的步骤2中,将所述HTTP请求包装为CircuitCommand类,所述CircuitCommand类包括预设熔断算法,所述预设熔断算法包括所述预设时间范围和所述预设错误率阈值,通过所述CircuitCommand类判断所述目标服务是否为熔断状态。该优选实施例采用CircuitCommand类进行熔断算法判断,不仅算法的实现过程简单而且判断速度快、效率高。
以上结合图1对本发明实施例提供的应对远程调用依赖的超时熔断方法进行了详细描述,以下对本发明实施例提供的应对远程调用依赖的超时熔断系统进行描述。图2为本发明实施例提供的一种应对远程调用依赖的超时熔断系统,如图2所示,包括请求获取单元、第一判断单元、服务调用单元、第二判断单元、熔断恢复单元和异常信息生成单元,
所述请求获取单元用于获取所述服务调用请求;
所述第一判断单元用于判断所述服务调用请求对应的目标服务是否为熔断状态,若否,则驱动服务调用单元,若是,则驱动第二判断单元;
所述服务调用单元用于从服务提供模块中调用所述目标服务,并将所述目标服务发送至服务使用模块;
所述第二判断单元用于获取所述目标服务的已熔断时长,并判断所述已熔断时长是否达到预设恢复时间,若是,则驱动熔断恢复单元,若否,则驱动异常信息生成单元;
所述熔断恢复单元用于采用预设的熔断恢复步骤对目标服务的已熔断状态进行恢复;
所述异常信息生成单元用于向服务使用模块返回异常响应信息。
本发明的系统借鉴了电路熔断的理念,如果某个目标服务调用慢或者有大量超时,此时,熔断该服务的调用,对于后续调用请求,不再继续调用目标服务,直接返回,从而快速释放资源;如果目标服务情况好转则恢复调用,避免在某一服务故障时,由此带来的服务调用连锁反应,引起大面积的系统瘫痪,同时在依赖的服务回复后系统能够通过算法自动恢复正常调用,解决了传统服务调用通过socket超时时间判断超时引起的系统瘫痪问题。
优选的实施例中,所述熔断恢复单元具体用于从服务提供模块中调用预设次数的所述目标服务,并获取所述目标服务每次调用的请求响应时间,判断所有的所述请求响应时间是否均达到预设的响应时间阈值,若是,则将所述目标服务的状态恢复为未熔断状态,若否,则将所述目标服务的状态保持为已熔断状态。具体实施例中,所述预设恢复时间设定为5~10s,即每间隔5~10秒允许部分所述目标服务对应的服务调用请求通过,若每次调用的请求响应时间均达到预设的响应时间阈值,比如0.5s,说明所述服务调用请求是健康的,则将所述目标服务的状态恢复为未熔断状态,从而对所述目标服务进行正常调用。所述请求响应时间为客户端发出请求到得到响应的整个时间。
在另一优选实施例中,所述第一判断单元具体用于获取所述目标服务在预设时间范围的请求错误率,并判断所述请求错误率是否达到预设错误率阈值,若是,则判断所述目标服务为熔断状态,若否,则判断所述目标服务为未熔断状态。在具体的实施例中,为服务提供模块中的每个服务均分配一个熔断器,所述熔断器每秒创建一个计数容器,且每个熔断器维护10个计数容器,当有新的计数容器被创建时,最早的计数容器被移出熔断器。每个计数容器中记录对应服务的不同调用结果的次数,比如成功次数、失败次数、超时次数和拒绝次数,然后通过对10个计数容器中记载的次数进行统计和计算,可以得到请求错误率,所述请求错误率为目标服务的失败次数、超时次数和拒绝次数的和占整个请求次数的比例。通过请求错误率的实时值可以获知目标服务当前的状态,当请求错误率达到预设错误率阈值,比如50%~80%时,说明该目标服务再继续调用容易导致系统崩溃,此时将目标服务设定为熔断状态,从而可以直接返回异常响应信息,快速释放资源,维持系统的正常运行状态,当目标服务情况好转即可恢复调用。在具体实施例中,预先设置每个服务的超时时间阈值,对目标服务进行调用时,获取目标服务的连接超时时间和读取超时时间,并对连接超时时间和读取超时时间进行求和,当求和结果大于所述超时时间阈值时,说明所述目标服务调用超时,并对熔断器中计数容器的数据进行更新。
优选的,所述服务调用请求为HTTP请求,通过get或post方式接收所述HTTP请求。服务使用模块为APP(即安装在客户端,比如手机上的智能软件),通过APP生成HTTP(超文本传输协议)请求,步骤1中通过get或post方式接收所述HTTP请求。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于多种信息系统,通过get或post方式发送HTTP请求和接收HTTP响应简单快速。get方式是默认的HTTP请求方法,我们日常用get方法来提交表单数据,然而用get方法提交的表单数据只经过了简单的编码,因此,使用get方法来提交表单数据就存在着安全隐患。优选的采用post方式,post方式是get方式的一个替代方法,它主要是向服务器提交表单数据,尤其是大批量的数据,post方式克服了get方式中信息无法保密和数据量太小的缺点。
另一优选实施例中,所述第一判断单元用于通过CircuitCommand类判断所述服务调用请求对应的目标服务是否为熔断状态,所述CircuitCommand类为所述服务调用请求包装形成的类,所述CircuitCommand类包括预设熔断算法,所述预设熔断算法包括所述预设时间范围和所述预设错误率阈值,通过所述CircuitCommand类判断所述目标服务是否为熔断状态。该优选实施例采用CircuitCommand类进行熔断算法判断,不仅算法的实现过程简单而且判断速度快、效率高。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

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类包括预设熔断算法,所述预设熔断算法包括所述预设时间范围和所述预设错误率阈值,通过所述CircuitCommand类判断所述目标服务是否为熔断状态。
7.一种应对远程调用依赖的超时熔断系统,其特征在于,包括请求获取单元、第一判断单元、服务调用单元、第二判断单元、熔断恢复单元和异常信息生成单元,
所述请求获取单元用于获取服务调用请求;
所述第一判断单元用于判断所述服务调用请求对应的目标服务是否为熔断状态,若否,则驱动服务调用单元,若是,则驱动第二判断单元;
所述服务调用单元用于从服务提供模块中调用所述目标服务,并将所述目标服务发送至服务使用模块;
所述第二判断单元用于获取所述目标服务的已熔断时长,并判断所述已熔断时长是否达到预设恢复时间,若是,则驱动熔断恢复单元,若否,则驱动异常信息生成单元;
所述熔断恢复单元用于采用预设的熔断恢复步骤对目标服务的已熔断状态进行恢复;
所述异常信息生成单元用于向服务使用模块返回异常响应信息。
8.根据权利要求7所述的应对远程调用依赖的超时熔断系统,其特征在于,所述熔断恢复单元具体用于从服务提供模块中调用预设次数的所述目标服务,并获取所述目标服务每次调用的请求响应时间,判断所有的所述请求响应时间是否均达到预设的响应时间阈值,若是,则将所述目标服务的状态恢复为未熔断状态,若否,则将所述目标服务的状态保持为已熔断状态。
9.根据权利要求8所述的应对远程调用依赖的超时熔断系统,其特征在于,所述第一判断单元具体用于获取所述目标服务在预设时间范围的请求错误率,并判断所述请求错误率是否达到预设错误率阈值,若是,则判断所述目标服务为熔断状态,若否,则判断所述目标服务为未熔断状态。
10.根据权利要求7~9任一所述的应对远程调用依赖的超时熔断系统,其特征在于,所述服务调用请求为HTTP请求。
CN201710255978.6A 2017-04-18 2017-04-18 一种应对远程调用依赖的超时熔断方法和系统 Active CN107171828B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710255978.6A CN107171828B (zh) 2017-04-18 2017-04-18 一种应对远程调用依赖的超时熔断方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710255978.6A CN107171828B (zh) 2017-04-18 2017-04-18 一种应对远程调用依赖的超时熔断方法和系统

Publications (2)

Publication Number Publication Date
CN107171828A true CN107171828A (zh) 2017-09-15
CN107171828B CN107171828B (zh) 2020-04-10

Family

ID=59812354

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710255978.6A Active CN107171828B (zh) 2017-04-18 2017-04-18 一种应对远程调用依赖的超时熔断方法和系统

Country Status (1)

Country Link
CN (1) CN107171828B (zh)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009075A (zh) * 2017-11-27 2018-05-08 南京联创信息科技有限公司 基于Hystrix框架的动态熔断判断方法
CN108600005A (zh) * 2018-04-23 2018-09-28 国云科技股份有限公司 一种防御微服务雪崩效应的方法
CN108681476A (zh) * 2018-05-08 2018-10-19 广州品唯软件有限公司 一种底层接口自动熔断方法及装置
CN108964992A (zh) * 2018-06-29 2018-12-07 郑州云海信息技术有限公司 一种节点故障检测方法、装置和计算机可读存储介质
CN109240765A (zh) * 2018-08-28 2019-01-18 中国联合网络通信集团有限公司 服务资源的熔断方法、装置、设备及计算机可读存储介质
CN109828856A (zh) * 2018-12-26 2019-05-31 天翼电子商务有限公司 基于Dubbo的安全性自动熔断方法及系统、存储介质及终端
CN109918196A (zh) * 2019-01-23 2019-06-21 深圳壹账通智能科技有限公司 系统资源分配方法、装置、计算机设备和存储介质
CN110286890A (zh) * 2019-06-10 2019-09-27 天翼电子商务有限公司 异构语言应用的调用方法、系统、介质及装置
CN110297648A (zh) * 2019-06-12 2019-10-01 阿里巴巴集团控股有限公司 应用自动降级和恢复方法和系统
CN110309016A (zh) * 2019-06-13 2019-10-08 北京奇艺世纪科技有限公司 一种熔断恢复方法、装置及服务器
CN110347488A (zh) * 2019-07-08 2019-10-18 北京字节跳动网络技术有限公司 一种服务处理方法、装置、终端设备及存储介质
CN110399178A (zh) * 2019-06-14 2019-11-01 五八有限公司 一种第三方服务的调用方法、装置、电子设备和存储介质
CN110620703A (zh) * 2019-09-29 2019-12-27 北京首汽智行科技有限公司 一种基于http的服务节点状态确定方法
CN110888780A (zh) * 2019-11-19 2020-03-17 泰康保险集团股份有限公司 应用监控方法、装置、设备及存储介质
CN110941844A (zh) * 2019-11-27 2020-03-31 网易(杭州)网络有限公司 一种认证鉴权方法、系统、电子设备及可读存储介质
CN110971916A (zh) * 2018-09-28 2020-04-07 武汉斗鱼网络科技有限公司 一种直播流畅度监控方法及系统
CN111381951A (zh) * 2020-03-06 2020-07-07 北京思特奇信息技术股份有限公司 一种系统架构中脏数据处理方法、装置及存储介质
CN111882067A (zh) * 2020-07-24 2020-11-03 北京睿知图远科技有限公司 一种基于数据统计的动态熔断算法及电子设备
CN112000720A (zh) * 2019-05-27 2020-11-27 北京京东尚科信息技术有限公司 数据库连接的管理方法、管理系统以及数据库连接池
CN112491735A (zh) * 2020-11-10 2021-03-12 京东数字科技控股股份有限公司 一种流量控制方法、装置、设备和计算机可读存储介质
CN112988434A (zh) * 2019-12-13 2021-06-18 中国银联股份有限公司 一种服务熔断器、服务熔断方法以及计算机可读存储介质
CN113159845A (zh) * 2021-04-21 2021-07-23 杭州网易云音乐科技有限公司 一种数据处理方法、装置、设备及介质
CN113760509A (zh) * 2021-08-25 2021-12-07 北京百度网讯科技有限公司 一种超时管理方法、装置及电子设备
CN113760589A (zh) * 2021-02-05 2021-12-07 北京京东振世信息技术有限公司 一种基于实时流处理框架的服务熔断方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106254331A (zh) * 2016-07-28 2016-12-21 努比亚技术有限公司 一种终端应用请求管理装置及方法、通信系统
CN106559389A (zh) * 2015-09-28 2017-04-05 阿里巴巴集团控股有限公司 一种服务资源发布、调用方法、装置、系统及云服务平台

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106559389A (zh) * 2015-09-28 2017-04-05 阿里巴巴集团控股有限公司 一种服务资源发布、调用方法、装置、系统及云服务平台
CN106254331A (zh) * 2016-07-28 2016-12-21 努比亚技术有限公司 一种终端应用请求管理装置及方法、通信系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ITEYE_16582: "《微服务熔断与隔离》", 《HTTPS://BLOG.CSDN.NET/ITEYE_16582/ARTICLE/DETAILS/82680227》 *
一天不进步就是退步: "《防雪崩利器:熔断器Hystrix的原理与使用》", 《HTTPS://WWW.CNBLOGS.COM/DAVIDWANG456/P/6709181.HTML》 *

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009075A (zh) * 2017-11-27 2018-05-08 南京联创信息科技有限公司 基于Hystrix框架的动态熔断判断方法
CN108600005A (zh) * 2018-04-23 2018-09-28 国云科技股份有限公司 一种防御微服务雪崩效应的方法
CN108681476A (zh) * 2018-05-08 2018-10-19 广州品唯软件有限公司 一种底层接口自动熔断方法及装置
CN108964992A (zh) * 2018-06-29 2018-12-07 郑州云海信息技术有限公司 一种节点故障检测方法、装置和计算机可读存储介质
CN109240765A (zh) * 2018-08-28 2019-01-18 中国联合网络通信集团有限公司 服务资源的熔断方法、装置、设备及计算机可读存储介质
CN110971916B (zh) * 2018-09-28 2022-02-08 武汉斗鱼网络科技有限公司 一种直播流畅度监控方法及系统
CN110971916A (zh) * 2018-09-28 2020-04-07 武汉斗鱼网络科技有限公司 一种直播流畅度监控方法及系统
CN109828856A (zh) * 2018-12-26 2019-05-31 天翼电子商务有限公司 基于Dubbo的安全性自动熔断方法及系统、存储介质及终端
CN109918196A (zh) * 2019-01-23 2019-06-21 深圳壹账通智能科技有限公司 系统资源分配方法、装置、计算机设备和存储介质
WO2020151358A1 (zh) * 2019-01-23 2020-07-30 深圳壹账通智能科技有限公司 系统资源分配方法、装置、计算机设备和存储介质
CN112000720A (zh) * 2019-05-27 2020-11-27 北京京东尚科信息技术有限公司 数据库连接的管理方法、管理系统以及数据库连接池
CN110286890A (zh) * 2019-06-10 2019-09-27 天翼电子商务有限公司 异构语言应用的调用方法、系统、介质及装置
CN110297648A (zh) * 2019-06-12 2019-10-01 阿里巴巴集团控股有限公司 应用自动降级和恢复方法和系统
CN110309016A (zh) * 2019-06-13 2019-10-08 北京奇艺世纪科技有限公司 一种熔断恢复方法、装置及服务器
CN110399178A (zh) * 2019-06-14 2019-11-01 五八有限公司 一种第三方服务的调用方法、装置、电子设备和存储介质
CN110399178B (zh) * 2019-06-14 2022-09-27 五八有限公司 一种第三方服务的调用方法、装置、电子设备和存储介质
CN110347488A (zh) * 2019-07-08 2019-10-18 北京字节跳动网络技术有限公司 一种服务处理方法、装置、终端设备及存储介质
CN110620703A (zh) * 2019-09-29 2019-12-27 北京首汽智行科技有限公司 一种基于http的服务节点状态确定方法
CN110888780A (zh) * 2019-11-19 2020-03-17 泰康保险集团股份有限公司 应用监控方法、装置、设备及存储介质
CN110941844A (zh) * 2019-11-27 2020-03-31 网易(杭州)网络有限公司 一种认证鉴权方法、系统、电子设备及可读存储介质
CN112988434A (zh) * 2019-12-13 2021-06-18 中国银联股份有限公司 一种服务熔断器、服务熔断方法以及计算机可读存储介质
CN112988434B (zh) * 2019-12-13 2024-05-03 中国银联股份有限公司 一种服务熔断器、服务熔断方法以及计算机可读存储介质
CN111381951A (zh) * 2020-03-06 2020-07-07 北京思特奇信息技术股份有限公司 一种系统架构中脏数据处理方法、装置及存储介质
CN111882067A (zh) * 2020-07-24 2020-11-03 北京睿知图远科技有限公司 一种基于数据统计的动态熔断算法及电子设备
CN112491735A (zh) * 2020-11-10 2021-03-12 京东数字科技控股股份有限公司 一种流量控制方法、装置、设备和计算机可读存储介质
CN113760589A (zh) * 2021-02-05 2021-12-07 北京京东振世信息技术有限公司 一种基于实时流处理框架的服务熔断方法和装置
CN113159845A (zh) * 2021-04-21 2021-07-23 杭州网易云音乐科技有限公司 一种数据处理方法、装置、设备及介质
CN113159845B (zh) * 2021-04-21 2022-09-27 杭州网易云音乐科技有限公司 一种数据处理方法、装置、设备及介质
CN113760509A (zh) * 2021-08-25 2021-12-07 北京百度网讯科技有限公司 一种超时管理方法、装置及电子设备
CN113760509B (zh) * 2021-08-25 2023-11-10 北京百度网讯科技有限公司 一种超时管理方法、装置及电子设备

Also Published As

Publication number Publication date
CN107171828B (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
CN107171828A (zh) 一种应对远程调用依赖的超时熔断方法和系统
EP3890240B1 (en) User plane function method, user plane function entity, computer program and system
CN106465084B (zh) 计费方法、网络设备及计费系统
AU2001285628A1 (en) System and method of monitoring and reporting accounting data based on volume
CN103327464B (zh) 一种mtc通信的计费方法和系统、消息处理实体
EP2790427B1 (en) Charging methods, authentication method, charging devices and authentication device
US10237709B2 (en) Online charging method, gateway device, and online charging device
CN107547212A (zh) 一种基于分离架构的计费方法、装置和系统
CN101754162B (zh) 一种欠费风险控制方法、系统及装置
EP3402231A1 (en) Charging method, device, and system
US20200186977A1 (en) Offline charging call detail record threshold control method and system based on cups protocol
CN105247834A (zh) 虚拟网络功能中网络资源的分配方法、编排器及管理器
CN103999406B (zh) 通信路径的处理方法与装置
CN106452803A (zh) 一种实现在线计费的方法、系统及装置
CN101800677A (zh) 一种双向转发检测报文的处理装置及方法
CN106454788A (zh) 一种实现在线计费的方法、系统及装置
US20180270629A1 (en) Charging method, control plane network element, forwarding plane network element, and charging system
CN106937313A (zh) 设备数据传输方法、发送装置和收发系统
CN106843741A (zh) 一种按键事件的处理方法以及智能终端
CN104202769B (zh) 一种实现业务数据上报的方法及装置
CN106982127A (zh) 一种融合计费中消息检测及分流方法及汇接代理装置
CN104010323B (zh) 一种触发消息投递控制方法及设备
CN106507402A (zh) 一种gps定位终端的数据重传控制方法
CN105792161A (zh) 一种在线计费方法、系统及sim卡设备
CN106470196A (zh) 一种信用控制会话的恢复方法、装置和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant