CN114357048A - 接口熔断方法及系统、电子设备及存储介质 - Google Patents

接口熔断方法及系统、电子设备及存储介质 Download PDF

Info

Publication number
CN114357048A
CN114357048A CN202210014463.8A CN202210014463A CN114357048A CN 114357048 A CN114357048 A CN 114357048A CN 202210014463 A CN202210014463 A CN 202210014463A CN 114357048 A CN114357048 A CN 114357048A
Authority
CN
China
Prior art keywords
interface
request
upstream
downstream
fused
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
CN202210014463.8A
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.)
Ctrip Travel Network Technology Shanghai Co Ltd
Original Assignee
Ctrip Travel Network Technology Shanghai 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 Ctrip Travel Network Technology Shanghai Co Ltd filed Critical Ctrip Travel Network Technology Shanghai Co Ltd
Priority to CN202210014463.8A priority Critical patent/CN114357048A/zh
Publication of CN114357048A publication Critical patent/CN114357048A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种接口熔断方法及系统、电子设备及存储介质,方法包括:收集下游接口对上游接口的请求量统计数据;判断请求量统计数据是否合法,若不合法,则确定上游接口为待熔断接口;判断下游接口将要请求的目标上游接口是否为待熔断接口,若是,则停止下游接口对目标上游接口的请求。本发明通过将下游接口对上游接口的总请求量、请求成功率与预设阈值进行比较,判断上游接口是否出现问题,将出现问题的上游接口确定为待熔断接口,在下游接口对目标上游接口发出请求前,判断目标上游接口是否为待熔断接口,若是,则停止下游接口对目标上游接口的请求,以准确实现下游接口与待熔断接口之间的熔断,避免影响下游接口对正常上游接口的请求。

Description

