CN109240765B - 服务资源的熔断方法、装置、设备及计算机可读存储介质 - Google Patents

服务资源的熔断方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN109240765B
CN109240765B CN201810989240.7A CN201810989240A CN109240765B CN 109240765 B CN109240765 B CN 109240765B CN 201810989240 A CN201810989240 A CN 201810989240A CN 109240765 B CN109240765 B CN 109240765B
Authority
CN
China
Prior art keywords
fusing
resource
preset
service
recovery
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.)
Active
Application number
CN201810989240.7A
Other languages
English (en)
Other versions
CN109240765A (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.)
China United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group 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 China United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN201810989240.7A priority Critical patent/CN109240765B/zh
Publication of CN109240765A publication Critical patent/CN109240765A/zh
Application granted granted Critical
Publication of CN109240765B publication Critical patent/CN109240765B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明提供一种服务资源的熔断方法、装置、设备及计算机可读存储介质。方法包括:根据服务调用资源的状态信息、预设熔断参数判断是否满足熔断条件;若满足熔断条件,则熔断资源,并记录熔断信息;根据预设熔断恢复参数判断是否满足熔断恢复条件,若满足,则恢复服务对资源的调用,并记录恢复信息;根据熔断信息、恢复信息确定熔断参数,和/或熔断恢复参数;根据熔断参数更新预设熔断参数,和/或根据熔断恢复参数更新预设熔断恢复参数。本发明的方案中,能够根据熔断信息以及熔断恢复信息确定熔断参数、熔断恢复参数,再根据熔断参数、熔断恢复参数更新更新预设熔断参数、预设熔断恢复参数,从而能够解决现有技术中需要手动调整该参数的问题。

Description

