CN110674060A - 服务的熔断控制方法及装置 - Google Patents

服务的熔断控制方法及装置 Download PDF

Info

Publication number
CN110674060A
CN110674060A CN201910844181.9A CN201910844181A CN110674060A CN 110674060 A CN110674060 A CN 110674060A CN 201910844181 A CN201910844181 A CN 201910844181A CN 110674060 A CN110674060 A CN 110674060A
Authority
CN
China
Prior art keywords
calling
function
fusing
external system
system 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
Application number
CN201910844181.9A
Other languages
English (en)
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.)
Ping An Puhui Enterprise Management Co Ltd
Original Assignee
Ping An Puhui Enterprise Management 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 Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN201910844181.9A priority Critical patent/CN110674060A/zh
Publication of CN110674060A publication Critical patent/CN110674060A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明提供了一种服务的熔断控制方法及装置。该方法包括:预先在目标***中封装断路器的功能切片,其中断路器的功能切片包括执行熔断功能和取消熔断功能的判断逻辑;将目标***中调用外部***接口的进程与封装的断路器的功能切片关联;监听获知触发调用外部***接口指令时,控制在执行调用外部***接口指令所对应的调用外部***接口的进程之前,执行与对应的调用外部***接口的进程相关联的断路器的功能切片,根据断路器的功能切片的执行熔断功能和取消熔断功能的判断逻辑,确定是否将当前对应的调用外部***接口的进程进行熔断或取消熔断。本发明提高了***调用时的处理性能。

Description