接口熔断方法及系统、电子设备及存储介质
技术领域
本申请涉及接口技术领域,具体涉及一种接口熔断方法及系统、电子设备及存储介质。
背景技术
现有技术中,一般通过Sentinel(一种面向分布式服务框架的轻量级流量控制框架)或Hystrix(一种处理分布式系统的延迟和容错的开源库)进行接口层面的熔断,防止接口依赖的各种服务出现故障时发生雪崩效应。
这些方案主要缺陷在于Sentinel和Hystrix适用于内部服务间请求,不适用于请求外部HTTP(Hypertext Transfer Protocol,超文本传输协议)接口。在请求外部HTTP上游接口时,Sentinel和Hystrix不能区分对不同的外部HTTP上游接口的请求,导致只要判断出某个外部HTTP上游接口不可用,只能将当前下游接口的请求链路全部切断,在切断请求链路后,即使其他外部HTTP上游接口是正常的,当前下游接口也完全不能使用,导致用户体验下降。
发明内容
本发明要解决的技术问题是为了克服现有技术中接口熔断技术不能区分对不同的外部上游接口的请求的缺陷,提供一种接口熔断方法及系统、电子设备及存储介质。
本发明是通过下述技术方案来解决上述技术问题:
本发明提供了一种接口熔断方法,所述接口熔断方法包括:
收集下游接口对上游接口的请求量统计数据;
判断所述请求量统计数据是否合法,若不合法,则确定所述上游接口为待熔断接口;
判断所述下游接口将要请求的目标上游接口是否为所述待熔断接口,若是,则停止所述下游接口对所述目标上游接口的请求,以实现所述下游接口与所述目标上游接口之间的熔断。
优选地,所述请求量统计数据包括总请求量、请求成功的量;
所述判断所述请求量统计数据是否合法,若不合法,则确定所述上游接口为待熔断接口的具体步骤包括:
根据所述总请求量、请求成功的量计算请求成功率;
判断所述总请求量是否超过第一预设阈值,若超过,则判断所述请求成功率是否超过第二预设阈值,若超过,则确定所述总请求量、请求成功的量不合法,并将与所述上游接口对应的供应商的ID存储于数据库中。
优选地,所述判断所述下游接口将要请求的目标上游接口是否为所述待熔断接口的具体步骤包括:
判断与所述目标上游接口对应的供应商的ID是否存在于所述数据库中,若存在,则确定所述目标上游接口为所述待熔断接口。
优选地,不同的所述上游接口与不同的所述第一预设阈值、第二预设阈值相对应。
本发明还提供了一种接口熔断系统,所述接口熔断系统包括:
收集模块,用于收集下游接口对上游接口的请求量统计数据;
第一判断模块,用于判断所述请求量统计数据是否合法,若不合法,则确定所述上游接口为待熔断接口;
第二判断模块,用于判断所述下游接口将要请求的目标上游接口是否为所述待熔断接口,若是,则调用停用模块,所述停用模块用于停止所述下游接口对所述目标上游接口的请求,以实现所述下游接口与所述目标上游接口之间的熔断。
优选地,所述请求量统计数据包括总请求量、请求成功的量;
所述第一判断模块包括:
请求成功率计算单元,用于根据所述总请求量、请求成功的量计算请求成功率;
总请求量判断单元,用于判断所述总请求量是否超过第一预设阈值,若超过,则调用请求成功率判断单元,所述第二判断单元用于判断所述请求成功率是否超过第二预设阈值,若超过,则确定所述总请求量、请求成功的量不合法,并调用存储单元,所述存储单元用于将与所述上游接口对应的供应商的ID存储于数据库中。
优选地,所述第二判断模块包括:
待熔断接口判断单元,用于判断与所述目标上游接口对应的供应商的ID是否存在于所述数据库中,若存在,则确定所述目标上游接口为所述待熔断接口。
优选地,不同的所述上游接口与不同的所述第一预设阈值、第二预设阈值相对应。
本发明还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述的接口熔断方法。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述的接口熔断方法。
本发明的积极进步效果在于:本发明通过将下游接口对上游接口的总请求量、请求成功率与预设阈值进行比较,判断上游接口是否出现问题,将出现问题的上游接口确定为待熔断接口,在下游接口对目标上游接口发出请求前,判断目标上游接口是否为待熔断接口,若是,则停止下游接口对目标上游接口的请求,以准确实现下游接口与出现问题的上游接口之间的熔断,避免了影响下游接口对正常的上游接口的请求。
附图说明
图1为本发明的实施例1提供的接口熔断方法的流程图。
图2为本发明的实施例2提供的接口熔断系统的模块示意图。
图3为本发明的实施例2中的第一判断模块2的模块示意图。
图4为本发明的实施例3提供的电子设备的结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例提供了一种接口熔断方法,如图1所示,该接口熔断方法包括以下步骤:
S11、收集下游接口对上游接口的请求量统计数据。
具体地,所述请求量统计数据包括总请求量、请求成功的量。
S12、判断所述请求量统计数据是否合法,若不合法,则执行S13。
具体地,S12包括以下具体步骤:
S121、判断所述总请求量是否超过第一预设阈值,若超过,则执行S122。
S122、判断所述请求成功率是否超过第二预设阈值,若超过,则执行S13。
具体地,不同的所述上游接口与不同的所述第一预设阈值、第二预设阈值相对应。
具体地,在本实施例中,所述第一预设阈值可以通过如下方式获取:
获取下游接口对上游接口在最近一周去掉凌晨0点到早上8点的低峰期后每分钟的请求量,当所述请求量中的95%都大于某个值,则取这个值的最大值为第一预设阈值。
具体地,在本实施例中,所述第二预设阈值可以通过如下方式获取:
获取历史上上游接口出问题时的请求成功率的均值,如果下游接口对上游接口的请求成功率没有历史数据,则视历史上上游接口出问题时的请求成功率的均值为95%,根据下游接口以及上游接口的性能对所述均值进行微调,得到第二预设阈值。
S13、确定所述上游接口为待熔断接口。
具体地,S13通过将与所述上游接口对应的供应商的ID存储于数据库中确定所述上游接口为待熔断接口。
S14、判断所述下游接口将要请求的目标上游接口是否为所述待熔断接口,若是,则执行S15。
具体地,S14通过判断与目标上游接口对应的供应商的ID是否存在于所述数据库中确定所述下游接口将要请求的目标上游接口是否为所述待熔断接口,若存在,则所述下游接口将要请求的目标上游接口为所述待熔断接口。
S15、停止所述下游接口对所述目标上游接口的请求。
本实施例提供了一种接口熔断方法,通过将下游接口对上游接口的总请求量、请求成功率与预设阈值进行比较,判断上游接口是否出现问题,将出现问题的上游接口确定为待熔断接口,在下游接口对目标上游接口发出请求前,判断目标上游接口是否为待熔断接口,若是,则停止下游接口对目标上游接口的请求,以准确实现下游接口与出现问题的上游接口之间的熔断,避免了影响下游接口对正常的上游接口的请求;通过参考历史数据获取预设阈值,对请求量统计数据进行综合考量,避免了对请求量很低的应用场景的误判,提高了接口熔断的准确率。
实施例2
本实施例提供了一种接口熔断系统,如图2所示,该接口熔断系统包括:收集模块1、第一判断模块2、第二判断模块3、停用模块4。
收集模块1,用于收集下游接口对上游接口的请求量统计数据。
第一判断模块2,用于判断所述请求量统计数据是否合法,若不合法,则确定所述上游接口为待熔断接口。
第二判断模块3,用于判断所述下游接口将要请求的目标上游接口是否为所述待熔断接口,若是,则调用停用模块4,所述停用模块4用于停止所述下游接口对所述目标上游接口的请求,以实现所述下游接口与所述目标上游接口之间的熔断。
具体地,如图3所示,所述第一判断模块2包括:
请求成功率计算单元21,用于根据所述总请求量、请求成功的量计算请求成功率。
总请求量判断单元22,用于判断所述总请求量是否超过第一预设阈值,若超过,则调用请求成功率判断单元23,所述第二判断单元用于判断所述请求成功率是否超过第二预设阈值,若超过,则确定所述总请求量、请求成功的量不合法,并调用存储单元24,所述存储单元用于将与所述上游接口对应的供应商的ID存储于数据库中。
具体地,不同的所述上游接口与不同的所述第一预设阈值、第二预设阈值相对应。
具体地,在本实施例中,所述第一预设阈值可以通过如下方式获取:
获取下游接口对上游接口在最近一周去掉凌晨0点到早上8点的低峰期后每分钟的请求量,当所述请求量中的95%都大于某个值,则取这个值的最大值为第一预设阈值。
具体地,在本实施例中,所述第二预设阈值可以通过如下方式获取:
获取历史上上游接口出问题时的请求成功率的均值,如果下游接口对上游接口的请求成功率没有历史数据,则视历史上上游接口出问题时的请求成功率的均值为95%,根据下游接口以及上游接口的性能对所述均值进行微调,得到第二预设阈值。
具体地,所述第二判断模块3包括:
待熔断接口判断单元,用于判断与所述目标上游接口对应的供应商的ID是否存在于所述数据库中,若存在,则确定所述目标上游接口为所述待熔断接口。
本实施例提供了一种接口熔断系统,通过将下游接口对上游接口的总请求量、请求成功率与预设阈值进行比较,判断上游接口是否出现问题,将出现问题的上游接口确定为待熔断接口,在下游接口对目标上游接口发出请求前,判断目标上游接口是否为待熔断接口,若是,则停止下游接口对目标上游接口的请求,以准确实现下游接口与出现问题的上游接口之间的熔断,避免了影响下游接口对正常的上游接口的请求;通过参考历史数据获取预设阈值,对请求量统计数据进行综合考量,避免了对请求量很低的应用场景的误判,提高了接口熔断的准确率。
实施例3
图4本发明实施例3提供的一种电子设备的结构示意图。包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述实施例1的接口熔断方法。图4示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
总线33包括数据总线、地址总线和控制总线。
存储器32可以包括易失性存储器,例如随机存取存储器(RAM)321和/或高速缓存存储器322,还可以进一步包括只读存储器(ROM)323。
存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1的接口熔断方法。
电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例4
本发明还提供一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述实施例1的接口熔断方法。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1的接口熔断方法。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