服务资源的熔断方法、装置、设备及计算机可读存储介质
技术领域
本发明涉及服务资源熔断技术,尤其涉及一种服务资源的熔断方法、装置、设备及计算机可读存储介质。
背景技术
服务是支持系统正常运行的一类应用程序,有一些服务需要依赖一些资源才能够运行,例如依赖数据库资源或是其他服务资源。服务熔断是指将服务与其所依赖的资源分割开,避免资源发生故障时,依赖该资源的服务也出现故障,进而产生较大影响的问题。
现有技术中,一般采用设置熔断参数的方式熔断服务与其所依赖的资源,在服务启动前由运维人员在服务配置文件中手动设置熔断参数。
但是,若熔断参数的配置与服务实际运行状态不符,就会导致频繁出现熔断的情况。因此,需要运维人员重新配置熔断参数。从中可以看出,现有技术中的方案需要手动对熔断参数进行调整,效率较低。
发明内容
本发明提供一种服务资源的熔断方法、装置、设备及计算机可读存储介质,以解决现有技术中需要手动对熔断参数进行调整,效率较低的问题。
本发明的第一个方面是提供一种服务资源的熔断方法,包括:
根据服务调用资源的状态信息、预设熔断参数判断是否满足熔断条件;
若满足所述熔断条件,则熔断所述资源,并记录熔断信息;
根据预设熔断恢复参数判断是否满足熔断恢复条件,若满足,则恢复所述服务对所述资源的调用,并记录恢复信息;
根据所述熔断信息、所述恢复信息确定熔断参数,和/或熔断恢复参数;
根据所述熔断参数更新所述预设熔断参数,和/或根据所述熔断恢复参数更新所述预设熔断恢复参数。
本发明的另一个方面是提供一种服务资源的熔断装置,包括:
熔断判断模块,用于根据服务调用资源的状态信息、预设熔断参数判断是否满足熔断条件;
熔断模块,用于若满足所述熔断条件,则熔断所述资源,并记录熔断信息;
恢复模块,用于根据预设熔断恢复参数判断是否满足熔断恢复条件,若满足,则恢复所述服务对所述资源的调用,并记录恢复信息;
第一确定模块,用于根据所述熔断信息、所述恢复信息确定熔断参数,和/或熔断恢复参数;
更新模块,用于根据所述熔断参数更新所述预设熔断参数,和/或根据所述熔断恢复参数更新所述预设熔断恢复参数。
本发明的又一个方面是提供一种服务资源的熔断设备,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并配置为由所述处理器执行以实现如上述第一方面所述的服务资源的熔断方法。
本发明的再一个方面是提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现如上述第一方面所述的服务资源的熔断方法。
本发明提供的服务资源的熔断方法、装置、设备及计算机可读存储介质的技术效果是:
本发明提供的服务资源的熔断方法、装置、设备及计算机可读存储介质,包括根据服务调用资源的状态信息、预设熔断参数判断是否满足熔断条件;若满足熔断条件,则熔断资源,并记录熔断信息;根据预设熔断恢复参数判断是否满足熔断恢复条件,若满足,则在接收服务调用资源的调用请求时,根据调用请求调用资源,并记录恢复信息;根据熔断信息、恢复信息确定熔断参数,和/或熔断恢复参数;根据熔断参数更新预设熔断参数,和/或根据熔断恢复参数更新预设熔断恢复参数。本发明提供的服务资源的熔断方法、装置、设备及计算机可读存储介质,能够根据预设熔断参数、预设熔断恢复参数熔断资源或恢复资源的正常调用,并且,本发明提供的方法、装置、设备及计算机可读存储介质在资源熔断后以及资源熔断恢复后,分别记录熔断信息以及熔断恢复信息,并根据熔断信息以及熔断恢复信息确定熔断参数、熔断恢复参数,再根据熔断参数、熔断恢复参数更新更新预设熔断参数、预设熔断恢复参数,从而能够解决现有技术中需要手动调整该参数的问题。另外,本发明提供的方法、装置、设备及计算机可读存储介质能够基于服务实际运行时产生的信息确定参数,使得确定的参数更加适合服务运行,从而降低熔断或无效的熔断恢复次数。
附图说明
图1为本发明一示例性实施例示出的服务资源的熔断方法的流程图;
图2为本发明另一示例性实施例示出的服务资源的熔断方法的流程图;
图3为本发明一示例性实施例示出的服务资源的熔断装置的结构图;
图4为本发明另一示例性实施例示出的服务资源的熔断装置的结构图;
图5为本发明一示例性实施例示出的服务资源的熔断设备的结构图。
具体实施方式
图1为本发明一示例性实施例示出的服务资源的熔断方法的流程图。
如图1所示,本实施例提供的服务资源的熔断方法包括:
步骤101,根据服务调用资源的状态信息、预设熔断参数判断是否满足熔断条件。
其中,在一种实施方式中,可以在服务中设置推送功能,用于向执行本实施例提供的方法的熔断装置推送服务调用资源的状态信息。在另一种实施方式中,可以在步骤101之前,还包括获取服务调用资源的状态信息的步骤,即由执行本实施例提供的方法的熔断装置主动获取状态信息。
可以使用线程池隔离服务与其依赖的资源,从而使服务调用不同资源之间的流程互不干扰。
具体的,还可以设置推送或获取状态信息的频率,例如,每5秒向熔断装置推送一次状态信息,或者每5秒熔断装置获取一次状态信息。
进一步的,状态信息中可以包括服务调用资源时的数据,具体可以包括服务正常调用资源的数据,以及服务调用资源发生异常的数据。服务调用资源发生异常是指服务在调用资源时,由于服务的外部问题导致的异常事件,如服务调用的资源出现问题。正常是指与异常相对的概念,即服务调用资源时未发生异常事件。状态信息可以是资源未被熔断时,服务调用资源的状态信息。例如在资源未被熔断时,出现5次异常事件,则状态信息中可以包括异常请求次数5。
实际应用时,状态信息中可以包括:连续正常运行时长、连续成功请求次数、请求平均响应时间、成功请求总次数、异常请求次数、周期内最大活跃线程数、周期内最大请求并发数、周期内最大请求排队数。
其中,还可以设置与状态信息对应的预设熔断参数,并根据状态信息、预设熔断参数判断是否满足熔断条件。若满足熔断条件,则可以认为该服务资源出现异常情况,若服务继续调用该资源,会造成服务长时间等待的问题,因此会导致该服务耗时过长。
具体的,预设熔断参数可以是预设异常次数阈值,当状态信息中的异常请求次数大于预设异常次数阈值时,可以判断满足熔断条件。预设熔断参数还可以是预设响应时间阈值,若请求平均响应时间大于等于预设响应时间阈值,也可以判断满足熔断条件。具体的预设熔断参数以及熔断条件可以根据需求进行设置。
进一步的,初始化的预设熔断参数可以是手动进行设置,可以由开发人员根据经验或者实际应用场景进行确定。
实际应用时,还可以设置状态信息统计队列,用于存储状态信息,若由服务推送状态信息,则可以在接收到状态信息后,将其存储到统计队列中;若由熔断装置获取状态信息,则在获取状态信息后,将其存储到统计队列中。可以根据状态信息的获取时间将各个状态信息按序存储到统计队列中。
步骤102,若满足熔断条件,则熔断资源,并记录熔断信息。
进一步的,若满足熔断条件,则熔断资源,以使服务不再调用该资源,从而避免由于资源出现问题导致服务异常的问题。
实际应用时,资源被熔断后,服务仍然正常运行,此时,服务还会发出调用该资源的请求。为了实现服务与资源之间隔离,可以在接收或检测到服务调用资源的请求时,直接执行预设的快速返回的降级方法,通过该方法响应服务发出的调用请求,从而达到熔断资源的效果。例如,可以在熔断装置内设置一个fallback回调函数,当满足熔断条件后,若服务继续调用该资源,则根据fallback回调函数返回缺省值,从而响应该调用请求。
其中,若资源被熔断,还可以对其进行标记,例如将资源标记为“熔断”,当服务再次发出调用带有熔断标记资源的请求时,不再对资源进行调用,而是直接执行fallback回调函数。
具体的,若熔断资源,则可以记录相关的熔断信息,例如,熔断标识、资源名称、熔断原因等。若预设熔断参数为预设异常次数阈值,则熔断原因可以是异常请求出现的次数。
进一步的,由于服务调用资源时可能出现多类型的异常,此时,还可以记录不同类型的异常次数,如异常类型1出现的次数,异常类型2出现的次数。
实际应用时,还可以设置熔断消息队列,将熔断信息存储到熔断消息队列中。
步骤103,根据预设熔断恢复参数判断是否满足熔断恢复条件,若满足,则恢复服务对资源的调用,并记录恢复信息。
其中,若满足熔断恢复条件,可以在熔断装置接收服务调用资源的调用请求时,根据调用请求调用相关资源。
实际应用时,熔断资源是通过取消服务的一些功能换取服务正常运行的方式,若长时间熔断资源,会导致服务的一些功能长时间不可用,而这会带来较差的用户体验,因此,还可以预设熔断恢复参数,并根据预设熔断恢复参数尝试恢复服务对资源的调用。
其中,初始化的预设熔断恢复参数可以是手动进行设置,可以由开发人员根据经验或者实际应用场景进行确定。
具体的,预设熔断恢复参数可以包括预设熔断时间阈值,还可以包括熔断后服务调用资源的预设请求次数阈值。可以监控资源被熔断的时间或者服务调用资源的请求次数,若资源熔断后的持续时间到达预设熔断时间阈值,或是资源被熔断后,服务调用该资源的请求次数达到预设请求次数阈值,则确定满足熔断恢复条件。
进一步的,若满足熔断恢复条件,服务再次发送调用资源的请求时,不再执行fallback回调函数,而是正常调用资源,从而实现熔断恢复参数的效果。
具体的,可以设置用于存储恢复信息的恢复消息队列,并按照恢复信息的生成时间将其存储到队列中。
进一步的,恢复信息可以包括与该恢复过程对应的熔断标识、资源名称、触发熔断的异常类型、熔断总时长、熔断期间调用资源请求的处理次数、熔断期间调用资源请求的平均执行时间、熔断开始时间、熔断结束时间、熔断期间最大活跃线程数、熔断期间最大请求并发数、熔断期间最大请求排队数。熔断信息具体包括的内容可以根据需求进行设置。
步骤104,根据熔断信息、恢复信息确定熔断参数,和/或熔断恢复参数。
步骤105,根据熔断参数更新预设熔断参数,和/或根据熔断恢复参数更新预设熔断恢复参数。
实际应用时,可以根据记录的熔断信息和恢复信息确定新的熔断参数,和/或熔断恢复参数,再根据新确定的熔断参数更新预设参数,从而达到根据服务实际运行情况调整熔断参数的效果。
其中,可以设置预设时长,并获取最近预设时长所产生的熔断信息、恢复信息,基于获取的信息确定熔断参数,从而提高数据的时效性。可以在有恢复信息写入恢复消息队列后,从熔断消息队列、恢复消息队列中拉取最近预设时长产生的的熔断信息、恢复信息。
具体的,在获取熔断信息、恢复信息之后,可以按照异常事件对熔断信息以及恢复信息进行分类,再根据不同类别的熔断信息、熔断恢复信息确定每类异常事件对应的熔断参数,和/或熔断恢复参数。
进一步的,当预设熔断参数包括预设异常次数阈值时,可以根据熔断信息、恢复信息确定异常次数阈值。当预设熔断恢复参数包括预设熔断时间阈值和/或熔断后服务调用资源的预设请求次数阈值时,可以根据熔断信息、恢复信息确定熔断时间阈值和/或请求次数阈值。
实际应用时,可以根据每类异常事件每次的熔断信息以及对应的熔断恢复信息确定第一连续异常次数。由于熔断恢复是熔断的后续动作,因此,能够确定每个熔断恢复信息对应的熔断信息,例如,可以根据二者包括的熔断标识进行确定。具体可以获取熔断信息中的连续异常出现次数M,并获取熔断恢复信息中的熔断期间调用资源请求的处理次数N,再计算M、N的平均值,作为第一连续异常次数(V1)。
若一类异常事件对应多个熔断信息以及熔断恢复信息,那么可以通过上述方式确定得到多个第一连续异常次数(V1),可以根据多个第一连续异常次数(V1)确定平均异常次数。再在多个V1中剔除一部分与平均异常次数差值较大的数据,例如可以剔除与平均异常次数差值较大的20%的第一连续异常次数(V1)。再对剩余的第一连续异常次数(V1)取平均值得到第二连续异常次数(V2),可以直接将第二连续异常次数(V2)作为异常次数阈值,也可以将第二连续异常次数(V2)乘以预设比值,得到异常次数阈值,例如预设比值为20%。
还可以根据第一连续异常次数(V1)、预设比值确定请求次数阈值,例如用第一连续异常次数与(1-预设比值)的乘积作为恢复参数。
若预设熔断恢复参数包括预设熔断时间阈值,则可以根据每类异常事件对应的恢复信息中包括的熔断总时长确定熔断时间阈值。具体可以针对每类异常事件对应的多个熔断总时长取平均值,再在该类异常事件的熔断总时长中剔除与平均值相差较大的时长,根据剩余的熔断总时长确定熔断时间阈值。例如,根据剩余的熔断总时长取平均值,得到新的熔断时间阈值。
确定出熔断参数、熔断恢复参数后,可以根据该熔断参数更新预设熔断参数,和/或根据熔断恢复参数更新预设熔断恢复参数。例如,可以比对确定的熔断参数与预设熔断参数是否相同,若相同,则不更改预设熔断参数,否则,将确定的熔断参数确定为预设熔断参数。熔断恢复参数与此类似,不再赘述。
在步骤104-105中,可以根据服务实际运行情况确定用于熔断或恢复熔断的参数,使得确定的参数更适合服务,并且,基于确定的参数更新预设参数,能够避免手动调整配置的预设参数。
本实施例提供的方法用于熔断服务所依赖的资源,该方法由设置有本实施例提供的方法的装置执行,该装置通常以硬件和/或软件的方式来实现。
本实施例提供的服务资源的熔断方法,包括根据服务调用资源的状态信息、预设熔断参数判断是否满足熔断条件;若满足熔断条件,则熔断资源,并记录熔断信息;根据预设熔断恢复参数判断是否满足熔断恢复条件,若满足,则在接收服务调用资源的调用请求时,根据调用请求调用资源,并记录恢复信息;根据熔断信息、恢复信息确定熔断参数,和/或熔断恢复参数;根据熔断参数更新预设熔断参数,和/或根据熔断恢复参数更新预设熔断恢复参数。本实施例提供的服务资源的熔断方法,能够根据预设熔断参数、预设熔断恢复参数熔断资源或恢复资源的正常调用,并且,本实施例提供的方法在资源熔断后以及资源熔断恢复后,分别记录熔断信息以及熔断恢复信息,并根据熔断信息以及熔断恢复信息确定熔断参数、熔断恢复参数,再根据熔断参数、熔断恢复参数更新更新预设熔断参数、预设熔断恢复参数,从而能够解决现有技术中需要手动调整该参数的问题。另外,本实施例提供的方法能够基于服务实际运行时产生的信息确定参数,使得确定的参数更加适合服务运行,从而降低熔断或无效的熔断恢复次数。
图2为本发明另一示例性实施例示出的服务资源的熔断方法的流程图。
如图2所示,本实施例提供的服务资源的熔断方法,包括:
步骤201,根据状态信息确定服务调用资源的连续异常次数。
其中,状态信息中可以包括服务调用资源的连续异常次数,可以从状态信息中获取该连续异常次数。例如,每5秒接收一次状态信息,那么在第一个5秒周期内,异常事件1的连续异常次数为6,第二个5秒周期对应的状态信息,异常事件1的连续异常次数为10。该连续异常次数可以是不同时间周期累计的值,如上述的10次时第一个周期、第二个周期中,异常事件1连续发生的总次数。
具体的,可以在每次接收到状态信息后,都获取其中的连续异常次数。连续异常次数还可以包括多个类型的异常对应的异常次数,如在一个状态信息内,可以包括异常事件1对应的连续异常次数为10、异常事件2对应的连续异常次数为2这两条连续异常次数数据。
步骤202,判断连续异常次数是否大于等于第一预设次数阈值,若是,则判断满足熔断条件。
进一步的,可以设置与不同类型的异常事件对应的第一预设次数阈值,并确定状态信息中连续异常次数与其对应的第一预设次数阈值的大小,若大于等于第一预设次数阈值,则判断满足熔断条件。可以基于状态信息中的连续异常次数对应的异常类型标识,确定与其相应的第一预设次数阈值。
步骤203,若满足熔断条件,则在接收服务调用资源的调用请求时,执行预设的快速返回方法,以使资源被熔断。
实际应用时,可以设置预设的快速返回方法,例如可以设置fallback回调函数。当满足熔断条件时,并且再次接收到服务调用资源的调用请求时,调用该回调函数,基于该回调函数响应服务发送的调用请求,从而使服务不直接调用资源,达到资源熔断的效果。
为了避免资源长时间被熔断,本实施例提供的方法还可以包括熔断恢复的步骤。
步骤204,若服务与资源的熔断时间大于等于预设熔断时间阈值,和/或所服务调用被熔断的资源的请求次数大于等于预设请求次数阈值,则确定满足熔断恢复条件。
可以预先设置预设容断时间阈值,若服务与资源的熔断时间大于等于预设熔断时间阈值,则确定满足恢复条件,并执行步骤205。初始化的预设容断时间阈值可以由用户手动配置,具体可以根据经验或应用场景进行确定。
当熔断时间大于等于预设熔断时间阈值时,可以认为资源被熔断时间较长,此时确定满足熔断恢复条件,并执行尝试恢复调用资源,从而避免资源被熔断过久。
另外,还可以设置预设请求次数阈值,若在资源被熔断后,服务调用该资源的请求次数大于等于预设请求次数阈值,则可以认为资源被熔断时间较长,此时确定满足熔断恢复条件。
步骤205,在接收服务调用资源的调用请求时,根据调用请求调用资源。
步骤206,确定服务是否成功调用资源。
若是,则执行步骤207。若否,则继续执行步骤204。
步骤207,记录恢复信息。
其中,若满足熔断恢复条件,则可以尝试恢复资源调用。可以检测满足熔断恢复条件后服务第一次或前几次调用资源的结果,若能够成功调用,则认为资源正常,服务可以正常对资源进行调用。若调用时发生异常事件,则认为资源未恢复,那么继续熔断资源,并重新执行步骤204。
具体的,若重新执行步骤204,则可以重新统计熔断时间,或服务调用资源的请求次数。通过熔断恢复机制,能够避免服务与资源熔断时间过长,同时,在满足熔断恢复条件后,检测服务能否成功调用资源,并根据检测结果决定正常对资源进行调用还是继续熔断,能够避免在熔断恢复后,服务继续调用资源时出现异常情况,导致服务出现异常的问题。本实施例提供的方法中,可以在资源真正恢复以后,再记录恢复信息,从而避免记录过多的无效恢复信息。
步骤207与步骤102中的记录熔断信息的方法的具体原理和实现方式类似,此处不再赘述。
步骤208,根据熔断信息、恢复信息确定熔断参数,和/或熔断恢复参数。
步骤209,根据熔断参数更新预设熔断参数,和/或根据熔断恢复参数更新预设熔断恢复参数。
本实施例提供的方法还包括:
步骤210,根据状态信息、预设隔离参数确定是否满足隔离条件,若是,则隔离服务与资源。
其中,可以预先设置用于衡量服务运行状态的隔离参数,根据状态信息、预设隔离参数确定服务运行时的负载是否较大,若是,则可以隔离服务与资源,以减轻服务运行时的负载,从而降低服务在运行时出现异常的几率。
具体的,预设隔离参数可以包括:预设线程数、预设并发数、预设队列数、预设时长。
相应的,可以根据状态信息确定以下至少一种状态值:活跃线程数、请求并发数、请求队列数、请求处理时长。
可以根据状态值以及预设隔离参数确定是否满足隔离条件,具体可以在满足以下至少一个条件时,判断满足隔离条件:
活跃线程数大于等于预设线程数、请求并发数大于等于预设并发数、请求队列数大于等于预设队列数、请求处理时长大于等于预设时长。
活跃线程数、请求并发数、请求队列数、请求处理时长等状态值能够用于衡量服务运行时的负载是否过大,因此,能够基于这些状态值确定是否对服务及其资源进行隔离。
进一步的,隔离服务与资源的步骤可以包括:
接收到所述服务调用所述资源的请求时,将调用请求移至等待队列,以使服务不再根据等待队列中的调用请求调用资源。
实际应用时,同一个服务可能同时执行多个调用请求,若根据状态信息确定服务负载较重,则可以再接收到服务调用资源的请求时,将该调用请求存储到等待队列。等待队列中的调用请求为等待状态,不执行等待队列中的调用请求,可以在检测到服务的负载正常时,再从待队列中取出调用请求,从而均衡服务负载,降低服务的压力。例如,可以按照存入等待队列中的顺序,从中取出调用请求。
步骤211,根据服务与资源未熔断时产生的正常状态信息确定隔离参数,并根据隔离参数更新预设隔离参数。
若接收的状态信息包括熔断时产生的状态信息,则在其中筛选出服务与资源未熔断时的正常状态信息,若接收的状态信息仅包括未熔断时产生的正常状态信息,则直接根据该正常状态信息确定隔离参数。
还可以比对隔离参数与预设隔离参数,若相同,则不改变预设隔离参数,否则,可以将确定的隔离参数确定为预设隔离参数。本实施例提供的方法能够根据服务运行的实际情况确定隔离参数,并更新预设隔离参数,无需用户手动对隔离参数进行调整。
其中,预设隔离参数可以包括多个,相应的,根据服务与资源未熔断时产生的正常状态信息确定隔离参数,包括:
根据正常状态信息确定至少一种最大状态值。
具体的,还可以预先设置预设时间段,获取距离最近预设时间段的正常状态信息,并根据获取的正常状态信息确定其中的最大状态值。例如共获取10000个状态值,则在这10000个状态值中可以分别获取到10000个活跃线程数、请求并发数、请求队列数、请求处理时长,再在其中分别确定出最大的活跃线程数、请求并发数、请求队列数、请求处理时长。
比较最大状态值与其相应的预设隔离参数,若最大状态值大于与其相应的预设隔离参数,则根据最大状态值确定与其相应的隔离参数。例如,可以根据最大请求并发数确定隔离参数。
其中,不同的状态值可以具有相应的预设隔离参数。若最大状态值大于与其相应的预设隔离参数,且在这种状态下服务未发生熔断,那么可以确定服务可以承受该最大状态值对应的运行状态,因此,可以将最大状态值确定为与之对应的隔离参数。根据隔离参数更新预设隔离参数时,由于二者不同,因此,将确定的隔离参数确定未预设隔离参数,也就是将最大状态值确定为预设隔离参数。
具体的,若最大状态值小于预设隔离参数,则将预设隔离参数确定为隔离参数。根据隔离参数更新预设隔离参数时,由于二者相同,因此,不改变预设隔离参数的值。
本实施例提供的方法中,可以根据预设隔离参数隔离服务与资源,从而均衡服务运行时的压力,减少资源被熔断的次数。同时,本实施例提供的方法中,还能够根据服务实际运行的数据信息调整隔离参数,无需用户手动调整。
图3为本发明一示例性实施例示出的服务资源的熔断装置的结构图。
如图3所示,本实施例提供的服务资源的熔断装置,包括:
熔断判断模块31,用于根据服务调用资源的状态信息、预设熔断参数判断是否满足熔断条件;
熔断模块32,用于若满足所述熔断条件,则熔断所述资源,并记录熔断信息;
恢复判断模块33,用于根据预设熔断恢复参数判断是否满足熔断恢复条件;
恢复模块34,用于若满足所述熔断恢复条件,则恢复所述服务对所述资源的调用,并记录恢复信息;
第一确定模块35,用于根据所述熔断信息、所述恢复信息确定熔断参数,和/或熔断恢复参数;
更新模块36,用于根据所述熔断参数更新所述预设熔断参数,和/或根据所述熔断恢复参数更新所述预设熔断恢复参数。
其中,熔断判断模块31、熔断模块32连接,恢复判断模块33、恢复模块34连接,熔断模块32、恢复模块34分别与第一确定模块35连接,第一确定模块35与更新模块36连接。
本实施例提供的服务资源的熔断装置,包括熔断判断模块,用于根据服务调用资源的状态信息、预设熔断参数判断是否满足熔断条件;熔断模块,用于若满足熔断条件,则熔断资源,并记录熔断信息;恢复判断模块,用于根据预设熔断恢复参数判断是否满足熔断恢复条件;恢复模块,用于若满足熔断恢复条件,则恢复服务对资源的调用,并记录恢复信息;第一确定模块,用于根据熔断信息、恢复信息确定熔断参数,和/或熔断恢复参数;更新模块,用于根据熔断参数更新预设熔断参数,和/或根据熔断恢复参数更新预设熔断恢复参数。本实施例提供的服务资源的熔断装置,能够根据预设熔断参数、预设熔断恢复参数熔断资源或恢复资源的正常调用,并且,本实施例提供的装置在资源熔断后以及资源熔断恢复后,分别记录熔断信息以及熔断恢复信息,并根据熔断信息以及熔断恢复信息确定熔断参数、熔断恢复参数,再根据熔断参数、熔断恢复参数更新更新预设熔断参数、预设熔断恢复参数,从而能够解决现有技术中需要手动调整该参数的问题。另外,本实施例提供的装置能够基于服务实际运行时产生的信息确定参数,使得确定的参数更加适合服务运行,从而降低熔断或无效的熔断恢复次数。
本实施例提供的服务资源的熔断装置的具体原理和实现方式均与图1所示的实施例类似,此处不再赘述。
图4为本发明另一示例性实施例示出的服务资源的熔断装置的结构图。
如图4所示,在上述实施例的基础上,本实施例提供的服务资源的熔断装置,可选的,所述预设熔断参数包括第一预设次数阈值;
相应的,所述熔断判断模块31包括:
次数确定单元311,用于根据所述状态信息确定所述服务调用所述资源的连续异常次数;
第一判断单元312,用于判断所述连续异常次数是否大于等于所述第一预设次数阈值,若是,则判断满足熔断条件。
其中,次数确定单元311、第一判断单元312连接。
可选的,所述熔断模块32包括:
熔断单元321,用于在接收所述服务调用所述资源的调用请求时,执行预设的快速返回方法,以使所述资源被熔断。
可选的,所述恢复判断模块33还用于若所述服务与所述资源的熔断时间大于等于预设熔断时间阈值,和/或所所述服务调用被熔断的所述资源的请求次数大于等于预设请求次数阈值,则确定满足所述熔断恢复条件。
可选的,所述恢复模块34,还用于:
确定所述服务是否成功调用所述资源,若是,则执行所述记录恢复信息的步骤,否则,继续执行所述根据预设熔断恢复参数判断是否满足熔断恢复条件的步骤。
可选的,本实施例提供的装置还包括:
隔离确定模块37,用于根据所述状态信息、预设隔离参数确定是否满足隔离条件,若是,则隔离所述服务与所述资源;
第二确定模块38,用于根据所述服务与所述资源未熔断时产生的正常状态信息确定隔离参数,并根据所述隔离参数更新所述预设隔离参数。
其中,隔离确定模块37、第二确定模块38连接,第二确定模块38与熔断模块32、恢复模块34分别连接。
可选的,所述隔离确定模块37,包括:
状态值确定单元371,用于根据所述状态信息确定以下至少一种状态值:活跃线程数、请求并发数、请求队列数、请求处理时长;
第二判断单元372,用于若满足以下至少一个条件,则判断满足所述隔离条件:
所述活跃线程数大于等于预设线程数、所述请求并发数大于等于预设并发数、所述请求队列数大于等于预设队列数、所述请求处理时长大于等于预设时长。
可选的,所述隔离确定模块37,包括:
存储单元373,用于接收到所述服务调用所述资源的请求时,将所述调用请求存储到等待队列,以使所述服务不再根据所述等待队列中的所述调用请求调用所述资源。
所述第二确定模块38,包括:
最大状态值确定单元381,用于根据所述正常状态信息确定至少一种最大状态值;
比较单元382,用于比较所述最大状态值与其相应的预设隔离参数,若所述最大状态值大于所述预设隔离参数,则隔离参数确定单元373根据所述最大状态值确定与其相应的所述隔离参数。
其中,最大状态值确定单元381、比较单元382、隔离参数确定单元383依次连接。
本实施例提供的服务资源的熔断装置的具体原理和实现方式均与图2所示的实施例类似,此处不再赘述。
图5为本发明一示例性实施例示出的服务资源的熔断设备的结构图。
如图5所示,本实施例提供的服务资源的熔断设备包括:
存储器51;
处理器52;以及
计算机程序;
其中,所述计算机程序存储在所述存储器51中,并配置为由所述处理器52执行以实现如上所述的任一种服务资源的熔断方法
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,
所述计算机程序被处理器执行以实现如上所述的任一种服务资源的熔断方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (13)