服务的熔断控制方法及装置
技术领域
本发明涉及***服务技术领域,尤其涉及一种服务的熔断控制方法及装置。
背景技术
在业务运行过程中,大部分***都会和其他***进行接***互。***与***进行接***互时,一般是通过服务的提供和调用逻辑来实现的,也即,***与***进行接***互涉及服务提供方的***和服务调用方的***。
对于服务提供方的***,在发生服务障碍时,例如在某个时间段其服务能力大幅下降或者服务挂起时,提供不了相应资源,所以服务调用方的***会一直处于请求调用状态。如果没有任何服务治理的能力,那么服务调用方的***会强关联服务提供方的***的服务状态,如果服务调用方的***的集群里的每台机器都被服务提供方的***挂起的接口影响,会造成资源得不到释放,导致服务调用方的***的其他服务均可能受到影响,往往需要人工干预处理。
针对相关技术中因服务提供方的服务障碍而导致服务调用方的***挂起等待,进而需要人工介入的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明的目的是提供一种服务的熔断控制方法及装置,用于解决现有技术中因服务提供方的服务障碍而导致服务调用方的***挂起等待,进而需要人工介入的技术问题。
为实现上述目的,根据本发明实施例的一方面,提供了一种服务的熔断控制方法,该方法包括:预先在目标***中封装断路器的功能切片,其中断路器的功能切片包括执行熔断功能和取消熔断功能的判断逻辑;将目标***中调用外部***接口的进程与封装的断路器的功能切片关联;监听获知触发调用外部***接口指令时,控制在执行调用外部***接口指令所对应的调用外部***接口的进程之前,执行与对应的调用外部***接口的进程相关联的断路器的功能切片,根据断路器的功能切片的执行熔断功能和取消熔断功能的判断逻辑,确定是否将当前对应的调用外部***接口的进程进行熔断或取消熔断。
进一步地,目标***包含spring开源***框架,将调用外部***接口的进程与封装的功能切片关联,包括:将调用外部***接口的进程通过spring开源***框架以annotation注释的形式引入断路器的功能切面;配置annotation注释以使在执行调用外部***接口的进程之前执行对应断路器的功能切片。
进一步地,断路器的功能切片包括的执行熔断功能和取消熔断功能的判断逻辑,包括:获取断路器的取样时间范围;在断路器的取样时间范围内统计当前所需调用的外部***接口的总次数M,以及调用外部***接口时出现超时的次数N;将N/M与预设熔断阈值进行比较;若N/M大于等于预设熔断阈值,则控制开启熔断功能,若N/M=0,则控制取消熔断功能。
进一步地,获取断路器的取样时间范围,包括:获取调用外部***接口指令中对于调用外部***接口指令所对应的断路器的功能切片所指定的参数值;在目标的缓存配置中获取与指定的参数值所对应的断路器的取样时间范围,其中,目标***的缓存配置中预设有参数值及断路器的取样时间范围的映射关系。
进一步地,断路器的功能切片包括的执行熔断功能和取消熔断功能的判断逻辑,还包括:在开启熔断功能后,检测到触发调用外部***接口的进程的调用请求时,判断调用请求指向的调用目标是否为已进行熔断的外部***接口的进程;若判断结果为是,拒绝调用请求。
进一步地,断路器的功能切片包括的执行熔断功能和取消熔断功能的判断逻辑,还包括:在开启熔断功能后的累计时间在第一时间阈值内,检测到触发调用外部***接口的进程的调用请求时,判断调用请求指向的调用目标是否为已进行熔断的外部***接口的进程;若判断结果为是,拒绝调用请求;在开启熔断功能后的累计时间超过第一时间阈值后,检测到触发调用外部***接口的进程的调用请求时,判断调用请求指向的调用目标是否为已进行熔断的外部***接口的进程;若判断结果为是,在调用请求中放行预设数量的调用请求以尝试调用对应的外部***接口,若调用成功,取消熔断功能,以允许调用请求。
为实现上述目的,根据本发明实施例的一方面,提供了一种服务的熔断控制装置,该装置包括:
封装模块,用于预先在目标***中封装断路器的功能切片,其中断路器的功能切片包括执行熔断功能和取消熔断功能的判断逻辑;
关联模块,用于将目标***中调用外部***接口的进程与封装的断路器的功能切片关联;
确定模块,用于监听获知触发调用外部***接口指令时,控制在执行调用外部***接口指令所对应的调用外部***接口的进程之前,执行与对应的调用外部***接口的进程相关联的断路器的功能切片,根据断路器的功能切片的执行熔断功能和取消熔断功能的判断逻辑,确定是否将当前对应的调用外部***接口的进程进行熔断或取消熔断。
进一步地,目标***包含spring开源***框架,关联模块包括:
注释引入单元,用于将调用外部***接口的进程通过spring开源***框架以annotation注释的形式引入断路器的功能切面;
注释配置单元,用于配置annotation注释以使在执行调用外部***接口的进程之前执行对应断路器的功能切片。
进一步地,断路器的功能切片包括的执行熔断功能和取消熔断功能的判断逻辑,包括:获取断路器的取样时间范围;在断路器的取样时间范围内统计当前所需调用的外部***接口的总次数M,以及调用外部***接口时出现超时的次数N;将N/M与预设熔断阈值进行比较;若N/M大于等于预设熔断阈值,则控制开启熔断功能,若N/M=0,则控制取消熔断功能。
进一步地,获取断路器的取样时间范围,包括:获取调用外部***接口指令中对于调用外部***接口指令所对应的断路器的功能切片所指定的参数值;在目标***的缓存配置中获取与指定的参数值所对应的断路器的取样时间范围,其中,目标***的缓存配置中预设有参数值及断路器的取样时间范围的映射关系。
进一步地,断路器的功能切片包括的执行熔断功能和取消熔断功能的判断逻辑,还包括:在开启熔断功能后,检测到触发调用外部***接口的进程的调用请求时,判断调用请求指向的调用目标是否为已进行熔断的外部***接口的进程;若判断结果为是,拒绝调用请求。
进一步地,断路器的功能切片包括的执行熔断功能和取消熔断功能的判断逻辑,还包括:在开启熔断功能后的累计时间在第一时间阈值内,检测到触发调用外部***接口的进程的调用请求时,判断调用请求指向的调用目标是否为已进行熔断的外部***接口的进程;若判断结果为是,拒绝调用请求;在开启熔断功能后的累计时间超过第一时间阈值后,检测到触发调用外部***接口的进程的调用请求时,判断调用请求指向的调用目标是否为已进行熔断的外部***接口的进程;若判断结果为是,在调用请求中放行预设数量的调用请求以尝试调用对应的外部***接口,若调用成功,取消熔断功能,以允许调用请求。
为实现上述目的,根据本发明实施例的另一方面,提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述服务的熔断控制方法的步骤。
为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述服务的熔断控制方法的步骤。
本发明提供的服务的熔断控制方案中,将包括执行熔断功能和取消熔断功能的判断逻辑的断路器的功能切片封装至服用调用方的***中,在触发调用服务提供方的***业务时,在执行调用逻辑之前,先控制切入到关联的断路器的功能切片进行熔断与否的判断,若符合熔断判定逻辑,可直接进行熔断,后续再次触发该服务提供方的***业务的业务时,无需一直等待或挂起,提高业务处理性能;并且,在发生执行熔断功能后,还可以利用取消熔断功能的判断逻辑对是否取消熔断进行判断,在符合取消熔断的控制逻辑时,自动取消熔断恢复正常服务调用功能。这种控制方案,有效地解决了现有技术中因服务提供方的服务障碍而导致服务调用方的***挂起等待,进而需要人工介入的问题,降低人工干预度,提高了服务***交互时处理性能。
附图说明
图1为本发明实施例提供的服务的熔断控制方法的一种可选的流程图;
图2为本发明实施例提供的服务的熔断控制装置的一种可选的结构框图;
图3为本发明实施例提供的服务的熔断控制装置的另一种可选的结构框图;
图4为本发明实施例提供的计算机设备的硬件结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明公开了一种服务的熔断控制方法及装置、计算机设备和计算机可读存储介质。在本发明中,通过将包括执行熔断功能和取消熔断功能的判断逻辑的断路器的功能切片封装至服用调用方的***中,在触发调用服务提供方的***业务时,在执行调用逻辑之前,先控制切入到关联的断路器的功能切片进行熔断与否的判断,若符合熔断判定逻辑,可直接进行熔断,后续再次触发该服务提供方的***业务的业务时,无需一直等待或挂起,提高业务处理性能;并且,在发生执行熔断功能后,还可以利用取消熔断功能的判断逻辑对是否取消熔断进行判断,在符合取消熔断的控制逻辑时,自动取消熔断恢复正常服务调用功能。这种控制方案有效地解决了现有技术中因服务提供方的服务障碍而导致服务调用方的***挂起等待,进而需要人工介入的问题,降低人工干预度,提高了服务***交互时处理性能。
关于本发明提供的服务的熔断控制方法及装置、计算机设备和计算机可读存储介质的具体实施例,将在下文中详细描述。
实施例一
本发明实施例提供了一种服务的熔断控制方法,用以至少解决现有技术中因服务提供方的服务障碍而导致服务调用方的***挂起等待,进而需要人工介入的问题。具体地,图1为本发明实施例一提供的服务的熔断控制方法的一种可选的流程图,如图1所示,该服务的熔断控制方法包括如下的步骤S101至步骤S103。
步骤S101:预先在目标***中封装断路器的功能切片,其中断路器的功能切片包括执行熔断功能和取消熔断功能的判断逻辑。
服务调用方的***作为目标***,封装一个通用的断路器的功能切面,该断路器的功能切片包含有执行熔断功能和取消熔断功能的判断逻辑,作为是否进行熔断或熔断后是否取消熔断的依据。其中,优选地,本实施例中的服务调用方的***可以为包含spring开源***框架***。这种spring开源***框架***应用范围广,通用性强,与本方案的服务的熔断控制方法的融合度强。并且,引入断路器的功能切面,是不需要对这个调用接口的方法做任何代码变更的,也不需要去对服务提供方做任何改进,兼容性强。
步骤S102:将目标***中调用外部***接口的进程与封装的断路器的功能切片关联。
将服务调用方的***调用外部***接口的方法进程与功能切面相关联,以便在进行外部***接口调用时,通过断路器的功能切面进行熔断与否的判断。其中,可以将目标***(服务调用方的***)中全部的调用外部***接口的方法进程均与断路器的功能切面相关联,也可以选择性的只将部分业务关联度较高的调用外部***接口的方法进程相关联,让具体哪一调用进程进行熔断开启/停止功能变为可选可控,提高***业务调用时的智能化控制。
服务调用方的***可以为spring开源***框架***,在进行关联时,可以利用该***的自带的annotation注释功能来实现。具体来说,先将调用外部***接口的进程通过spring开源***框架以annotation注释的形式引入断路器的功能切面;然后对annotation注释信息配置,通过配置可以选择执行断路器的功能切面的具体时序逻辑,在本实施例中,通过对annotation注释信息配置使得在执行调用外部***接口的进程之前执行对应断路器的功能切片。这样的话,在进行服务调用时,无需每次执行调用进程,而是可以在执行进程之前确定是否熔断,提高调用性能。
此处与现有技术中已存在熔断功能相比较:对于部分调用时也利用熔断思想的现有技术,其处理逻辑为:发起调用请求,执行调用请求,判断在预设响应时间(例如5s)内是否调用成功,若不成功,触发熔断逻辑。现有技术的控制逻辑,虽然也具备熔断功能,但是其每次调用都需要等待预设响应时间,对于服务提供***已经真实发生故障的情况,仍然每次调用都等待该预设响应时间,大量调用请求会用到大量预设响应时间(大量5s叠加后的时间),降低处理速度及性能。本发明将服务调用方的***封装断路器的功能切片的同时,配置执行该功能切片的时序逻辑,在执行调用外部***接口的进程之前执行对应断路器的功能切片,若判定需要熔断,即可进行熔断,以后的每个调用请求均无需执行等待响应时间,大大提高处理性能。
步骤S103:监听获知触发调用外部***接口指令时,控制在执行调用外部***接口指令所对应的调用外部***接口的进程之前,执行与对应的调用外部***接口的进程相关联的断路器的功能切片,根据断路器的功能切片的执行熔断功能和取消熔断功能的判断逻辑,确定是否将当前对应的调用外部***接口的进程进行熔断或取消熔断。
在上述实施方式中,通过将包括执行熔断功能和取消熔断功能的判断逻辑的断路器的功能切片封装至服用调用方的***中,在触发调用服务提供方的***业务时,在执行调用逻辑之前,先控制切入到关联的断路器的功能切片进行熔断与否的判断,若符合熔断判定逻辑,可直接进行熔断,后续再次触发该服务提供方的***业务的业务时,无需一直等待或挂起,提高业务处理性能;并且,在发生执行熔断功能后,还可以利用取消熔断功能的判断逻辑对是否取消熔断进行判断,在符合取消熔断的控制逻辑时,自动取消熔断恢复正常服务调用功能。这种控制方案有效地解决了现有技术中因服务提供方的服务障碍而导致服务调用方的***挂起等待,进而需要人工介入的问题,降低人工干预度,提高了服务***交互时处理性能。
具体实现时,断路器的功能切片的执行熔断功能和取消熔断功能的判断逻辑,可以包括如下控制逻辑:获取断路器的取样时间范围;在断路器的取样时间范围内统计当前所需调用的外部***接口的总次数M,以及调用外部***接口时出现超时的次数N;将N/M与预设熔断阈值进行比较;若N/M大于等于预设熔断阈值,则控制开启熔断功能,若N/M=0,则控制取消熔断功能,若尚未启动熔断功能,可以不进行任何操作。若N/M小于预设熔断阈值,可以不进行任何操作,或者在已经触发熔断功能时,进行取消熔断操作。此外,在开启熔断功能后,检测到触发调用外部***接口的进程的调用请求时,判断调用请求指向的调用目标是否为已进行熔断的外部***接口的进程;若判断结果为是,拒绝调用请求。具体地,例如,断路器在取样的时间范围内,统计调用这个外部接口的方法的总次数M,以及超时的次数N,如果N/M>=50%(预设熔断阈值),则认为服务提供方出现服务障碍,此时开启熔断。此时作为服务调用方的***,若接收到需要再访问服务提供方的请求时,直接拒绝请求。
其中,上述获取断路器的取样时间范围的过程,可以采用如下逻辑:获取调用外部***接口指令中对于调用外部***接口指令所对应的断路器的功能切片所指定的参数值;在目标的缓存配置中获取与指定的参数值所对应的断路器的取样时间范围。优选地,目标***的缓存配置中预设有参数值及断路器的取样时间范围的映射关系。其中,优选地,上述参数值也可以先与所需调用的服务提供***的业务相关联,例如,调用某支付平台服务***时,关联参数值为02,调用某购物平台服务***时,关联参数值为03,本端服务调用***内存缓存内存储有所有参数值及对应的取样时间范围,例如,存储的调用某支付平台服务***时关联参数值为02对应的取样时间范围为本次触发的调用请求前2小时内,即,获取前两小时内的调用这个支付平台服务***的外部接口的方法的总次数M,以及超时的次数N。
在本实施例的另一个可选的实施方式中,还对上述方法进行了进一步的优化,具体来说,断路器的功能切片包括的执行熔断功能和取消熔断功能的判断逻辑,还包括:在开启熔断功能后的累计时间在第一时间阈值内,检测到触发调用外部***接口的进程的调用请求时,判断调用请求指向的调用目标是否为已进行熔断的外部***接口的进程;若判断结果为是,拒绝调用请求;在开启熔断功能后的累计时间超过第一时间阈值后,检测到触发调用外部***接口的进程的调用请求时,判断调用请求指向的调用目标是否为已进行熔断的外部***接口的进程;若判断结果为是,在调用请求中放行预设数量的调用请求以尝试调用对应的外部***接口,若调用成功,取消熔断功能,以允许调用请求。
也就是说,在开启熔断功能后,提供多种不同的处理逻辑以提高后续调用性能,通过设置第一时间阈值(例如15s),在熔断启动后的15秒内,所对有已触发熔断的服务提供***的调用请求都直接拒绝,提高第一时间阈值内的处理速度及性能。在第一时间阈值后,考虑到发生障碍的服务提供方***可能会恢复,设置如下逻辑:在存在有多笔访问服务提供方的请求时,放行一个访问服务提供方的请求进行尝试判断,其他的请求仍然拒绝。如果这一个尝试性的请求成功,判定服务提供方的***障碍已恢复(对应上面的N=0),则关闭熔断;如果这一个尝试性请求还是失败,判定服务提供方的***仍然障碍则,继续保持熔断状态。此处通过设置第一时间阈值与取消熔断功能相结合,使得在一些情况下可以自动恢复正常调用业务,提高***处理性能。
此外,在另一个可选的实施方式中,还可以增加一个用于控制是否执行上述服务的熔断控制方法的权限的进程,该进程具有高于上述执行熔断功能和取消熔断功能的判断逻辑的权限,以防止引入上述熔断器功能切片后,配置的阈值补准确导致“误熔断”或“误取消熔断”后,不能正常发起请求,该进程作为对熔断器本身设置是否开启的总开关,提高***智能化控制。
实施例二
对应于上述实施例的各个实施方式,本发明实施例二提供了一种服务的熔断控制装置,相应的技术特征所具备的技术效果可参考上文,该处不再赘述。如图2所示,服务的熔断控制装置包括:
封装模块10,用于预先在目标***中封装断路器的功能切片,其中断路器的功能切片包括执行熔断功能和取消熔断功能的判断逻辑;
关联模块20,用于将目标***中调用外部***接口的进程与封装的断路器的功能切片关联;
确定模块30,用于监听获知触发调用外部***接口指令时,控制在执行调用外部***接口指令所对应的调用外部***接口的进程之前,执行与对应的调用外部***接口的进程相关联的断路器的功能切片,根据断路器的功能切片的执行熔断功能和取消熔断功能的判断逻辑,确定是否将当前对应的调用外部***接口的进程进行熔断或取消熔断。
在上述实施方式中,通过将包括执行熔断功能和取消熔断功能的判断逻辑的断路器的功能切片封装至服用调用方的***中,在触发调用服务提供方的***业务时,在执行调用逻辑之前,先控制切入到关联的断路器的功能切片进行熔断与否的判断,若符合熔断判定逻辑,可直接进行熔断,后续再次触发该服务提供方的***业务的业务时,无需一直等待或挂起,提高业务处理性能;并且,在发生执行熔断功能后,还可以利用取消熔断功能的判断逻辑对是否取消熔断进行判断,在符合取消熔断的控制逻辑时,自动取消熔断恢复正常服务调用功能。这种控制方案有效地解决了现有技术中因服务提供方的服务障碍而导致服务调用方的***挂起等待,进而需要人工介入的问题,降低人工干预度,提高了服务***交互时处理性能。
进一步地,目标***包含spring开源***框架,如图3所示,关联模块20包括:
注释引入单元201,用于将调用外部***接口的进程通过spring开源***框架以annotation注释的形式引入断路器的功能切面;
注释配置单元202,用于配置annotation注释以使在执行调用外部***接口的进程之前执行对应断路器的功能切片。
可选地,在一个实施方式中,断路器的功能切片包括的执行熔断功能和取消熔断功能的判断逻辑,包括:获取断路器的取样时间范围;在断路器的取样时间范围内统计当前所需调用的外部***接口的总次数M,以及调用外部***接口时出现超时的次数N;将N/M与预设熔断阈值进行比较;若N/M大于等于预设熔断阈值,则控制开启熔断功能,若N/M=0,则控制取消熔断功能。
可选地,在一个实施方式中,获取断路器的取样时间范围,包括:获取调用外部***接口指令中对于调用外部***接口指令所对应的断路器的功能切片所指定的参数值;在目标***的缓存配置中获取与指定的参数值所对应的断路器的取样时间范围,其中,目标***的缓存配置中预设有参数值及断路器的取样时间范围的映射关系。
可选地,在一个实施方式中,断路器的功能切片包括的执行熔断功能和取消熔断功能的判断逻辑,还包括:在开启熔断功能后,检测到触发调用外部***接口的进程的调用请求时,判断调用请求指向的调用目标是否为已进行熔断的外部***接口的进程;若判断结果为是,拒绝调用请求。
可选地,在一个实施方式中,断路器的功能切片包括的执行熔断功能和取消熔断功能的判断逻辑,还包括:在开启熔断功能后的累计时间在第一时间阈值内,检测到触发调用外部***接口的进程的调用请求时,判断调用请求指向的调用目标是否为已进行熔断的外部***接口的进程;若判断结果为是,拒绝调用请求;在开启熔断功能后的累计时间超过第一时间阈值后,检测到触发调用外部***接口的进程的调用请求时,判断调用请求指向的调用目标是否为已进行熔断的外部***接口的进程;若判断结果为是,在调用请求中放行预设数量的调用请求以尝试调用对应的外部***接口,若调用成功,取消熔断功能,以允许调用请求。
此外,在另一个可选的实施方式中,还可以增加一个权限模块,用于控制是否执行上述服务的熔断控制方法的权限的进程,该进程具有高于上述执行熔断功能和取消熔断功能的判断逻辑的权限,以防止为了防止引入上述熔断器功能切片后,配置的阈值补准确导致“误熔断”或“误取消熔断”后,不能正常发起请求,该进程作为对熔断器本身设置是否开启的总开关,提高***智能化控制。
实施例三
本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图4所示,本实施例的计算机设备01至少包括但不限于:可通过***总线相互通信连接的存储器011、处理器012,如图4所示。需要指出的是,图4仅示出了具有组件存储器011和处理器012的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器011(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器011可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器011也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,存储器011还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器011通常用于存储安装于计算机设备01的操作***和各类应用软件,例如实施例二的服务的熔断控制装置的程序代码等。此外,存储器011还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器012在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器012通常用于控制计算机设备01的总体操作。本实施例中,处理器012用于运行存储器011中存储的程序代码或者处理数据,例如服务的熔断控制方法等。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储服务的熔断控制装置,被处理器执行时实现实施例一的服务的熔断控制方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种服务的熔断控制方法,其特征在于,包括:
预先在目标***中封装断路器的功能切片,其中所述断路器的功能切片包括执行熔断功能和取消熔断功能的判断逻辑;
将所述目标***中调用外部***接口的进程与封装的所述断路器的功能切片关联;
监听获知触发调用外部***接口指令时,控制在执行所述调用外部***接口指令所对应的调用外部***接口的进程之前,执行与所述对应的调用外部***接口的进程相关联的断路器的功能切片,根据所述断路器的功能切片的所述执行熔断功能和取消熔断功能的判断逻辑,确定是否将当前所述对应的调用外部***接口的进程进行熔断或取消熔断。
2.根据权利要求1所述的方法,其特征在于,所述目标***包含spring开源***框架,所述将调用外部***接口的进程与封装的所述功能切片关联,包括:
将所述调用外部***接口的进程通过所述spring开源***框架以annotation注释的形式引入所述断路器的功能切面;
配置所述annotation注释以使在执行所述调用外部***接口的进程之前执行对应所述断路器的功能切片。
3.根据权利要求1所述的方法,其特征在于,所述断路器的功能切片包括的执行熔断功能和取消熔断功能的判断逻辑,包括:
获取断路器的取样时间范围;
在所述断路器的取样时间范围内统计当前所需调用的外部***接口的总次数M,以及调用外部***接口时出现超时的次数N;
将N/M与预设熔断阈值进行比较;
若N/M大于等于所述预设熔断阈值,则控制开启熔断功能,若N/M=0,则控制取消熔断功能。
4.根据权利要求3所述的方法,其特征在于,所述获取断路器的取样时间范围,包括:
获取所述调用外部***接口指令中对于所述调用外部***接口指令所对应的断路器的功能切片所指定的参数值;
在所述目标的缓存配置中获取与所述指定的参数值所对应的断路器的取样时间范围,其中,所述目标***的缓存配置中预设有参数值及断路器的取样时间范围的映射关系。
5.根据权利要求3或4所述的方法,其特征在于,所述断路器的功能切片包括的执行熔断功能和取消熔断功能的判断逻辑,还包括:
在开启熔断功能后,检测到触发调用外部***接口的进程的调用请求时,判断所述调用请求指向的调用目标是否为已进行熔断的外部***接口的进程;
若判断结果为是,拒绝所述调用请求。
6.根据权利要求3或4所述的方法,其特征在于,所述断路器的功能切片包括的执行熔断功能和取消熔断功能的判断逻辑,还包括:
在开启熔断功能后的累计时间在第一时间阈值内,检测到触发调用外部***接口的进程的调用请求时,判断所述调用请求指向的调用目标是否为已进行熔断的外部***接口的进程;若判断结果为是,拒绝所述调用请求;
在开启熔断功能后的累计时间超过所述第一时间阈值后,检测到触发调用外部***接口的进程的调用请求时,判断所述调用请求指向的调用目标是否为已进行熔断的外部***接口的进程;若判断结果为是,在所述调用请求中放行预设数量的调用请求以尝试调用对应的外部***接口,若调用成功,取消熔断功能,以允许所述调用请求。
7.一种服务的熔断控制装置,其特征在于,包括:
封装模块,用于预先在目标***中封装断路器的功能切片,其中所述断路器的功能切片包括执行熔断功能和取消熔断功能的判断逻辑;
关联模块,用于将所述目标***中调用外部***接口的进程与封装的所述断路器的功能切片关联;
确定模块,用于监听获知触发调用外部***接口指令时,控制在执行所述调用外部***接口指令所对应的调用外部***接口的进程之前,执行与所述对应的调用外部***接口的进程相关联的断路器的功能切片,根据所述断路器的功能切片的所述执行熔断功能和取消熔断功能的判断逻辑,确定是否将当前所述对应的调用外部***接口的进程进行熔断或取消熔断。
8.根据权利要求7所述的装置,其特征在于,所述目标***包含spring开源***框架,所述关联模块包括:
注释引入单元,用于将所述调用外部***接口的进程通过所述spring开源***框架以annotation注释的形式引入所述断路器的功能切面;
注释配置单元,用于配置所述annotation注释以使在执行所述调用外部***接口的进程之前执行对应所述断路器的功能切片。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至6任一项所述方法的步骤。
CN201910844181.9A 2019-09-06 2019-09-06 服务的熔断控制方法及装置 Pending CN110674060A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910844181.9A CN110674060A (zh) 2019-09-06 2019-09-06 服务的熔断控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910844181.9A CN110674060A (zh) 2019-09-06 2019-09-06 服务的熔断控制方法及装置

Publications (1)

Publication Number Publication Date
CN110674060A true CN110674060A (zh) 2020-01-10

Family

ID=69076186

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910844181.9A Pending CN110674060A (zh) 2019-09-06 2019-09-06 服务的熔断控制方法及装置

Country Status (1)

Country Link
CN (1) CN110674060A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112491735A (zh) * 2020-11-10 2021-03-12 京东数字科技控股股份有限公司 一种流量控制方法、装置、设备和计算机可读存储介质
CN113676434A (zh) * 2020-05-13 2021-11-19 华为技术有限公司 网络资源的熔断方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015090248A1 (zh) * 2013-12-16 2015-06-25 腾讯科技(深圳)有限公司 服务器的过载保护方法及装置
WO2017097130A1 (zh) * 2015-12-08 2017-06-15 阿里巴巴集团控股有限公司 一种分布式存储***的服务节点切换方法和装置
CN109240765A (zh) * 2018-08-28 2019-01-18 中国联合网络通信集团有限公司 服务资源的熔断方法、装置、设备及计算机可读存储介质
CN109274547A (zh) * 2018-08-17 2019-01-25 中国平安人寿保险股份有限公司 基于网络安全的服务熔断方法、装置、设备及存储介质
CN109743358A (zh) * 2018-12-13 2019-05-10 平安普惠企业管理有限公司 异步消息接口熔断控制方法、装置、计算机设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015090248A1 (zh) * 2013-12-16 2015-06-25 腾讯科技(深圳)有限公司 服务器的过载保护方法及装置
WO2017097130A1 (zh) * 2015-12-08 2017-06-15 阿里巴巴集团控股有限公司 一种分布式存储***的服务节点切换方法和装置
CN109274547A (zh) * 2018-08-17 2019-01-25 中国平安人寿保险股份有限公司 基于网络安全的服务熔断方法、装置、设备及存储介质
CN109240765A (zh) * 2018-08-28 2019-01-18 中国联合网络通信集团有限公司 服务资源的熔断方法、装置、设备及计算机可读存储介质
CN109743358A (zh) * 2018-12-13 2019-05-10 平安普惠企业管理有限公司 异步消息接口熔断控制方法、装置、计算机设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113676434A (zh) * 2020-05-13 2021-11-19 华为技术有限公司 网络资源的熔断方法、装置、电子设备及存储介质
CN113676434B (zh) * 2020-05-13 2023-03-24 华为技术有限公司 网络资源的熔断方法、装置、电子设备及存储介质
CN112491735A (zh) * 2020-11-10 2021-03-12 京东数字科技控股股份有限公司 一种流量控制方法、装置、设备和计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN107608689B (zh) 客户端上应用程序的更新方法、装置及电子设备
CN109672580B (zh) 全链路监控方法、装置、终端设备及存储介质
CN106533805B (zh) 一种微服务请求处理方法、微服务控制器及微服务架构
CN106155727B (zh) 一种应用程序的更新方法、装置及终端
CN110674060A (zh) 服务的熔断控制方法及装置
CN110704121B (zh) 一种操作重试的方法、***及计算机装置
CN103577757A (zh) 病毒防御方法和装置
CN109426510B (zh) 软件处理方法、装置、电子设备及计算机可读存储介质
EP3761595A1 (en) A method and a device comprising an edge cloud agent for providing a service
CN108804938B (zh) 一种权限检测方法、装置、电子设备及可读存储介质
CN111143023A (zh) 一种资源变更的方法及装置、设备、存储介质
CN109408251B (zh) 消息发送方法与装置、消息接收处理方法与装置
CN109034603B (zh) 业务流程执行方法、设备及计算机可读存储介质
CN111949421B (zh) Sdk调用方法、装置、电子设备和计算机可读存储介质
CN106843917B (zh) 一种驱动程序的加载方法及装置
CN109784035B (zh) 一种安装进程的追踪处理方法及装置
CN112015496A (zh) 接口调用方法、装置、计算机设备和存储介质
CN108446553B (zh) 一种进程保护的方法、装置及电子设备
CN110928630A (zh) 应用程序窗口的激活控制方法、装置、设备及存储介质
CN113518055B (zh) 数据安全防护的处理方法及装置、存储介质、终端
CN112883370B (zh) 应用程序状态检测方法和装置、存储介质和电子设备
CN113641987A (zh) 应用静默安装的拦截方法、装置和计算机设备
CN110008039B (zh) 接口控制方法、装置、计算机可读存储介质和计算机设备
CN111443682B (zh) 基于车辆can总线结构的安全防护装置及方法
CN111950040A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200110