Claims (10)

1.一种接口熔断方法,其特征在于,所述接口熔断方法包括:
收集下游接口对上游接口的请求量统计数据;
判断所述请求量统计数据是否合法,若不合法,则确定所述上游接口为待熔断接口;
判断所述下游接口将要请求的目标上游接口是否为所述待熔断接口,若是,则停止所述下游接口对所述目标上游接口的请求,以实现所述下游接口与所述目标上游接口之间的熔断。
2.如权利要求1所述的接口熔断方法,其特征在于,所述请求量统计数据包括总请求量、请求成功的量;
所述判断所述请求量统计数据是否合法,若不合法,则确定所述上游接口为待熔断接口的具体步骤包括:
根据所述总请求量、请求成功的量计算请求成功率;
判断所述总请求量是否超过第一预设阈值,若超过,则判断所述请求成功率是否超过第二预设阈值,若超过,则确定所述总请求量、请求成功的量不合法,并将与所述上游接口对应的供应商的ID存储于数据库中。
3.如权利要求2所述的接口熔断方法,其特征在于,所述判断所述下游接口将要请求的目标上游接口是否为所述待熔断接口的具体步骤包括:
判断与所述目标上游接口对应的供应商的ID是否存在于所述数据库中,若存在,则确定所述目标上游接口为所述待熔断接口。
4.如权利要求2所述的接口熔断方法,其特征在于,不同的所述上游接口与不同的所述第一预设阈值、第二预设阈值相对应。
5.一种接口熔断系统,其特征在于,所述接口熔断系统包括:
收集模块,用于收集下游接口对上游接口的请求量统计数据;
第一判断模块,用于判断所述请求量统计数据是否合法,若不合法,则确定所述上游接口为待熔断接口;
第二判断模块,用于判断所述下游接口将要请求的目标上游接口是否为所述待熔断接口,若是,则调用停用模块,所述停用模块用于停止所述下游接口对所述目标上游接口的请求,以实现所述下游接口与所述目标上游接口之间的熔断。
6.如权利要求5所述的接口熔断系统,其特征在于,所述请求量统计数据包括总请求量、请求成功的量;
所述第一判断模块包括:
请求成功率计算单元,用于根据所述总请求量、请求成功的量计算请求成功率;
总请求量判断单元,用于判断所述总请求量是否超过第一预设阈值,若超过,则调用请求成功率判断单元,所述第二判断单元用于判断所述请求成功率是否超过第二预设阈值,若超过,则确定所述总请求量、请求成功的量不合法,并调用存储单元,所述存储单元用于将与所述上游接口对应的供应商的ID存储于数据库中。
7.如权利要求6所述的接口熔断系统,其特征在于,所述第二判断模块包括:
待熔断接口判断单元,用于判断与所述目标上游接口对应的供应商的ID是否存在于所述数据库中,若存在,则确定所述目标上游接口为所述待熔断接口。
8.如权利要求6所述的接口熔断系统,其特征在于,不同的所述上游接口与不同的所述第一预设阈值、第二预设阈值相对应。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述的接口熔断方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的接口熔断方法。
CN202210014463.8A 2022-01-05 2022-01-05 接口熔断方法及系统、电子设备及存储介质 Pending CN114357048A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210014463.8A CN114357048A (zh) 2022-01-05 2022-01-05 接口熔断方法及系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210014463.8A CN114357048A (zh) 2022-01-05 2022-01-05 接口熔断方法及系统、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114357048A true CN114357048A (zh) 2022-04-15