1.一种服务资源的熔断方法,其特征在于,包括:
根据服务调用资源的状态信息、预设熔断参数判断是否满足熔断条件;
若满足所述熔断条件,则熔断所述资源,并记录熔断信息;
根据预设熔断恢复参数判断是否满足熔断恢复条件,若满足,则恢复所述服务对所述资源的调用,并记录恢复信息;
根据所述熔断信息、所述恢复信息,确定熔断参数和熔断恢复参数;
根据所述熔断参数更新所述预设熔断参数,并根据所述熔断恢复参数更新所述预设熔断恢复参数;
所述方法,还包括:
根据所述状态信息、预设隔离参数确定是否满足隔离条件,若是,则隔离所述服务与所述资源;根据所述服务与所述资源未熔断时产生的正常状态信息确定隔离参数,并根据所述隔离参数更新所述预设隔离参数;
其中,所述隔离所述服务与所述资源,包括:接收到所述服务调用所述资源的请求时,将所述调用请求存储到等待队列,以使所述服务不再根据所述等待队列中的所述调用请求调用所述资源。
2.根据权利要求1所述的方法,其特征在于,所述预设熔断参数包括第一预设次数阈值;
相应的,所述根据服务调用资源的状态信息、预设熔断参数判断是否满足熔断条件,包括:
根据所述状态信息确定所述服务调用所述资源的连续异常次数;
判断所述连续异常次数是否大于等于所述第一预设次数阈值,若是,则判断满足熔断条件。
3.根据权利要求1所述的方法,其特征在于,所述熔断所述资源,包括:
在接收所述服务调用所述资源的调用请求时,执行预设的快速返回方法,以使所述资源被熔断。
4.根据权利要求1所述的方法,其特征在于,所述根据预设熔断恢复参数判断是否满足熔断恢复条件,包括:
若所述服务与所述资源的熔断时间大于等于预设熔断时间阈值,和/或所所述服务调用被熔断的所述资源的请求次数大于等于预设请求次数阈值,则确定满足所述熔断恢复条件。
5.根据权利要求1所述的方法,其特征在于,所述恢复所述服务对所述资源的调用之后,还包括:
确定所述服务是否成功调用所述资源,若是,则执行所述记录恢复信息的步骤,否则,继续执行所述根据预设熔断恢复参数判断是否满足熔断恢复条件的步骤。
6.根据权利要求1所述的方法,其特征在于,所述根据所述状态信息、预设隔离参数确定是否满足隔离条件,包括:
根据所述状态信息确定以下至少一种状态值:活跃线程数、请求并发数、请求队列数、请求处理时长;
若满足以下至少一个条件,则判断满足所述隔离条件:
所述活跃线程数大于等于预设线程数、所述请求并发数大于等于预设并发数、所述请求队列数大于等于预设队列数、所述请求处理时长大于等于预设时长。
7.根据权利要求6所述的方法,其特征在于,所述根据所述服务与所述资源未熔断时产生的正常状态信息确定隔离参数,包括:
根据所述正常状态信息确定至少一种最大状态值;
比较所述最大状态值与其相应的预设隔离参数,若所述最大状态值大于所述预设隔离参数,则根据所述最大状态值确定与其相应的所述隔离参数。
8.一种服务资源的熔断装置,其特征在于,包括:
熔断判断模块,用于根据服务调用资源的状态信息、预设熔断参数判断是否满足熔断条件;
熔断模块,用于若满足所述熔断条件,则熔断所述资源,并记录熔断信息;
恢复判断模块,用于根据预设熔断恢复参数判断是否满足熔断恢复条件;
恢复模块,用于若满足所述熔断恢复条件,则恢复所述服务对所述资源的调用,并记录恢复信息;
第一确定模块,用于根据所述熔断信息、所述恢复信息,确定熔断参数和熔断恢复参数;
更新模块,用于根据所述熔断参数更新所述预设熔断参数,并根据所述熔断恢复参数更新所述预设熔断恢复参数;
所述装置,还包括:
隔离确定模块,用于根据所述状态信息、预设隔离参数确定是否满足隔离条件,若是,则隔离所述服务与所述资源;
第二确定模块,用于根据所述服务与所述资源未熔断时产生的正常状态信息确定隔离参数,并根据所述隔离参数更新所述预设隔离参数;
所述隔离确定模块,包括:
存储单元,用于接收到所述服务调用所述资源的请求时,将所述调用请求存储到等待队列,以使所述服务不再根据所述等待队列中的所述调用请求调用所述资源。
9.根据权利要求8所述的装置,其特征在于,所述预设熔断参数包括第一预设次数阈值;
相应的,所述熔断判断模块包括:
次数确定单元,用于根据所述状态信息确定所述服务调用所述资源的连续异常次数;
第一判断单元,用于判断所述连续异常次数是否大于等于所述第一预设次数阈值,若是,则判断满足熔断条件。
10.根据权利要求8所述的装置,其特征在于,所述熔断模块包括:
熔断单元,用于在接收所述服务调用所述资源的调用请求时,执行预设的快速返回方法,以使所述资源被熔断。
11.根据权利要求8所述的装置,其特征在于,所述恢复判断模块还用于:
若所述服务与所述资源的熔断时间大于等于预设熔断时间阈值,和/或所所述服务调用被熔断的所述资源的请求次数大于等于预设请求次数阈值,则确定满足所述熔断恢复条件。
12.一种服务资源的熔断设备,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并配置为由所述处理器执行以实现如权利要求1-7任一种所述的方法。
13.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,
所述计算机程序被处理器执行以实现如权利要求1-7任一种所述的方法。
CN201810989240.7A 2018-08-28 2018-08-28 服务资源的熔断方法、装置、设备及计算机可读存储介质 Active CN109240765B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810989240.7A CN109240765B (zh) 2018-08-28 2018-08-28 服务资源的熔断方法、装置、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810989240.7A CN109240765B (zh) 2018-08-28 2018-08-28 服务资源的熔断方法、装置、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN109240765A CN109240765A (zh) 2019-01-18
CN109240765B true CN109240765B (zh) 2021-08-10

