CN110309016B - 一种熔断恢复方法、装置及服务器 - Google Patents

一种熔断恢复方法、装置及服务器 Download PDF

Info

Publication number
CN110309016B
CN110309016B CN201910510079.5A CN201910510079A CN110309016B CN 110309016 B CN110309016 B CN 110309016B CN 201910510079 A CN201910510079 A CN 201910510079A CN 110309016 B CN110309016 B CN 110309016B
Authority
CN
China
Prior art keywords
service
request data
detection result
performance detection
fusing
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
CN201910510079.5A
Other languages
English (en)
Other versions
CN110309016A (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 QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and 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 QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201910510079.5A priority Critical patent/CN110309016B/zh
Publication of CN110309016A publication Critical patent/CN110309016A/zh
Application granted granted Critical
Publication of CN110309016B publication Critical patent/CN110309016B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1489Generic software techniques for error detection or fault masking through recovery blocks

Landscapes

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

Abstract

本发明实施例提供了一种熔断恢复方法、装置及服务器。该方法包括:在第一服务所调用的第二服务被熔断期间,利用预先缓存的目标请求数据对第二服务的服务性能进行检测,得到第二服务的服务性能检测结果;其中,目标请求数据是在第一服务所调用的第二服务未被熔断时,从第一服务发送给第二服务的请求数据中所获取的;当服务性能检测结果满足熔断恢复阈值时,恢复第一服务对第二服务的调用;当服务性能检测结果不满足熔断恢复阈值时,放弃恢复第一服务对第二服务的调用。这样,可以在保证第一服务的稳定性的前提下对被熔断的第二服务进行熔断恢复。

Description

一种熔断恢复方法、装置及服务器
技术领域
本发明涉及计算机技术技术领域,特别是涉及一种熔断恢复方法、装置及服务器。
背景技术
在微服务框架中,服务器中的一些服务常常需要依赖另一些服务来实现更全面的功能。例如,服务A需要依赖服务B和C来实现更全面的功能,而服务B又需要依赖服务D来实现更全面的功能。
当服务A所依赖的服务B出现故障时,服务A调用服务B的成功率会降低,而在成功率较低时会使服务A的稳定性受影响。为了保证服务A的稳定性,服务器常常需要对服务A所调用的服务B进行熔断,使得服务A不能对服务B进行调用。并且,在经过固定的熔断时长(例如10分钟)后,再恢复服务A对服务B的调用,以实现熔断恢复。
发明人在实现本发明的过程中发现,在经过固定的熔断时长后,服务B可能仍然处于故障状态,此时进行熔断恢复,无法保证服务A的稳定性。
发明内容
本发明实施例的目的在于提供一种熔断恢复方法、装置及服务器,以在可以保证服务的稳定性的前提下进行熔断恢复。具体技术方案如下:
第一方面,本发明实施例提供了一种熔断恢复方法,应用于服务器,该方法可以包括:
在第一服务所调用的第二服务被熔断期间,利用预先缓存的目标请求数据对第二服务的服务性能进行检测,得到第二服务的服务性能检测结果;其中,目标请求数据是在第一服务所调用的第二服务未被熔断时,从第一服务发送给第二服务的请求数据中所获取的;
当服务性能检测结果满足熔断恢复阈值时,恢复第一服务对第二服务的调用;
当服务性能检测结果不满足熔断恢复阈值时,放弃恢复第一服务对第二服务的调用。
可选地,第二服务的服务性能检测结果可以包括:第二服务处理目标请求数据的成功率和/或处理目标请求数据的响应时长。
可选地,在利用预先缓存的目标请求数据对第二服务的服务性能进行检测,得到第二服务的服务性能检测结果的步骤之前,还可以包括:
在第一服务所调用的第二服务未被熔断时,获得第一服务发送给第二服务的请求数据,作为第一请求数据;
将第一请求数据输入预先构建的队列,得到队列中存储的目标请求数据。
可选地,获得第一服务发送给第二服务的请求数据,作为第一请求数据的步骤,可以包括:
按照预设采样比例对第一服务发送给第二服务的请求数据进行采样,得到采样得到的请求数据作为第一请求数据。
可选地,按照预设采样比例对第一服务发送给第二服务的请求数据进行采样,得到采样得到的请求数据作为第一请求数据的步骤,可以包括:
按照预设采样比例对第一服务发送给第二服务的请求数据进行采样,得到采样得到的请求数据;
确定采样得到的请求数据中被第二服务成功处理的请求数据,作为第一请求数据。
可选地,在第一服务所调用的第二服务被熔断期间,利用预先缓存的目标请求数据对第二服务的服务性能进行检测,得到第二服务的服务性能检测结果的步骤,可以包括:
当第一服务所调用的第二服务被熔断的熔断持续时长等于预设的熔断时长时,利用预先缓存的目标请求数据对第二服务的服务性能进行检测,得到第二服务的服务性能检测结果。
第二方面,本发明实施例还提供了一种熔断恢复装置,应用于服务器,该装置可以包括:
检测模块,用于在第一服务所调用的第二服务被熔断期间,利用预先缓存的目标请求数据对第二服务的服务性能进行检测,得到第二服务的服务性能检测结果;其中,目标请求数据是在第一服务所调用的第二服务未被熔断时,从第一服务发送给第二服务的请求数据中所获取的;
恢复模块,用于当服务性能检测结果满足熔断恢复阈值时,恢复第一服务对第二服务的调用;
处理模块,用于当服务性能检测结果不满足熔断恢复阈值时,放弃恢复第一服务对第二服务的调用。
可选地,第二服务的服务性能检测结果包括:第二服务处理目标请求数据的成功率和/或处理目标请求数据的响应时长。
可选地,在本申请实施例中,该装置还可以包括:
第一获得模块,用于在利用预先缓存的目标请求数据对第二服务的服务性能进行检测,得到第二服务的服务性能检测结果之前,在第一服务所调用的第二服务未被熔断时,获得第一服务发送给第二服务的请求数据,作为第一请求数据;
第二获得模块,用于将第一请求数据输入预先构建的队列,得到队列中存储的目标请求数据。
可选地,在本申请实施例中,第一获得模块可以包括:
获得单元,用于按照预设采样比例对第一服务发送给第二服务的请求数据进行采样,得到采样得到的请求数据作为第一请求数据。
可选地,在本申请实施例中,获得单元具体可以用于:
按照预设采样比例对第一服务发送给第二服务的请求数据进行采样,得到采样得到的请求数据;
确定采样得到的请求数据中被第二服务成功处理的请求数据,作为第一请求数据。
可选地,在本申请实施例中,在检测模块具体可以用于:
当第一服务所调用的第二服务被熔断的熔断持续时长等于预设的熔断时长时,利用预先缓存的目标请求数据对第二服务的服务性能进行检测,得到第二服务的服务性能检测结果。
第三方面,本发明实施例提供了一种服务器,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一项熔断恢复方法的方法步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在服务器上运行时,使得服务器执行上述任一项熔断恢复方法的方法步骤。
第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在服务器上运行时,使得服务器执行上述任一项熔断恢复方法的方法步骤。
在本发明实施例中,服务器可以在第一服务所调用的第二服务被熔断期间,利用预先缓存的目标请求数据对第二服务的服务性能进行检测。从而,可以得到第二服务的服务性能检测结果。其中,由于目标请求数据是在第一服务所调用的第二服务未被熔断时,服务器从第一服务发送给第二服务的请求数据中所获取的。因而,利用目标请求数据对第二服务的服务性能进行检测不会涉及第一服务的实际请求,使得可以不对第一服务的实际请求造成影响。
并且,当服务性能检测结果满足熔断恢复阈值时,服务器可以恢复第一服务对第二服务的调用。当服务性能检测结果不满足熔断恢复阈值时,则放弃恢复第一服务对第二服务的调用。这样,可以避免第二服务在处于故障状态时,恢复第一服务对第二服务的调用,保证了第一服务的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种熔断恢复方法的流程图;
图2为本发明实施例提供的另一种熔断恢复方法的流程图;
图3为本发明实施例提供的一种熔断恢复装置的结构示意图;
图4为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
为了解决现有技术中存在的问题,本发明实施例提供了一种熔断恢复方法、装置及服务器。
下面首先对本发明实施例提供的熔断恢复方法进行说明。
本发明实施例提供的熔断恢复方法可以应用于:存在服务被熔断的服务器。
该存在服务被熔断的服务器包括但并不局限于微服务框架中的服务器。其中,在微服务框架中,会将一个应用程序拆分成一个一个的服务,彻底地去耦合,每一个服务提供单个业务功能的服务,一个服务可能会依赖一个或多个其他服务来实现更全面的功能。
另外,可以假设服务A需要依赖服务B来实现更全面的功能。那么,当服务器控制服务A不能对服务B进行调用时,则表明服务A所调用的服务B被熔断。
参见图1,该熔断恢复方法可以包括如下步骤:
S101:在第一服务所调用的第二服务被熔断期间,利用预先缓存的目标请求数据对第二服务的服务性能进行检测,得到第二服务的服务性能检测结果;其中,目标请求数据是在第一服务所调用的第二服务未被熔断时,从第一服务发送给第二服务的请求数据中所获取的;
可以理解的是,第一服务和第二服务为服务器中的服务。而且,第一服务需要依赖第二服务来实现更全面的功能。
另外,第二服务的服务性能检测结果可以是指:第二服务处理目标请求数据的成功率。也可以指:第二服务处理目标请求数据的响应时长。当然,也可以是指:第二服务处理目标请求数据的成功率和响应时长的综合结果。这都是合理的。
此外,在一种实现方式中,服务器可以在第一服务所调用的第二服务被熔断期间的任意时间点,利用预先缓存的目标请求数据对第二服务的服务性能进行检测,得到第二服务的服务性能检测结果。
其中,目标请求数据是在第一服务所调用的第二服务未被熔断时,服务器从第一服务发送给第二服务的请求数据中所获取的。这样,服务器可以在第一服务所调用的第二服务被熔断期间的任意时间点,利用预先缓存的目标请求数据来检测第二服务的服务性能。该种检测方式不涉及第一服务的实际请求,因而在检测第二服务的服务性能的过程中不会对第一服务的实际请求造成影响,保证了第一服务的稳定性。
在另一种实现方式中,服务器可以在第一服务所调用的第二服务被熔断的熔断持续时长等于预设的熔断时长时,利用预先缓存的目标请求数据对第二服务的服务性能进行检测,得到第二服务的服务性能检测结果。其中,该预设的熔断时长可以为10分钟,当然并不局限于此。
其中,在相关技术中,当第一服务所调用的第二服务被熔断的熔断持续时长等于预设的熔断时长时,服务器会自动恢复第一服务对第二服务的调用,从而实现对第二服务的熔断恢复。而在本发明实施例中,当一服务所调用的第二服务被熔断的熔断持续时长等于预设的熔断时长时,服务器会先利用预先缓存的目标请求数据来检测第二服务的服务性能,进而根据得到的服务性能检测结果来获得熔断恢复决策。这样,可以避免第二服务在处于故障状态时,恢复第一服务对第二服务的调用,保证了第一服务的稳定性。而且,在检测第二服务的服务性能的过程中不会对第一服务的实际请求造成影响,保证了第一服务的稳定性。
为了清晰布局,后续对获得目标请求数据的方式进行说明。
S102:当服务性能检测结果满足熔断恢复阈值时,恢复第一服务对第二服务的调用;
S103:当服务性能检测结果不满足熔断恢复阈值时,放弃恢复第一服务对第二服务的调用。
举例而言,当第二服务的服务性能检测结果为:第二服务处理目标请求数据的成功率时,服务器可以检测第二服务处理目标请求数据的成功率是否大于熔断恢复阈值。其中,该熔断恢复阈值具体可以指预设的成功率,该预设的成功率可以为98%,当然并不局限于此。若是,则表明服务性能检测结果满足熔断恢复阈值,此时可以恢复第一服务对第二服务的调用。否则,放弃恢复第一服务对第二服务的调用。
当第二服务的服务性能检测结果为:第二服务处理目标请求数据的响应时长时,服务器可以检测第二服务处理目标请求数据的响应时长是否小于熔断恢复阈值。其中,该熔断恢复阈值具体可以指预设的响应时长,该预设响应时长可以为1秒,当然并不局限于此。若是,则表明服务性能检测结果满足熔断恢复值,此时可以恢复第一服务对第二服务的调用。否则,放弃恢复第一服务对第二服务的调用。其中,该第二服务处理目标请求数据的响应时长可以是指:处理目标请求数据的平均响应时长,当然并不局限于此。
当第二服务的服务性能检测结果为:第二服务处理目标请求数据的成功率和响应时长的综合结果时,服务器可以检测第二服务处理目标请求数据的成功率是否大于预设成功率且响应时长是否小于预设响应时长。若是,则表明服务性能检测结果满足熔断恢复值,此时可以恢复第一服务对第二服务的调用。否则,放弃恢复第一服务对第二服务的调用。
在本发明实施例中,服务器可以在第一服务所调用的第二服务被熔断期间,利用预先缓存的目标请求数据对第二服务的服务性能进行检测。从而,可以得到第二服务的服务性能检测结果。其中,由于目标请求数据是在第一服务所调用的第二服务未被熔断时,服务器从第一服务发送给第二服务的请求数据中所获取的。因而,利用目标请求数据对第二服务的服务性能进行检测不会涉及第一服务的实际请求,使得可以不对第一服务的实际请求造成影响。
并且,当服务性能检测结果满足熔断恢复阈值时,服务器可以恢复第一服务对第二服务的调用。当服务性能检测结果不满足熔断恢复阈值时,则放弃恢复第一服务对第二服务的调用。这样,可以避免第二服务在处于故障状态时,恢复第一服务对第二服务的调用,保证了第一服务的稳定性。
在本发明实施例中,可以通过以下方式获得目标请求数据:
服务器可以在第一服务所调用的第二服务未被熔断时,获得第一服务发送给第二服务的请求数据,作为第一请求数据。然后,服务器可以将第一请求数据输入至预先构建的队列,从而可以得到队列中存储的目标请求数据。
由于队列具有先进先出及缓存数据的特点,因而可以通过队列对第一服务器发送给第二服务器的请求数据进行更新,并可以对更新得到的请求数据进行缓存,保证了请求数据的时效性。
其中,服务器在获得第一服务发送给第二服务的请求数据之后,还可以按照预设采样比例对第一服务发送给第二服务的请求数据进行采样。然后,得到采样得到的请求数据作为第一请求数据。这样,可以在第一服务发送给第二服务的请求数据数量较多时,只将采样得到的请求数据作为第一请求数据。从而,可以减少输入至队列的请求数据的数量,降低请求数据进入队列的等待时间,从而保证队列中所缓存的目标请求数据为较新的请求数据。
另外,服务器在按照预设采样比例对第一服务发送给第二服务的请求数据进行采样,得到采样得到的请求数据之后,还可以将采样得到的请求数据中被第二服务成功处理的请求数据,作为第一请求数据。这样,可以使得队列中所缓存的目标请求数据为能够被第二服务成功处理的请求数据,保证后续利用所缓存的目标请求数据对第二服务的服务性能进行检测时,获得较准确的服务性能检测结果。
其中,被第二服务成功处理的请求数据可以是:在第二服务器对请求数据处理后,能够获得第二服务器针对该请求数据的响应数据的请求数据。第二服务成功处理的请求数据也可以是:在第二服务器对请求数据处理后,能够获得第二服务器针对该请求数据的响应数据且响应时长小于预设时长的请求数据。这都是合理的。
下面结合图2对本发明实施例提供的熔断恢复方法进行说明。
S1:用户设备向服务器中的第一服务发送用户请求;
具体地,用户设备可以向服务器中的第一服务接口发送用户请求。
S2:服务器采样并缓存第一服务发送给第二服务的请求数据,作为目标请求数据;
其中,第一服务可以为服务器中的第一层应用服务,第二服务为服务器中的第二层应用服务。第一层应用服务需要依赖第二层应用服务。
S3:第一服务向第二服务发送请求数据;
其中,服务器可以在第一服务向第二服务发送请求数据的过程中,采样并缓存第一服务发送给第二服务的请求数据。当然,服务器也可以在第一服务待发送给第二服务器的请求数据生成之后,采样并缓存该所生成的请求数据,这都是合理的。
S4:第二服务向第一服务返回该请求数据的响应数据;
S5:第一服务向用户设备返回用户请求的响应数据;
S6:在第一服务所调用的第二服务被熔断后,用户设备向服务器中的第一服务发送用户请求;
S7:第一服务向用户设备返回预设的安全数据;
其中,该预设的安全数据可以为本领域根据具体的业务需求所配置的第二服务所对应的数据。
S8:在第一服务所调用的第二服务被熔断的熔断持续时长等于预设的熔断时长后,用户设备向服务器中的第一服务发送用户请求;
S9:第一服务向用户设备返回预设的安全数据;
S10:第一服务向第二服务发送目标请求数据;
S11:服务器计算第二服务处理目标请求数据的成功率;
S12:当计算得到的成功率大于预设成功率且进行熔断恢复之后,用户设备向服务器中的第一服务发送用户请求;
S13:服务器采样并缓存第一服务发送给第二服务的请求数据,作为目标请求数据;
S14:第一服务向第二服务发送请求数据;
S15:第二服务向第一服务返回该请求数据的响应数据;
S16:第一服务向用户设备返回用户请求的响应数据。
综上,应用本发明实施例提供的熔断恢复方法,可以避免第二服务在处于故障状态时,恢复第一服务对第二服务的调用,保证了第一服务的稳定性。
相应于上述方法实施例,本发明实施例还提供了一种熔断恢复装置,应用于服务器,参见图3,该装置可以包括:
检测模块301,用于在第一服务所调用的第二服务被熔断期间,利用预先缓存的目标请求数据对第二服务的服务性能进行检测,得到第二服务的服务性能检测结果;其中,目标请求数据是在第一服务所调用的第二服务未被熔断时,从第一服务发送给第二服务的请求数据中所获取的;
恢复模块302,用于当服务性能检测结果满足熔断恢复阈值时,恢复第一服务对第二服务的调用;
处理模块303,用于当服务性能检测结果不满足熔断恢复阈值时,放弃恢复第一服务对第二服务的调用。
应用本发明实施例提供的装置,服务器可以在第一服务所调用的第二服务被熔断期间,利用预先缓存的目标请求数据对第二服务的服务性能进行检测。从而,可以得到第二服务的服务性能检测结果。其中,由于目标请求数据是在第一服务所调用的第二服务未被熔断时,服务器从第一服务发送给第二服务的请求数据中所获取的。因而,利用目标请求数据对第二服务的服务性能进行检测不会涉及第一服务的实际请求,使得可以不对第一服务的实际请求造成影响。
并且,当服务性能检测结果满足熔断恢复阈值时,服务器可以恢复第一服务对第二服务的调用。当服务性能检测结果不满足熔断恢复阈值时,则放弃恢复第一服务对第二服务的调用。这样,可以避免第二服务在处于故障状态时,恢复第一服务对第二服务的调用,保证了第一服务的稳定性。
可选地,第二服务的服务性能检测结果可以包括:第二服务处理目标请求数据的成功率和/或处理目标请求数据的响应时长。
可选地,在本发明实施例中,该装置还可以包括:
第一获得模块,用于在利用预先缓存的目标请求数据对第二服务的服务性能进行检测,得到第二服务的服务性能检测结果之前,在第一服务所调用的第二服务未被熔断时,获得第一服务发送给第二服务的请求数据,作为第一请求数据;
第二获得模块,用于将第一请求数据输入预先构建的队列,得到队列中存储的目标请求数据。
可选地,在本发明实施例中,第一获得模块可以包括:
获得单元,用于按照预设采样比例对第一服务发送给第二服务的请求数据进行采样,得到采样得到的请求数据作为第一请求数据。
可选地,在本发明实施例中,获得单元具体可以用于:
按照预设采样比例对第一服务发送给第二服务的请求数据进行采样,得到采样得到的请求数据;
确定采样得到的请求数据中被第二服务成功处理的请求数据,作为第一请求数据。
可选地,在本发明实施例中,在检测模块301具体可以用于:
当第一服务所调用的第二服务被熔断的熔断持续时长等于预设的熔断时长时,利用预先缓存的目标请求数据对第二服务的服务性能进行检测,得到第二服务的服务性能检测结果。
相应于上述方法实施例,本发明实施例还提供了一种服务器,如图4所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信,
存储器403,用于存放计算机程序;
处理器401,用于执行存储器403上所存放的程序时,实现上述任一所述的熔断恢复方法的方法步骤。
在本发明实施例中,服务器可以在第一服务所调用的第二服务被熔断期间,利用预先缓存的目标请求数据对第二服务的服务性能进行检测。从而,可以得到第二服务的服务性能检测结果。其中,由于目标请求数据是在第一服务所调用的第二服务未被熔断时,服务器从第一服务发送给第二服务的请求数据中所获取的。因而,利用目标请求数据对第二服务的服务性能进行检测不会涉及第一服务的实际请求,使得可以不对第一服务的实际请求造成影响。
并且,当服务性能检测结果满足熔断恢复阈值时,服务器可以恢复第一服务对第二服务的调用。当服务性能检测结果不满足熔断恢复阈值时,则放弃恢复第一服务对第二服务的调用。这样,可以避免第二服务在处于故障状态时,恢复第一服务对第二服务的调用,保证了第一服务的稳定性。
相应于上述方法实施例,在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一熔断恢复方法的方法步骤。
本发明实施例提供的计算机可读存储介质中存储的计算机程序被服务器的处理器执行后,服务器可以在第一服务所调用的第二服务被熔断期间,利用预先缓存的目标请求数据对第二服务的服务性能进行检测。从而,可以得到第二服务的服务性能检测结果。其中,由于目标请求数据是在第一服务所调用的第二服务未被熔断时,服务器从第一服务发送给第二服务的请求数据中所获取的。因而,利用目标请求数据对第二服务的服务性能进行检测不会涉及第一服务的实际请求,使得可以不对第一服务的实际请求造成影响。
并且,当服务性能检测结果满足熔断恢复阈值时,服务器可以恢复第一服务对第二服务的调用。当服务性能检测结果不满足熔断恢复阈值时,则放弃恢复第一服务对第二服务的调用。这样,可以避免第二服务在处于故障状态时,恢复第一服务对第二服务的调用,保证了第一服务的稳定性。
相应于上述方法实施例,在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一熔断恢复方法的方法步骤。
本发明实施例提供的计算机程序被服务器的处理器执行后,服务器可以在第一服务所调用的第二服务被熔断期间,利用预先缓存的目标请求数据对第二服务的服务性能进行检测。从而,可以得到第二服务的服务性能检测结果。其中,由于目标请求数据是在第一服务所调用的第二服务未被熔断时,服务器从第一服务发送给第二服务的请求数据中所获取的。因而,利用目标请求数据对第二服务的服务性能进行检测不会涉及第一服务的实际请求,使得可以不对第一服务的实际请求造成影响。
并且,当服务性能检测结果满足熔断恢复阈值时,服务器可以恢复第一服务对第二服务的调用。当服务性能检测结果不满足熔断恢复阈值时,则放弃恢复第一服务对第二服务的调用。这样,可以避免第二服务在处于故障状态时,恢复第一服务对第二服务的调用,保证了第一服务的稳定性。
上述服务器提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述服务器与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、服务器、计算机可读存储介质和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (11)

1.一种熔断恢复方法,其特征在于,应用于服务器,所述方法包括:
在第一服务所调用的第二服务被熔断期间,利用预先缓存的目标请求数据对所述第二服务的服务性能进行检测,得到所述第二服务的服务性能检测结果;其中,所述目标请求数据是在所述第一服务所调用的第二服务未被熔断时,从所述第一服务发送给所述第二服务的请求数据中所获取的;
当所述服务性能检测结果满足熔断恢复阈值时,恢复所述第一服务对所述第二服务的调用;
当所述服务性能检测结果不满足熔断恢复阈值时,放弃恢复所述第一服务对所述第二服务的调用;
在所述利用预先缓存的目标请求数据对所述第二服务的服务性能进行检测,得到所述第二服务的服务性能检测结果的步骤之前,还包括:
在所述第一服务所调用的第二服务未被熔断时,获得所述第一服务发送给所述第二服务的请求数据,作为第一请求数据;
将所述第一请求数据输入预先构建的队列,得到所述队列中存储的目标请求数据。
2.根据权利要求1所述的方法,其特征在于,所述第二服务的服务性能检测结果包括:所述第二服务处理所述目标请求数据的成功率和/或处理所述目标请求数据的响应时长。
3.根据权利要求1所述的方法,其特征在于,所述获得所述第一服务发送给所述第二服务的请求数据,作为第一请求数据的步骤,包括:
按照预设采样比例对所述第一服务发送给所述第二服务的请求数据进行采样,得到采样得到的请求数据作为第一请求数据。
4.根据权利要求3所述的方法,其特征在于,所述按照预设采样比例对所述第一服务发送给所述第二服务的请求数据进行采样,得到采样得到的请求数据作为第一请求数据的步骤,包括:
按照预设采样比例对所述第一服务发送给所述第二服务的请求数据进行采样,得到采样得到的请求数据;
确定采样得到的请求数据中被所述第二服务成功处理的请求数据,作为第一请求数据。
5.根据权利要求1-4中任一项所述的方法,其特征在于,在第一服务所调用的第二服务被熔断期间,利用预先缓存的目标请求数据对所述第二服务的服务性能进行检测,得到所述第二服务的服务性能检测结果的步骤,包括:
当所述第一服务所调用的第二服务被熔断的熔断持续时长等于预设的熔断时长时,利用预先缓存的目标请求数据对所述第二服务的服务性能进行检测,得到所述第二服务的服务性能检测结果。
6.一种熔断恢复装置,其特征在于,应用于服务器,所述装置包括:
检测模块,用于在第一服务所调用的第二服务被熔断期间,利用预先缓存的目标请求数据对所述第二服务的服务性能进行检测,得到所述第二服务的服务性能检测结果;其中,所述目标请求数据是在所述第一服务所调用的第二服务未被熔断时,从所述第一服务发送给所述第二服务的请求数据中所获取的;
恢复模块,用于当所述服务性能检测结果满足熔断恢复阈值时,恢复所述第一服务对所述第二服务的调用;
处理模块,用于当所述服务性能检测结果不满足熔断恢复阈值时,放弃恢复所述第一服务对所述第二服务的调用;
所述装置还包括:
第一获得模块,用于在利用预先缓存的目标请求数据对所述第二服务的服务性能进行检测,得到所述第二服务的服务性能检测结果之前,在所述第一服务所调用的第二服务未被熔断时,获得所述第一服务发送给所述第二服务的请求数据,作为第一请求数据;
第二获得模块,用于将所述第一请求数据输入预先构建的队列,得到所述队列中存储的目标请求数据。
7.根据权利要求6所述的装置,其特征在于,所述第二服务的服务性能检测结果包括:所述第二服务处理所述目标请求数据的成功率和/或处理所述目标请求数据的响应时长。
8.根据权利要求6所述的装置,其特征在于,所述第一获得模块包括:
获得单元,用于按照预设采样比例对所述第一服务发送给所述第二服务的请求数据进行采样,得到采样得到的请求数据作为第一请求数据。
9.根据权利要求8所述的装置,其特征在于,所述获得单元具体用于:
按照预设采样比例对所述第一服务发送给所述第二服务的请求数据进行采样,得到采样得到的请求数据;
确定采样得到的请求数据中被所述第二服务成功处理的请求数据,作为第一请求数据。
10.根据权利要求6-9中任一项所述的装置,其特征在于,在检测模块具体用于:
当所述第一服务所调用的第二服务被熔断的熔断持续时长等于预设的熔断时长时,利用预先缓存的目标请求数据对所述第二服务的服务性能进行检测,得到所述第二服务的服务性能检测结果。
11.一种服务器,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5中任一所述的方法步骤。
CN201910510079.5A 2019-06-13 2019-06-13 一种熔断恢复方法、装置及服务器 Active CN110309016B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910510079.5A CN110309016B (zh) 2019-06-13 2019-06-13 一种熔断恢复方法、装置及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910510079.5A CN110309016B (zh) 2019-06-13 2019-06-13 一种熔断恢复方法、装置及服务器

Publications (2)

Publication Number Publication Date
CN110309016A CN110309016A (zh) 2019-10-08
CN110309016B true CN110309016B (zh) 2022-03-04

Family

ID=68075837

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910510079.5A Active CN110309016B (zh) 2019-06-13 2019-06-13 一种熔断恢复方法、装置及服务器

Country Status (1)

Country Link
CN (1) CN110309016B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737567A (zh) * 2019-10-17 2020-01-31 吉旗(成都)科技有限公司 基于缓存的服务端接口熔断方法及装置
CN111078453B (zh) * 2019-12-17 2024-03-29 深圳前海环融联易信息科技服务有限公司 微服务自动熔断和恢复方法、装置、计算机设备及存储介质
CN111104213B (zh) * 2019-12-25 2023-10-10 上海众源网络有限公司 调整熔断的方法及装置
CN113472879B (zh) * 2021-06-29 2023-12-08 中国平安财产保险股份有限公司 一种服务请求的方法、装置、计算机设备及存储介质
CN114710503A (zh) * 2022-04-21 2022-07-05 思必驰科技股份有限公司 服务调度的方法及电子设备和存储介质
CN117493067B (zh) * 2023-12-29 2024-04-23 北京淘友天下技术有限公司 基于数据服务保护的熔断控制方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3021523A1 (fr) * 2014-11-12 2016-05-18 Bull S.A.S. Méthode et système de supervision applicative
CN106776099A (zh) * 2017-01-11 2017-05-31 北京皮尔布莱尼软件有限公司 一种服务熔断隔离系统和方法
CN108712309A (zh) * 2018-06-11 2018-10-26 郑州云海信息技术有限公司 一种微服务架构下的微服务节点防护方法和系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11323508B2 (en) * 2009-05-22 2022-05-03 Comcast Interactive Media, Llc Web service system and method
CN103731312A (zh) * 2014-01-26 2014-04-16 飞狐信息技术(天津)有限公司 对远程方法调用的服务进行故障检查的方法和装置
CN105763579B (zh) * 2014-12-15 2019-03-29 阿里巴巴集团控股有限公司 服务提供方法及装置
CN106294073B (zh) * 2016-08-15 2019-03-12 合一智能科技(深圳)有限公司 服务调用方法及装置
CN106375150A (zh) * 2016-08-31 2017-02-01 广州唯品会信息科技有限公司 服务器的断开控制方法及装置
CN107171828B (zh) * 2017-04-18 2020-04-10 北京思特奇信息技术股份有限公司 一种应对远程调用依赖的超时熔断方法和系统
CN108400885A (zh) * 2018-01-17 2018-08-14 北京奇艺世纪科技有限公司 一种服务可用性检测方法、装置及电子设备
CN108600005A (zh) * 2018-04-23 2018-09-28 国云科技股份有限公司 一种防御微服务雪崩效应的方法
CN109240765B (zh) * 2018-08-28 2021-08-10 中国联合网络通信集团有限公司 服务资源的熔断方法、装置、设备及计算机可读存储介质
CN109766210B (zh) * 2019-01-17 2022-04-22 多点生活(成都)科技有限公司 服务熔断控制方法、服务熔断控制装置和服务器集群

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3021523A1 (fr) * 2014-11-12 2016-05-18 Bull S.A.S. Méthode et système de supervision applicative
CN106776099A (zh) * 2017-01-11 2017-05-31 北京皮尔布莱尼软件有限公司 一种服务熔断隔离系统和方法
CN108712309A (zh) * 2018-06-11 2018-10-26 郑州云海信息技术有限公司 一种微服务架构下的微服务节点防护方法和系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
一种微服务框架的实现;张晶 等;《计算机系统应用》;20170415;第26卷(第4期);82-86 *
基于云平台的任务管理系统的设计与实现;杜华雄;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170815(第8期);I138-102 *
层次P2P网络下两级服务部署策略;张艳梅 等;《计算机工程》;20100605;第36卷(第11期);30-32,65 *
微服务通信框架的设计与实现;肖仲垚;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180215(第2期);I138-766 *

Also Published As

Publication number Publication date
CN110309016A (zh) 2019-10-08

Similar Documents

Publication Publication Date Title
CN110309016B (zh) 一种熔断恢复方法、装置及服务器
CN109889547B (zh) 一种异常网络设备的检测方法及装置
CN107315825B (zh) 一种索引更新系统、方法及装置
CN110519265B (zh) 一种防御攻击的方法及装置
US20160241575A1 (en) Information processing system and information processing method
CN111046310B (zh) 页面处理方法、装置、服务器及计算机可读存储介质
US9037926B2 (en) Background buffering of content updates
CN112087644A (zh) 拉流请求处理方法、装置、系统、电子设备和存储介质
CN109450969B (zh) 从第三方数据源服务器中获取数据的方法、装置和服务器
TW201711432A (zh) 對伺服器進行健康檢查的方法及設備
CN112532752B (zh) 数据上传方法、装置、电子设备及计算机可读存储介质
CN110851290A (zh) 一种数据同步方法、装置、电子设备及存储介质
CN112118352B (zh) 通知触发消息的处理方法、装置、电子设备以及计算机可读介质
CN111381988A (zh) 一种请求限速方法、装置、电子设备及存储介质
CN110311975B (zh) 一种数据请求处理方法及装置
CN110069217B (zh) 一种数据存储方法及装置
CN112653736B (zh) 一种并行回源方法、装置及电子设备
CN111782418A (zh) 一种数据归因方法、装置、电子设备和计算机可读介质
CN115296979B (zh) 一种故障处理方法、装置、设备及存储介质
CN114374657B (zh) 一种数据处理方法和装置
US20170279771A1 (en) Packet processing method, network server, and virtual private network system
CN113242245A (zh) 一种tcp消息限流方法、装置、服务器及存储介质
CN109787831B (zh) 一种会话备份方法及装置
CN113836180A (zh) 一种二级缓存数据处理方法、处理器、存储介质及系统
US9465876B2 (en) Managing content available for content prediction

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