Family

ID=81107109

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210014463.8A Pending CN114357048A (zh) 2022-01-05 2022-01-05 接口熔断方法及系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114357048A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060288098A1 (en) * 2005-06-20 2006-12-21 Singh Ajai K Peripheral interface alert message for downstream device
US20080115230A1 (en) * 2006-11-09 2008-05-15 International Business Machines Corporation Method and system for securing personal computing devices from unauthorized data copying and removal
CN107659431A (zh) * 2017-08-15 2018-02-02 北京趣拿软件科技有限公司 接口处理方法、装置、存储介质和处理器
CN109766210A (zh) * 2019-01-17 2019-05-17 多点生活(成都)科技有限公司 服务熔断控制方法、服务熔断控制装置和服务器集群
US20200012643A1 (en) * 2017-07-25 2020-01-09 General Electric Company Method for managing and executing decoders and transformations using linked data and a service layer
CN110737567A (zh) * 2019-10-17 2020-01-31 吉旗(成都)科技有限公司 基于缓存的服务端接口熔断方法及装置
CN112269674A (zh) * 2020-11-19 2021-01-26 四川长虹电器股份有限公司 服务接口的异常熔断和自我恢复的方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060288098A1 (en) * 2005-06-20 2006-12-21 Singh Ajai K Peripheral interface alert message for downstream device
US20080115230A1 (en) * 2006-11-09 2008-05-15 International Business Machines Corporation Method and system for securing personal computing devices from unauthorized data copying and removal
US20200012643A1 (en) * 2017-07-25 2020-01-09 General Electric Company Method for managing and executing decoders and transformations using linked data and a service layer
CN107659431A (zh) * 2017-08-15 2018-02-02 北京趣拿软件科技有限公司 接口处理方法、装置、存储介质和处理器
CN109766210A (zh) * 2019-01-17 2019-05-17 多点生活(成都)科技有限公司 服务熔断控制方法、服务熔断控制装置和服务器集群
CN110737567A (zh) * 2019-10-17 2020-01-31 吉旗(成都)科技有限公司 基于缓存的服务端接口熔断方法及装置
CN112269674A (zh) * 2020-11-19 2021-01-26 四川长虹电器股份有限公司 服务接口的异常熔断和自我恢复的方法