Family

ID=65068626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810989240.7A Active CN109240765B (zh) 2018-08-28 2018-08-28 服务资源的熔断方法、装置、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN109240765B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918196B (zh) * 2019-01-23 2022-11-29 深圳壹账通智能科技有限公司 系统资源分配方法、装置、计算机设备和存储介质
CN112000720A (zh) * 2019-05-27 2020-11-27 北京京东尚科信息技术有限公司 数据库连接的管理方法、管理系统以及数据库连接池
CN110187995B (zh) * 2019-05-30 2022-12-20 北京奇艺世纪科技有限公司 一种熔断对端节点的方法及熔断装置
CN110286890A (zh) * 2019-06-10 2019-09-27 天翼电子商务有限公司 异构语言应用的调用方法、系统、介质及装置
CN110309016B (zh) * 2019-06-13 2022-03-04 北京奇艺世纪科技有限公司 一种熔断恢复方法、装置及服务器
CN110377434A (zh) * 2019-07-04 2019-10-25 深圳前海微众银行股份有限公司 一种服务熔断方法、装置及消息中间件
CN112306701B (zh) * 2019-07-25 2024-05-03 中移动信息技术有限公司 服务熔断方法、装置、设备及存储介质
CN110543381B (zh) * 2019-08-21 2022-02-22 语联网(武汉)信息技术有限公司 机器翻译引擎服务恢复方法及装置
CN110515746A (zh) * 2019-08-22 2019-11-29 北京宝兰德软件股份有限公司 一种处理慢消费者的方法及装置
CN110704220B (zh) * 2019-09-02 2023-03-24 东软集团股份有限公司 一种熔断参数的调整方法、装置及设备
CN110674060A (zh) * 2019-09-06 2020-01-10 平安普惠企业管理有限公司 服务的熔断控制方法及装置
CN112988434B (zh) * 2019-12-13 2024-05-03 中国银联股份有限公司 一种服务熔断器、服务熔断方法以及计算机可读存储介质
CN111324477A (zh) * 2020-02-03 2020-06-23 北京同邦卓益科技有限公司 一种分布式熔断的处理方法及装置
CN111552587A (zh) * 2020-04-30 2020-08-18 武汉众邦银行股份有限公司 一种基于滑动时间窗的服务熔断方法
CN113676434B (zh) * 2020-05-13 2023-03-24 华为技术有限公司 网络资源的熔断方法、装置、电子设备及存储介质
CN111770134B (zh) * 2020-05-25 2024-03-29 国电南瑞科技股份有限公司 一种基于服务质量的服务熔断方法
CN111814178A (zh) * 2020-06-29 2020-10-23 四川长虹电器股份有限公司 一种针对第三方应用的数据回调熔断保护方法
CN112653597B (zh) * 2020-12-17 2022-07-12 中国联合网络通信集团有限公司 基于服务网格的服务熔断机制调整方法及系统
CN116016675A (zh) * 2022-11-29 2023-04-25 北京奇艺世纪科技有限公司 一种服务请求处理方法、装置、网关设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106301947A (zh) * 2016-08-31 2017-01-04 广州唯品会信息科技有限公司 业务信息处理系统和方法
CN107872525A (zh) * 2017-11-09 2018-04-03 杭州东方通信软件技术有限公司 一种微服务调用架构
CN108234653A (zh) * 2018-01-03 2018-06-29 马上消费金融股份有限公司 一种处理业务请求的方法及装置
CN108446111A (zh) * 2018-03-26 2018-08-24 国家电网公司客户服务中心 一种基于Spring cloud的微服务构建方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106412016A (zh) * 2016-08-31 2017-02-15 广州唯品会信息科技有限公司 服务器的连接控制方法及装置
CN106375150A (zh) * 2016-08-31 2017-02-01 广州唯品会信息科技有限公司 服务器的断开控制方法及装置
CN108022028B (zh) * 2016-11-01 2021-02-26 南京途牛科技有限公司 一种资源处理方法及装置
CN106776099B (zh) * 2017-01-11 2020-01-03 北京皮尔布莱尼软件有限公司 一种服务熔断隔离系统和方法
CN107171828B (zh) * 2017-04-18 2020-04-10 北京思特奇信息技术股份有限公司 一种应对远程调用依赖的超时熔断方法和系统
CN107608812B (zh) * 2017-09-08 2020-07-31 北京奇艺世纪科技有限公司 一种熔断方法和服务器
CN108009075B (zh) * 2017-11-27 2018-10-09 南京联创信息科技有限公司 基于Hystrix框架的动态熔断判断方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106301947A (zh) * 2016-08-31 2017-01-04 广州唯品会信息科技有限公司 业务信息处理系统和方法
CN107872525A (zh) * 2017-11-09 2018-04-03 杭州东方通信软件技术有限公司 一种微服务调用架构
CN108234653A (zh) * 2018-01-03 2018-06-29 马上消费金融股份有限公司 一种处理业务请求的方法及装置
CN108446111A (zh) * 2018-03-26 2018-08-24 国家电网公司客户服务中心 一种基于Spring cloud的微服务构建方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
微服务通信框架的设计与实现;肖仲垚;《中国优秀硕士学位论文全文数据库》;20180215;I138-766 *

