CN110580234A - 适用于微服务器与外部系统之间的熔断方法 - Google Patents
适用于微服务器与外部系统之间的熔断方法 Download PDFInfo
- Publication number
- CN110580234A CN110580234A CN201910780541.3A CN201910780541A CN110580234A CN 110580234 A CN110580234 A CN 110580234A CN 201910780541 A CN201910780541 A CN 201910780541A CN 110580234 A CN110580234 A CN 110580234A
- Authority
- CN
- China
- Prior art keywords
- external system
- micro server
- mode
- calling
- interface
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000004044 response Effects 0.000 claims abstract description 102
- 230000002159 abnormal effect Effects 0.000 claims description 30
- 238000001514 detection method Methods 0.000 claims description 8
- 230000000903 blocking effect Effects 0.000 description 10
- 238000001914 filtration Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000012800 visualization Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000009545 invasion Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000178 monomer Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种适用于微服务器与外部系统之间的熔断方法,该方法先获取当前外部系统状态,并根据外部系统状态来判断微服务器调用外部系统的模式是否处于正常模式;当微服务器调用外部系统的模式处于正常模式时,则记录在预设时间内接口响应时长超过预设时长阀值的超时次数;当超时次数大于预设的次数阈值时,则将微服务器调用外部系统的模式由正常模式切换至保护模式,同时向微服务器输出通知信号。采用本发明技术方案能够防止外部系统异常而引起的调用链阻塞,从而有效地避免由调用链阻塞引起的业务系统崩溃。
Description
技术领域
本发明涉及云计算技术领域,尤其涉及一种适用于微服务器与外部系统之间的熔断方法。
背景技术
微服务架构具备高可用性,在大多数时刻都不会中断业务的进行;同时微服务架构还具有通信性能强的优点,能保证业务从单体架构向微服务架构切换的过程中不会降低通信性能。因此,越来越多的传统企业开始采用微服务架构来进行分布式应用的开发。
目前,实现微服务架构的信息交互方式通常采用两种方式,一种是微服务器之间的远程调的方式,另一种是微服务器调用外部系统API接口的方式,然而目前大多数微服务架构之间没有熔断机制,当微服务架构中存在异常的微服务器或外部系统时,将引起整条调用链的阻塞,进而引起整个业务系统的奔溃。
现有技术中,通常采用基于微服务器的熔断方法来预防微服务构架的阻塞。当微服务器的异常情况达到预设阀值时,熔断机制调用特定微服务器的请求,返回错误信息,并通过设置负载均衡权重调度规则来实现微服务器优先级的升降。而目前基于微服务器的熔断方法是针对微服务器之间的服务熔断,当微服务器调用外部系统的过程中,出现外部系统异常情况时,该方法不能实现微服务器与外部系统之间的熔断,使得微服务架构中仍存阻塞的问题。
发明内容
本发明实施实施例提出一种适用于微服务器与外部系统之间的熔断方法,能够防止外部系统异常而引起的调用链阻塞,从而有效地避免由调用链阻塞引起的业务系统崩溃。
本发明实施例提供了一种适用于微服器与外部系统之间的熔断方法,包括:
获取当前外部系统状态;
根据所述外部系统状态,判断微服务器调用外部系统的模式是否处于正常模式;
若所述微服务器调用外部系统的模式处于正常模式时,则通过计数器记录在预设时间内接口响应时长超过预设时长阀值的超时次数;其中,接口响应时长为微服务器调用外部系统API接口的响应时长;
当所述超时次数大于预设的次数阈值时,则将所述微服务器调用外部系统的模式由正常模式切换至保护模式,同时向所述微服务器输出通知信号,所述通知信号用于标识所述外部系统存在异常。
作为优选方案,所述预设时长阀值,具体为:
获取所述微服务器调用所述外部系统API接口的全部接口响应时长;
从获取的接口响应时长中,提取在预设周期内的接口响应时长,获得第一接口响应时长;
根据所述第一接口响应时长,计算平均响应时长;
根据所述平均响应时长,结合预设的公式,获得所述时长阀值。
作为优选方案,所述预设的公式,具体为:
T=Max(A(m))*90%+C
其中,MaxA(m)表示周期内平均响应时长的最大值,C为常量。
作为优选方案,在向所述微服务器输出通知信号之后,还包括:
在所述微服务器在接收到所述通知信号后,所述微服务器将不再发起调用所述外部系统的指令。
作为优选方案,在判断微服务器调用外部系统的模式是否处于正常模式的之后,还包括:
若所述微服务器调用外部系统的模式处于保护模式时,则向所述微服务器输出通知信号,以使所述微服务器在接收到所述通知信号后,不再发起调用所述外部系统的指令;其中,所述通知信号用于标识所述外部系统存在异常。
作为优选方案,在通过计数器记录在预设时间内接口响应时长超过预设时长阀值的超时次数的之后,还包括:
若所述超时次数小于预设的次数阈值时,则所述微服务调用外部系统的模式仍保持正常模式。
作为优选方案,在将所述微服务器调用外部系统的模式由正常模式切换至保护模式之后,还包括:
在经过预设的心跳时间后,检测外部系统的轻量级接口状态;
若所述外部系统的轻量级接口状态显示为正常状态,则将所述微服务器调用外部系统的模式切换至正常模式,同时所述计数器清零;
若所述外部系统的轻量级接口状态显示为异常状态,则所述微服务器调用外部系统的模式仍处于保护模式。
相应地,本实施例还提供一种适用于微服务器与外部系统之间的熔断装置,包括:
获取模块,用于获取当前外部系统状态;
判断模块,用于根据所述外部系统状态,判断微服务器调用外部系统的模式是否处于正常模式;
第一执行执行模块,用于所述判断模块确定所述微服务器调用外部系统的模式处于正常模式时,则启动计数模块;
计数模块,用于通过计数器记录在预设时间内接口响应时长超过预设时长阀值的超时次数;其中,接口响应时长为微服务器调用外部系统API接口的响应时长;
切换模块,用于当所述超时次数大于预设的次数阈值时,则将所述微服务器调用外部系统的模式由正常模式切换至保护模式,同时向所述微服务器输出通知信号,所述通知信号用于标识所述外部系统存在异常。
作为优选方案,所述适用于微服务器与外部系统之间的熔断装置,还包括:第二执行模块;
所述第二执行模块,用于所述判断模块确定所述微服务器调用外部系统的模式处于保护模式时,向所述微服务器输出通知信号,以使所述微服务器在接收到所述通知信号后,不再发起调用所述外部系统的指令;其中,所述通知信号用于标识所述外部系统存在异常。
作为优选方案,所述适用于微服务器与外部系统之间的熔断装置,还包括检测模块;所述检测模块包括第一单元、判断单元、第二单元和第三单元;
所述第一单元用于在所述切换模块将所述微服务器调用外部系统的模式由正常模式切换至保护模式之后,并在经过预设的心跳时间后,检测外部系统的轻量级接口状态;
所述判断单元用于在所述第一单元获取所述外部系统的轻量级接口状态之后,判断所述外部系统的轻量级接口状态是否为正常状态;
所述第二单元用于判断单元确定所述外部系统的轻量级接口状态为正常状态时,将所述微服务器调用外部系统的模式切换至正常模式,同时所述计数器清零;
所述第三单元用于判断单元确定所述外部系统的轻量级接口状态为异常状态时,所述微服务器调用外部系统的模式仍处于保护模式。
实施本发明实施例,具有如下有益效果:
本发明公开了一种适用于微服务器与外部系统之间的熔断方法,该方法先获取当前外部系统状态,并根据外部系统状态来判断微服务器调用外部系统的模式是否处于正常模式;当微服务器调用外部系统的模式处于正常模式时,则记录在预设时间内接口响应时长超过预设时长阀值的超时次数;当超时次数大于预设的次数阈值时,则将微服务器调用外部系统的模式由正常模式切换至保护模式,同时向微服务器输出通知信号。相比于现有技术采用微服务器之间的熔断方法来预防微服务架构的阻塞,本发明能够在微服务器调用外部系统的情况下,实时检测外部系统状态,一旦发现外部系统异常,则立即启动微服务器与外部系统之间的熔断方法,从而能够有效防止外部系统异常或者调用外部系统响应时长超时而引起的调用链阻塞,进而有效地避免由调用链阻塞引起的业务系统崩溃。
进一步地,本发明在微服务器调用外部系统的模式由正常模式切换至保护模式之后,检测外部系统的轻量级接口状态,当外部系统的轻量级接口状态显示为正常状态时,微服务器可以发起调用外部系统的轻量级接口指令,进一步提高了微服务架构的高可用性。
附图说明
图1是本发明提供的适用于微服务器与外部系统之间的熔断方法的第一实施例的流程示意图;
图2是本发明提供的适用于微服务器与外部系统之间的熔断方法的第二实施例的流程示意图;
图3是本发明提供的适用于微服务器与外部系统之间的熔断装置的第三实施例的结构示意图;
图4是本发明提供的适用于微服务器与外部系统之间的熔断装置的第四实施例的结构示意图;
图5是本发明提供的适用于微服务器与外部系统之间的熔断方法的第二实施例的另一流程示意图;
图6是本发明提供的检测外部系统的轻量级接口状态的方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明第一实施例:
请参见图1,是本发明提供的适用于微服务器与外部系统之间的熔断方法的第一实施例的流程示意图。如图1,该构建方法包括步骤101至步骤104,各步骤具体如下:
步骤101:获取当前外部系统状态。
步骤102:根据外部系统状态,判断微服务器调用外部系统的模式是否处于正常模式。
在本实施例中,外部系统存在正常状态和异常状态,若外部系统处于正常状态时,则微服务器调用外部系统的模式为正常模式;若外部系统处于异常状态时,则微服务器调用外部系统的模式为保护模式。其中,正常模式表示微服务器能够正常调用外部系统API接口;保护模式表示为微服务器不能够调用外部系统API接口。
在本实施例中,获取当前外部系统状态时,若发现外部系统处于异常状态时,则设置微服务器调用外部系统的模式为保护模式,同时向微服务器输出通知信号,以使微服务器在接收到通知信号后,不再发起调用外部系统的指令;能够有效地防止由外部系统异常而导致微服务器阻塞,从而避免由微服务器引起的整条调用链阻塞。
步骤103:若微服务器调用外部系统的模式处于正常模式时,则通过计数器记录在预设时间内接口响应时长超过预设时长阀值的超时次数;其中,接口响应时长为微服务器调用外部系统API接口的响应时长。
譬如,当微服务器调用外部系统的模式处于正常模式时,微服务器会正常调用外部系统,并使用计数器异步记录每一次接口响应时长超过预设时长阀值的超时次数。
在本实施例中,步骤103中预设时长阀值具体获取方式为:获取微服务器调用外部系统API接口的全部接口响应时长;从获取的接口响应时长中,提取在预设周期内的接口响应时长,获得第一接口响应时长;根据第一接口响应时长,计算平均响应时长;根据平均响应时长,结合预设的公式,获得时长阀值。
譬如,获取微服务器调用外部系统API接口的全部接口响应时长,从获取的接口响应时长中,提取一周期内所有接口响应时长。假设同时间段15分钟内的接口响应时长记作:P(m,i),m表示为第m个15分钟,i表示为15分钟内的第 i个响应;假设同时间段15分钟内平均响应时长记作:A(m),m表示为第m个 15分钟,平均响应时长计算公式如下:其中n为15分钟内的响应个数;根据平时均响应时长,结合时长阀值的计算公式如下: T=Max(A(m))*90%+C,其中,MaxA(m)表示在周期内平均响应时长的最大值,C 为常量,获得时长阀值T。
在本实施例中,获取微服务器调用外部系统API接口的全部接口响应时长的具体步骤为:首先通过slf4j输出在预设周期内的接口响应时长,并保存到日志文件,例如记录近一个月的数据到external.system.analysis.log;其次使用采集文件数据的工具FileBeat采集external.system.analysis.log的日志文件,其中FileBeat 仅仅是读取应用的日志文件,不会对应用造成入侵,同时也比较轻量级;接着使用收集数据并记性过滤分析的工具Logstash将FileBeat采集到的日志文件进行过滤分析;紧接着使用将数据生成索引并进行快速查询以及访问的工具 ElasticSearch将Logstash过滤分析后的数据生成索引;最后利用可视化web日志工具,对ElasticSearch的索引进行可视化操作,生成图表信息。
通过上述步骤,可以获取微服务器调用外部系统API接口的全部接口响应时长,使获取到的时长阀值更为准确,更具有参考性;同时接口响应时长以图表的形式呈现,能够直观的获取接口响应时长的数值范围。
在本实施例中,通过获取微服务器调用外部系统API接口的全部接口响应时长,有利于对响应时长进行分析以及将其作为下一步计算平均响应时长的数据来源。
在本实施例中,若微服务器调用外部系统的模式处于保护模式时,则向微服务器输出通知信号,以使微服务器在接收到通知信号后,不再发起调用外部系统的指令。
步骤104:当超时次数大于预设的次数阈值时,则将微服务器调用外部系统的模式由正常模式切换至保护模式,同时向微服务器输出通知信号,通知信号用于标识外部系统存在异常。
在本实施例中,在向微服务器输出通知信号,还包括:微服务器在接收到通知信号后,微服务器将不再发起调用外部系统的指令。
譬如,当一定时间内超时次数到达5次时,则将微服务器调用外部系统的模式由正常模式切换至保护模式,同时微服务器接收到通知信号,例如 RemoteServiceMayBeCrashException信号,起到标识外部系统异常的作用,此时微服务器执行本地设置的策略,例如直接使用缓存本地的数据或者直接给出错误界面,不再发起调用外部系统的指令,从而不会造成微服务器调用外部接口的线程出现阻塞的问题。
在本实施例中,在通过计数器记录在预设时间内接口响应时长超过预设时长阀值的超时次数的之后,还包括:当超时次数小于预设的次数阈值时,则微服务调用外部系统的模式仍保持正常模式。
由上可见,本发明实施例提供的适用于微服务器与外部系统之间的熔断方法,先获取当前外部系统状态,并根据外部系统状态来判断微服务器调用外部系统的模式是否处于正常模式;当微服务器调用外部系统的模式处于正常模式时,则记录在预设时间内接口响应时长超过预设时长阀值的超时次数;当超时次数大于预设的次数阈值时,则将微服务器调用外部系统的模式由正常模式切换至保护模式,同时向微服务器输出通知信号。相比于现有技术采用微服务器之间的熔断方法来预防微服务架构的阻塞,本发明能够在微服务器调用外部系统的情况下,实时检测外部系统状态,一旦发现外部系统异常,则立即启动微服务器与外部系统之间的熔断方法,从而能够有效防止外部系统异常或者调用外部系统响应时长超时而引起的调用链阻塞,进而有效地避免由调用链阻塞引起的业务系统崩溃。
本发明第二实施例:
请参见图2,是本发明提供的适用于微服务器与外部系统之间的熔断方法的第二实施例的流程示意图。在本发明第一实施例的基础上,加入了检测外部系统的轻量级接口状态的方法,具体步骤为:
步骤205:在经过预设的心跳时间后,检测外部系统的轻量级接口状态;
步骤206:若外部系统的轻量级接口状态显示为正常状态,则微服务器调用外部系统的模式切换至正常模式,同时计数器清零。
步骤207:若外部系统的轻量级接口状态显示为异常状态,则微服务器调用外部系统的模式仍处于保护模式。
由上可见,相比于第一实施例,加入了检测外部系统的轻量级接口状态的方法,该方法能够实时检测外部系统的轻量级接口状态,一旦外部系统的轻量级接口显示为正常状态时,微服务器调用外部系统的模式由保护模式切换至正常模式,同时微服务器可以直接向外部轻量级接口发起远程调用,进一步提高了微服务架构的可用性。
为了更好的说明本实施例的流程和原理(参见图5),以下面例子作为详细说明:
第一步,定义一个拦截器,对微服务器请求调用外部系统的信号进行拦截过滤,拦截过滤流程详见第二步骤至第六步骤。
第二步,判断当前微服务器调用外部系统的模式是否处于保护模式,当微服务器调用外部系统的模式为保护模式时,向微服务器输出通知信号,以使微服务器在接收到通知信号后,不再发起调用外部系统的指令。
第三步,当微服务器调用外部系统的模式为正常模式时,微服务器正常调用外部系统,并检测微服务器调用外部系统API接口的响应时长是否超过预设时长阀值;
第五步,当微服务器调用外部系统API接口的响应时长超过预设时长阀值时,则计数器加1;当微服务器调用外部系统API接口的响应时长未超过预设时长阀值,则微服务器正常调用外部系统;
第六步,当计数器到达预设的次数阀值时,将微服务器调用外部系统的模式由正常模式切换至保护模式,并向微服务器输出通知信号,以使微服务器在接收到通知信号后,不再发起调用外部系统的指令;同时启动检测外部系统的轻量级接口状态的方法。
为了更好说明检测外部系统的轻量级接口状态的方法(参见图6),以下面例子作为详细说明:
第七步,在经过预设的心跳时间后,检测外部系统的轻量级接口状态;
第八步,若外部系统的轻量级接口状态显示为正常状态,则微服务器调用外部系统的模式切换至正常模式,同时计数器清零。
第九步,若外部系统的轻量级接口状态显示为异常状态,则微服务器调用外部系统的模式仍处于保护模式。
由上可见,本发明能够在微服务器调用外部系统的情况下,实时检测外部系统状态,一旦发现外部系统异常,则立即启动微服务器与外部系统之间的熔断方法,从而能够有效防止外部系统异常或者调用外部系统响应时长超时而引起的调用链阻塞,进而有效地避免由调用链阻塞引起的业务系统崩溃。同时还加入了检测外部系统的轻量级接口状态的方法,能够实时检测外部系统的轻量级接口状态,一旦外部系统的轻量级接口显示为正常状态时,微服务器调用外部系统的模式由保护模式切换至正常模式,同时微服务器可以直接向外部轻量级接口发起远程调用,进一步提高了微服务架构的可用性。
本发明第三实施例:
请参见图3,是本发明提供的一种适用于微服务器与外部系统之间的熔断装置的第三实施例的结构示意图。如图3所示,该装置包括:
获取模块301,用于获取当前外部系统状态;
判断模块302,用于根据外部系统状态,判断微服务器调用外部系统的模式是否处于正常模式。
在本实施例中,外部系统存在正常状态和异常状态,若外部系统处于正常状态时,则微服务器调用外部系统的模式为正常模式;若外部系统处于异常状态时,则微服务器调用外部系统的模式为保护模式。其中,正常模式表示微服务器能够正常调用外部系统API接口;保护模式表示为微服务器不能够调用外部系统API接口。
在本实施例中,获取当前外部系统状态时,若发现外部系统处于异常状态时,则设置微服务器调用外部系统的模式为保护模式,同时向微服务器输出通知信号,以使微服务器在接收到通知信号后,不再发起调用外部系统的指令,能够有效地防止由外部系统异常而导致微服务器阻塞,从而有效避免由微服务器引起的整条调用链阻塞。
第一执行模块303,用于判断模块302确定微服务器调用外部系统的模式处于正常模式时,则启动计数模块。
在本实施例中,适用于微服务器与外部系统之间的熔断装置,还包括:第二执行模块,用于判断模块确定微服务器调用外部系统的模式处于保护模式时,向微服务器输出通知信号,以使微服务器在接收到通知信号后,不再发起调用外部系统的指令;其中,通知信号用于标识外部系统存在异常。
计数模块304,用于通过计数器记录在预设时间内接口响应时长超过预设时长阀值的超时次数;其中,接口响应时长为微服务器调用外部系统API接口的响应时长。
譬如,当微服务器调用外部系统的模式处于正常模式时,微服务器会正常调用外部系统,并使用计数器异步记录每一次接口响应时长超过预设时长阀值的超时次数。
在本实施例中,步骤304中预设时长阀值具体获取方式为:获取微服务器调用外部系统API接口的全部接口响应时长;从获取的接口响应时长中,提取在预设周期内的接口响应时长,获得第一接口响应时长;根据第一接口响应时长,计算平均响应时长;根据平均响应时长,结合预设的公式,获得时长阀值。
譬如,获取微服务器调用外部系统API接口的全部接口响应时长,从获取的接口响应时长中,提取一周期内所有接口响应时长。假设同时间段15分钟内的接口响应时长记作:P(m,i),m表示为第m个15分钟,i表示为15分钟内的第i个响应;假设同时间段15分钟内平均响应时长记作:A(m),m表示为第m个 15分钟,平均响应时长计算公式如下:其中n为15分钟内的响应个数;根据平时均响应时长,结合时长阀值的计算公式如下: T=Max(A(m))*90%+C,其中,MaxA(m)表示在周期内平均响应时长的最大值,C 为常量,获得时长阀值T。
在本实施例中,获取微服务器调用外部系统API接口的全部接口响应时长的具体步骤为:首先通过slf4j输出在预设周期内的接口响应时长,并保存到日志文件,例如记录近一个月的数据到external.system.analysis.log;其次使用采集文件数据的工具FileBeat采集external.system.analysis.log的日志文件,其中FileBeat 仅仅是读取应用的日志文件,不会对应用造成入侵,同时也比较轻量级;接着使用收集数据并记性过滤分析的工具Logstash将FileBeat采集到的日志文件进行过滤分析;紧接着使用将数据生成索引并进行快速查询以及访问的工具 ElasticSearch将Logstash过滤分析后的数据生成索引;最后利用可视化web日志工具,对ElasticSearch的索引进行可视化操作,生成图表信息。
通过上述步骤,可以获取微服务器调用外部系统API接口的全部接口响应时长,使获取到的时长阀值更为准确,更具有参考性;同时接口响应时长以图表的形式呈现,能够直观的获取接口响应时长的数值范围。
在本实施例中,通过获取微服务器调用外部系统API接口的全部接口响应时长,有利于对响应时长进行分析以及将其作为下一步计算平均响应时长的数据来源。
在本实施例中,若微服务器调用外部系统的模式处于保护模式时,则向微服务器输出通知信号,以使微服务器在接收到通知信号后,不再发起调用外部系统的指令。
切换模块305,用于当超时次数大于预设的次数阈值时,则将微服务器调用外部系统的模式由正常模式切换至保护模式,同时向微服务器输出通知信号,通知信号用于标识外部系统存在异常。
在本实施例中,在向微服务器输出通知信号之后,还包括:微服务器在接收到通知信号后,微服务器将不再发起调用外部系统的指令。
譬如,当一定时间内超时次数到达5次时,则将微服务器调用外部系统的模式由正常模式切换至保护模式,同时微服务器接收到通知信号,例如 RemoteServiceMayBeCrashException信号,起到标识外部系统异常的作用,此时微服务器执行本地设置的策略,例如直接使用缓存本地的数据或者直接给出错误界面,不再发起调用外部系统的指令,从而不会造成微服务器调用外部接口的线程出现阻塞的问题。
在本实施例中,在通过计数器记录在预设时间内接口响应时长超过预设时长阀值的超时次数的之后,还包括:当超时次数小于预设的次数阈值时,则微服务调用外部系统的模式仍保持正常模式。
由上可见,本发明实施例提供的适用于微服务器与外部系统之间的熔断装置,能够在微服务器调用外部系统的情况下,实时检测外部系统状态,一旦发现外部系统异常,则立即启动微服务器与外部系统之间的熔断方法,从而能够有效防止外部系统异常或者调用外部系统响应时长超时而引起的调用链阻塞,进而有效地避免由调用链阻塞引起的业务系统崩溃。
本发明第四实施例:
请参见图4,是本发明提供的适用于微服务器与外部系统之间的熔断装置的第四实施例的流程示意图。在本发明第三实施例的基础上,还包括检测模块 406,
检测模块406,用于检测外部系统的轻量级接口状态,其中检测模块包括第一单元、判断单元、第二单元和第三单元;
第一单元用于在切换模块将微服务器调用外部系统的模式由正常模式切换至保护模式之后,并在经过预设的心跳时间后,检测外部系统的轻量级接口状态;判断单元用于在第一单元获取外部系统的轻量级接口状态之后,判断外部系统的轻量级接口状态是否为正常状态;第二单元用于判断单元确定外部系统的轻量级接口状态为正常状态时,将微服务器调用外部系统的模式切换至正常模式,同时计数器清零;第三单元用于判断单元确定外部系统的轻量级接口状态为异常状态时,微服务器调用外部系统的模式仍处于保护模式。
由上可见,相比于第三实施例,加入了检测模块能够实时检测外部系统的轻量级接口状态,一旦外部系统的轻量级接口显示为正常状态时,微服务器调用外部系统的模式由保护模式切换至正常模式,同时微服务器可以直接向外部轻量级接口发起远程调用,进一步提高了微服务架构的可用性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种适用于微服务器与外部系统之间的熔断方法,其特征在于,包括:
获取当前外部系统状态;
根据所述外部系统状态,判断微服务器调用外部系统的模式是否处于正常模式;
若所述微服务器调用外部系统的模式处于正常模式时,则通过计数器记录在预设时间内接口响应时长超过预设时长阀值的超时次数;其中,接口响应时长为微服务器调用外部系统API接口的响应时长;
当所述超时次数大于预设的次数阈值时,则将所述微服务器调用外部系统的模式由正常模式切换至保护模式,同时向所述微服务器输出通知信号,所述通知信号用于标识所述外部系统存在异常。
2.如权利要求1所述的适用于微服务器与外部系统之间的熔断方法,其特征在于,所述预设时长阀值,具体为:
获取所述微服务器调用所述外部系统API接口的全部接口响应时长;
从获取的接口响应时长中,提取在预设周期内的接口响应时长,获得第一接口响应时长;
根据所述第一接口响应时长,计算平均响应时长;
根据所述平均响应时长,结合预设的公式,获得所述时长阀值。
3.如权利要求2所述的适用于微服务器与外部系统之间的熔断方法,其特征在于,所述预设的公式,具体为:
T=Max(A(m))*90%+C
其中,MaxA(m)表示周期内平均响应时长的最大值,C为常量。
4.如权利要求1所述的适用于微服务器与外部系统之间的熔断方法,其特征在于,在向所述微服务器输出通知信号之后,还包括:
在所述微服务器在接收到所述通知信号后,所述微服务器将不再发起调用所述外部系统的指令。
5.如权利要求1所述的适用于微服务器与外部系统之间的熔断方法,其特征在于,在判断微服务器调用外部系统的模式是否处于正常模式的之后,还包括:
若所述微服务器调用外部系统的模式处于保护模式时,则向所述微服务器输出通知信号,以使所述微服务器在接收到所述通知信号后,不再发起调用所述外部系统的指令;其中,所述通知信号用于标识所述外部系统存在异常。
6.如权利要求1所述的适用于微服务器与外部系统之间的熔断方法,其特征在于,在通过计数器记录在预设时间内接口响应时长超过预设时长阀值的超时次数的之后,还包括:
若所述超时次数小于预设的次数阈值时,则所述微服务调用外部系统的模式仍保持正常模式。
7.如权利要求1所述的适用于微服务器与外部系统之间的熔断方法,其特征在于,在将所述微服务器调用外部系统的模式由正常模式切换至保护模式之后,还包括:
在经过预设的心跳时间后,检测外部系统的轻量级接口状态;
若所述外部系统的轻量级接口状态显示为正常状态,则将所述微服务器调用外部系统的模式切换至正常模式,同时所述计数器清零;
若所述外部系统的轻量级接口状态显示为异常状态,则所述微服务器调用外部系统的模式仍处于保护模式。
8.一种适用于微服务器与外部系统之间的熔断装置,其特征在于,包括:
获取模块,用于获取当前外部系统状态;
判断模块,用于根据所述外部系统状态,判断微服务器调用外部系统的模式是否处于正常模式;
第一执行模块,用于所述判断模块确定所述微服务器调用外部系统的模式处于正常模式时,则启动计数模块;
计数模块,用于通过计数器记录在预设时间内接口响应时长超过预设时长阀值的超时次数;其中,接口响应时长为微服务器调用外部系统API接口的响应时长;
切换模块,用于当所述超时次数大于预设的次数阈值时,则将所述微服务器调用外部系统的模式由正常模式切换至保护模式,同时向所述微服务器输出通知信号,所述通知信号用于标识所述外部系统存在异常。
9.如权利要求8所述的适用于微服务器与外部系统之间的熔断装置,其特征在于,还包括:第二执行模块;
所述第二执行模块,用于所述判断模块确定所述微服务器调用外部系统的模式处于保护模式时,向所述微服务器输出通知信号,以使所述微服务器在接收到所述通知信号后,不再发起调用所述外部系统的指令;其中,所述通知信号用于标识所述外部系统存在异常。
10.如权利要求8所述的适用于微服务器与外部系统之间的熔断装置,其特征在于,还包括检测模块;所述检测模块包括第一单元、判断单元、第二单元和第三单元;
所述第一单元用于在所述切换模块将所述微服务器调用外部系统的模式由正常模式切换至保护模式之后,并在经过预设的心跳时间后,检测外部系统的轻量级接口状态;
所述判断单元用于在所述第一单元获取所述外部系统的轻量级接口状态之后,判断所述外部系统的轻量级接口状态是否为正常状态;
所述第二单元用于判断单元确定所述外部系统的轻量级接口状态为正常状态时,将所述微服务器调用外部系统的模式切换至正常模式,同时所述计数器清零;
所述第三单元用于判断单元确定所述外部系统的轻量级接口状态为异常状态时,所述微服务器调用外部系统的模式仍处于保护模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910780541.3A CN110580234A (zh) | 2019-08-22 | 2019-08-22 | 适用于微服务器与外部系统之间的熔断方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910780541.3A CN110580234A (zh) | 2019-08-22 | 2019-08-22 | 适用于微服务器与外部系统之间的熔断方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110580234A true CN110580234A (zh) | 2019-12-17 |
Family
ID=68811743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910780541.3A Pending CN110580234A (zh) | 2019-08-22 | 2019-08-22 | 适用于微服务器与外部系统之间的熔断方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110580234A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131471A (zh) * | 2019-12-27 | 2020-05-08 | 支付宝(杭州)信息技术有限公司 | 一种业务系统的运行方法、装置和电子设备 |
CN111787073A (zh) * | 2020-06-18 | 2020-10-16 | 多加网络科技(北京)有限公司 | 一种统一服务的限流熔断平台及其方法 |
CN111814178A (zh) * | 2020-06-29 | 2020-10-23 | 四川长虹电器股份有限公司 | 一种针对第三方应用的数据回调熔断保护方法 |
CN111865978A (zh) * | 2020-07-20 | 2020-10-30 | 深圳乐信软件技术有限公司 | 一种微服务的请求标识更新方法、装置、设备及介质 |
CN112491735A (zh) * | 2020-11-10 | 2021-03-12 | 京东数字科技控股股份有限公司 | 一种流量控制方法、装置、设备和计算机可读存储介质 |
CN113641518A (zh) * | 2021-08-16 | 2021-11-12 | 京东科技控股股份有限公司 | 服务调用方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005295477A (ja) * | 2004-04-06 | 2005-10-20 | Yamatake Corp | ネットワーク接続通信装置、通信制御方法および通信制御プログラム |
WO2014132787A1 (ja) * | 2013-02-28 | 2014-09-04 | シャープ株式会社 | 見守りサービスシステム、見守りサービス方法、見守りサーバ装置、及びコンピュータプログラム |
CN108540533A (zh) * | 2018-03-14 | 2018-09-14 | 聚好看科技股份有限公司 | 一种应答请求的方法和装置 |
-
2019
- 2019-08-22 CN CN201910780541.3A patent/CN110580234A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005295477A (ja) * | 2004-04-06 | 2005-10-20 | Yamatake Corp | ネットワーク接続通信装置、通信制御方法および通信制御プログラム |
WO2014132787A1 (ja) * | 2013-02-28 | 2014-09-04 | シャープ株式会社 | 見守りサービスシステム、見守りサービス方法、見守りサーバ装置、及びコンピュータプログラム |
CN108540533A (zh) * | 2018-03-14 | 2018-09-14 | 聚好看科技股份有限公司 | 一种应答请求的方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131471A (zh) * | 2019-12-27 | 2020-05-08 | 支付宝(杭州)信息技术有限公司 | 一种业务系统的运行方法、装置和电子设备 |
CN111131471B (zh) * | 2019-12-27 | 2023-03-24 | 支付宝(杭州)信息技术有限公司 | 一种业务系统的运行方法、装置和电子设备 |
CN111787073A (zh) * | 2020-06-18 | 2020-10-16 | 多加网络科技(北京)有限公司 | 一种统一服务的限流熔断平台及其方法 |
CN111787073B (zh) * | 2020-06-18 | 2023-08-22 | 庞茂林 | 一种统一服务的限流熔断平台及其方法 |
CN111814178A (zh) * | 2020-06-29 | 2020-10-23 | 四川长虹电器股份有限公司 | 一种针对第三方应用的数据回调熔断保护方法 |
CN111865978A (zh) * | 2020-07-20 | 2020-10-30 | 深圳乐信软件技术有限公司 | 一种微服务的请求标识更新方法、装置、设备及介质 |
CN111865978B (zh) * | 2020-07-20 | 2022-11-15 | 深圳乐信软件技术有限公司 | 一种微服务的请求标识更新方法、装置、设备及介质 |
CN112491735A (zh) * | 2020-11-10 | 2021-03-12 | 京东数字科技控股股份有限公司 | 一种流量控制方法、装置、设备和计算机可读存储介质 |
CN113641518A (zh) * | 2021-08-16 | 2021-11-12 | 京东科技控股股份有限公司 | 服务调用方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110580234A (zh) | 适用于微服务器与外部系统之间的熔断方法 | |
CN107038107B (zh) | 一种获取应用卡顿信息的方法及装置 | |
US8549360B2 (en) | Early collection of diagnostic information | |
JP2008059102A (ja) | コンピュータ資源監視プログラム | |
CN113903389A (zh) | 一种慢盘检测方法、装置及计算机可读写存储介质 | |
CN110933172A (zh) | 一种基于云计算的远程监控系统及方法 | |
CN107465652B (zh) | 一种操作行为检测方法、服务器及系统 | |
CN113792341A (zh) | 应用程序的隐私合规自动化检测方法、装置、设备及介质 | |
CN112749013A (zh) | 线程负载的检测方法、装置、电子设备及存储介质 | |
CN110942583B (zh) | 烟感告警上报的方法、装置及终端 | |
CN112764959B (zh) | 应用程序卡死问题的监测方法、装置、设备及存储介质 | |
CN113132393A (zh) | 异常检测方法、装置、电子设备以及存储介质 | |
CN113485917B (zh) | 一种接口管理方法、装置、电子设备及存储介质 | |
KR101553923B1 (ko) | 시스템 사용량 분석 장치 및 방법 | |
KR101119846B1 (ko) | 원격 비디오 시스템의 저장 공간 장애 판별 장치 및 방법 | |
JP2011039676A (ja) | 監視装置及び警報通知方法 | |
KR101791021B1 (ko) | 임계값 자동 설정에 의한 시스템 자동 모니터링 방법 및 이를 적용한 모니터링 시스템 | |
CN113138872A (zh) | 数据库系统的异常处理装置及方法 | |
CN113364602B (zh) | 一种触发页面故障报警的方法、装置和存储介质 | |
CN116467739B (zh) | 一种计算机大数据存储系统及方法 | |
CN114385387B (zh) | 访问信息生成方法、装置和计算机设备 | |
US20230069206A1 (en) | Recovery judgment apparatus, recovery judgment method and program | |
CN113590047A (zh) | 数据库的筛查方法、装置、电子设备及存储介质 | |
CN118225977A (zh) | 应用于烟叶中的水分检测预警方法、装置、设备及介质 | |
CN118779018A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191217 |
|
RJ01 | Rejection of invention patent application after publication |