Similar Documents

Publication Publication Date Title
US10048996B1 (en) Predicting infrastructure failures in a data center for hosted service mitigation actions
CN110516928B (zh) 一种业务专线的决策方法、装置、设备和计算机可读介质
US6986076B1 (en) Proactive method for ensuring availability in a clustered system
US8161058B2 (en) Performance degradation root cause prediction in a distributed computing system
US7925856B1 (en) Method and apparatus for maintaining an amount of reserve space using virtual placeholders
US8122158B1 (en) Method for improving I/O performance of host systems by applying future time interval policies when using external storage systems
CN111913667B (zh) 一种基于Ceph的OSD阻塞检测方法、系统、终端及存储介质
US11210001B2 (en) Storage device parameter monitoring for load balancing
US8381039B1 (en) Storage of mass data for monitoring
US8566637B1 (en) Analyzing drive errors in data storage systems
CN110750213A (zh) 一种硬盘管理方法及装置
CN111880906A (zh) 虚拟机高可用性管理方法、系统以及存储介质
EP3956771B1 (en) Timeout mode for storage devices
US20200057714A1 (en) Testing data changes in production systems
US10642585B1 (en) Enhancing API service schemes
US7664797B1 (en) Method and apparatus for using statistical process control within a storage management system
CN110336884B (zh) 服务器集群更新方法和装置
CN114357048A (zh) 接口熔断方法及系统、电子设备及存储介质
CN113098715A (zh) 一种信息处理方法、装置、系统、介质和计算设备
US20240095019A1 (en) Out-of-band updating method and system of expander
CN115470059A (zh) 一种磁盘检测方法、装置、设备及存储介质
US6718282B1 (en) Fault tolerant client-server environment
US11989105B2 (en) Storage system and control method for adjusting timeout based on network conditions
CN110955647A (zh) 数据库辅助方法、装置、计算机设备和存储介质
US7668952B2 (en) Apparatus, system, and method for controlling a processing system

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