Also Published As

Publication number Publication date
CN109240765A (zh) 2019-01-18

Similar Documents

Publication Publication Date Title
CN109240765B (zh) 服务资源的熔断方法、装置、设备及计算机可读存储介质
CN106533805B (zh) 一种微服务请求处理方法、微服务控制器及微服务架构
CN110830283B (zh) 故障检测方法、装置、设备和系统
CN109450691B (zh) 服务网关监控方法、设备及计算机可读存储介质
CN111565135A (zh) 监控服务器运行的方法、监控服务器和存储介质
JP4679314B2 (ja) 障害通報の通知方法およびシステム
CN112732674B (zh) 云平台服务管理方法、装置、设备及可读存储介质
CN110618864A (zh) 一种中断任务恢复方法及装置
CN111901176B (zh) 故障确定方法、装置、设备及存储介质
US20060212743A1 (en) Storage medium readable by a machine tangible embodying event notification management program and event notification management apparatus
CN111611057A (zh) 分布式重试方法、装置、电子设备和存储介质
CN110119314B (zh) 一种服务器调用方法、装置、服务器及存储介质
CN114615141A (zh) 通信控制方法
CN113489149B (zh) 基于实时状态感知的电网监控系统业务主节点选取方法
JP6418377B2 (ja) 管理対象装置、管理装置及びネットワーク管理システム
CN107426012B (zh) 一种基于超融合架构的故障恢复方法及其装置
CN111897626A (zh) 一种面向云计算场景的虚拟机高可靠系统和实现方法
US20220045874A1 (en) Charging processing method and system, and related device
CN113821414B (zh) 一种服务器保护方法、装置、电子设备及存储介质
US20150178140A1 (en) Information processing system and monitoring method
CN111309456A (zh) 一种任务执行方法及系统
JP2015176168A (ja) 管理サーバおよび障害復旧方法、並びにコンピュータ・プログラム
CN112804108B (zh) 信令执行方法、装置、电子设备及机器可读存储介质
WO2014040470A1 (zh) 告警消息的处理方法及装置
CN111464357A (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