掌桥专利:专业的专利平台
掌桥专利
首页

接口服务的调用方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 12:18:04


接口服务的调用方法、装置、电子设备及存储介质

技术领域

本申请涉及互联网领域,具体而言,涉及一种接口服务的调用方法、 装置、电子设备及存储介质。

背景技术

当接口服务不可用或响应时间很长时,需对相应的接口服务调用请求 进行降级处理,避免大量请求阻塞在服务器中从而产生宕机情况。

现有技术中通过Sentinel提供的Dubbo-sentinel-support组件定义接口服 务为被保护资源,用户在应用程序初始化时声明需保护的接口服务及对应 的降级规则,在该资源每次被调用时均会自动创建一个Entry对象,Entry 创建时会同时创建一系列功能插槽。如:ClusterBuilderSlot用于存储资源的 响应时间、异常数、成功数、调用量及线程数等统计信息;StatisticSlot以 滑动窗口数据结构LeapArray实现调用数据的实时统计,但在现有技术中对 接口服务调用请求的降级策略是通过接口标识为所述接口服务调用请求匹配不同的降级策略,服务降级仅支持到接口粒度,降级方式单一。

发明内容

本申请实施方式的目的在于提供一种接口服务的调用方法,通过接口 服务调用请求中携带的接口标识和输入参数去适配不同的降级策略。

本申请实施方式第一方面提供了一种接口服务的调用方法,所述方法 包括:

响应接口服务调用请求,根据所述调用请求携带的接口标识和输入参 数,确定所述接口标识和输入参数对应配置的降级策略;

根据所述降级策略,确定所述接口标识对应的所述接口服务是否异常;

根据所述接口标识对应的所述接口服务是否异常,执行所述降级策略 指示的业务操作。

在一实施方式中,在所述确定所述接口标识和输入参数对应配置的降 级策略之前,所述方法还包括:

接收后台推送的不同所述接口标识和输入参数对应配置的所述降级策 略。

在一实施方式中,所述接收后台推送的不同所述接口标识和输入参数 对应配置的所述降级策略之后,所述方法还包括:

将所述不同接口标识和输入参数对应配置的所述降级策略写入规则管 理器中。

在一实施方式中,所述根据所述降级策略,确定所述接口标识对应的 所述接口服务是否异常,包括:

根据所述接口服务每次进行调用时的响应时间及所述接口服务的调用 次数,计算所述接口服务的平均响应时间;

当所述接口服务的所述平均响应时间大于所设定的阈值时,所述接口 服务异常。

在一实施方式中,所述根据所述降级策略,确定所述接口标识对应的 所述接口服务是否异常,还包括:

根据所述接口服务进行调用时的异常次数与所述接口服务调用的总次 数,计算所述接口服务的异常比例。

当所述接口服务的异常比例大于所设定的阈值时,所述接口服务异常。

在一实施方式中,述根据所述接口标识对应的接口服务是否异常,执 行所述降级策略指示的业务操作,包括:

当所述接口服务异常时,指定时间内拒绝访问所述接口服务,并显示 异常信息或返回固定结果。

在一实施方式中,所述根据所述接口标识对应的接口服务是否异常, 执行所述降级策略指示的业务操作,还包括:

当所述接口服务未出现异常时,控制所述接口服务响应所述调用请求。

本申请实施方式第二方面提供一种接口服务的调用装置,包括:

策略匹配模块,用于响应接口服务调用请求,根据所述调用请求携带 的接口标识和输入参数,确定所述接口标识和输入参数对应配置的降级策 略;

策略判断模块,根据所述降级策略,确定所述接口标识对应的所述接 口服务是否异常;

策略执行模块,根据所述接口标识对应的所述接口服务是否异常,执 行所述降级策略指示的业务操作。

本申请实施方式第三方面提供一种电子设备,所述电子设备包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行本申请实施方式第一方面及其任一项 实施方式的接口服务的调用方法。

本申请实施方式第四方面提供一种计算机可读存储介质,所述存储介 质存储有计算机程序,所述计算机程序可由处理器执行以完成上述所述的 接口服务的调用方法。

本申请上述实施方式提供的技术方案,可通过接口服务调用请求中携 带的接口标识及输入参数为接口服务的调用请求适配不同的降级策略,根 据所述降级策略,确定所述接口标识对应的接口服务是否发生异常,在接 口服务发生异常时能够及时对所述接口服务调用请求进行降级,采用上述 方式对接口服务调用请求进行降级时能够从多个纬度为所述接口服务调用 请求适配降级策略。

当接口服务不可用或响应时间很长时,会导致用户访问时无响应或长 时间处于等待状态,从而导致大量请求阻塞在服务器中从而产生宕机情况。 因此通过为接口服务配置降级策略的方式可使得不可用接口服务的调用请 求快速失败,避免大量请求阻塞在服务器中,使得主流程序能够正常运行。

附图说明

为了更清楚地说明本申请实施方式的技术方案,下面将对本申请实施 方式中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本 申请的某些实施方式,因此不应被看作是对范围的限定,对于本领域普通 技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得 其他相关的附图。

图1为本申请一实施例提供的接口服务调用方法的应用场景示意图;

图2为本申请一实施例提供的电子设备的结构示意图;

图3为本申请一实施例提供的接口服务的调用方法的流程示意图;

图4为图3对应实施例中步骤S310的细节流程图;

图5为本申请一实施例示出的接口服务的调用装置的框图。

具体实施方式

下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方 案进行描述。

相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在 一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。 同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能 理解为指示或暗示相对重要性。

图1为本申请一实施例提供的接口服务的调用方法的应用场景示意图。 如图1所述,该方法可以包括服务器110、后台120及客户端130。服务器 110及后台130可以为台式电脑等,客户端130可以是智能手机、笔记本电 脑或台式电脑等。

服务器130可以采用本申请实施例提供的方法,进行匹配降级策略, 并确定接口服务是否异常及执行相应的业务操作等。

图2为本申请一实施例提供的电子设备的结构示意图。该电子设备200 可以作为上述服务器110,该电子设备200可以用于执行本申请实施例提供 的接口服务的调用方法。如图2所示,该电子设备200包括:一个或多个 处理器202、一个或多个存储处理器可执行指令的存储器204。其中,所述 处理器202被配置为执行本申请下述实施例提供的接口服务的调用方法。

所述处理器202可以是包含中央处理单元(CPU)、图像处理单元(GPU) 或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备, 可以对所述电子设备200中的其它组件的数据进行处理,还可以控制所述 电子设备200中的其它组件以执行期望的功能。

所述存储器204可以包括一个或多个计算机程序产品,所述计算机程 序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或 非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM) 和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存 储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个 或多个计算机程序指令,处理器202可以运行所述程序指令,以实现下文所述的接口服务的调用方法。在所述计算机可读存储介质中还可以存储各 种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。

在一实施例中,图2所示电子设备200还可以包括输入装置206、输出 装置208以及数据采集装置210,这些组件通过总线系统212和/或其它形 式的连接机构(未示出)互连。应当注意,图2所示的电子设备200的组件和 结构只是示例性的,而非限制性的,根据需要,所述电子设备200也可以 具有其他组件和结构。

所述输入装置206可以是用户用来输入指令的装置,并且可以包括键 盘、鼠标、麦克风和触摸屏等中的一个或多个。所述输出装置208可以向 外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、 扬声器等中的一个或多个。所述数据采集装置210可以采集对象的图像, 并且将所采集的图像存储在所述存储器204中以供其它组件使用。示例性 地,该数据采集装置210可以为摄像头。

在一实施例中,用于实现本申请实施例的接口服务的调用方法的示例 电子设备200中的各器件可以集成设置,也可以分散设置,诸如将处理器 202、存储器204、输入装置206和输出装置208集成设置于一体,而将数 据采集装置210分离设置。

在一实施例中,用于实现本申请实施例的接口服务的调用方法的示例 电子设备200可以被实现为诸如计算机及服务器等智能设备。

图3为本申请一实施例提供的接口服务的调用方法的流程示意图。该 方法可由服务器执行,如图3所示,该方法包括以下步骤S310-步骤S330。

步骤S310:响应接口服务的调用请求,根据所述调用请求携带的接口 标识和输入参数,确定所述接口标识和输入参数对应配置的降级策略。

于一实施方式中,接口服务为给其他应用系统提供访问调用的接口, 接口服务可以有多个。

当用户在客户端发起接口服务的调用请求时,服务器响应所述接口服 务的调用请求,并解析所述接口服务的调用请求得到所述调用请求中携带 的接口标识和输入参数,确定所述接口标识和输入参数对应配置的降级策 略。

接口标识用于区分不同的接口服务,输入参数用于指示接口服务所调 取的数据。

举例来说,用户在客户端请求查询某个医院的所有医生的排班信息, 则此时用户请求调用的为提供医生排班信息的接口服务,当用户在客户端 输入想要查询的医生排班信息表的医院ID时,如:用户输入“第三医院”, 则服务器响应“第三医院医生排班信息”的调用请求,并解析到上述调用 请求中携带的接口标识为“医生排班信息”及输入参数为“第三医院”, 则此时服务器根据上述接口标识“医生排班信息”及输入参数“第三医院” 确定提供“第三医院医生排班信息”的接口服务对应配置的降级策略。

于一实施方式中,用户在客户端发起接口服务的调用请求时,所述接 口服务的调用请求会先进入到服务器的拦截器中,通过所述调用请求中携 带的接口标识和输入参数,在规则管理器中查找相应的降级策略。

举例来说,用户请求查询“第三医院医生排班信息”,则所述查询“第 三医院医生排班信息”的请求会进入到服务器的拦截器中,通过所述接口 标识“医生排班信息”及输入参数“第三医院”确定所述提供“第三医院 医生排班信息”的接口服务对应配置的降级策略。

举例来说,当用户请求查询某品牌的儿童上衣库存时,则此时用户请 求调用的为提供儿童上衣库存的接口服务,当用户输入想要查询的儿童上 衣库存的品牌名时,用户输入的品牌名为“斑马牌”,则服务器响应“斑 马牌儿童上衣库存信息”的调用请求,并解析到上述调用请求中携带的接 口标识为“儿童上衣库存信息”及输入参数为“斑马牌”,则此时服务器 根据上述接口标识“儿童上衣库存信息”及输入参数“斑马牌”可确定提 供“斑马牌儿童上衣库存信息”的接口服务对应配置的降级策略。

于一实施方式中,用户可在后台配置需保护的接口服务,为需保护的 接口服务配置相应的降级策略。当用户请求调用的接口服务为需保护的接 口服务时,执行上述步骤S310;当用户请求调用的接口服务为不需要保护 的接口服务时,此时接口服务可正常访问。

于一实施方式中,根据所述调用请求中携带的接口标识和输入参数, 并未匹配到所述接口服务对应配置的降级策略时,则此时用户请求调用的 接口服务为不需要保护的接口服务,则此时接口服务可正常访问。

于一实施方式中,用户通过后台设置需保护的接口服务的目的是节约 服务器的运行时间,若所有接口服务均设置为需保护的接口服务时,则用 户需在后台为所有接口服务配置相应的降级策略,客户端在请求调用相应 的接口服务时,均需执行上述步骤,这大大增加了服务器的运行时间;但 当服务器的运行性能较高时,也可将所有接口服务均设置为需保护的接口 服务。

本申请实施例针对不同的输入参数具有不同的降级策略,相比现有技 术一个接口服务只能有一种降级策略,本申请实现了降级策略的多样性, 从而可以适配多种不同的应用场景。

步骤S320:根据所述降级策略,确定所述接口标识对应的所述接口服 务是否异常。

根据所述调用请求中携带的接口标识和输入参数,可确定所述接口服 务对应配置的降级策略,根据所述降级策略,可确定所述接口标识对应的 接口服务是否异常。

举例来说,当用户请求查询“第三医院医生排班信息”时,服务器根 据接口标识“医生排班信息”及输入参数“第三医院”确定所述提供“第 三医院医生排班信息”的接口服务对应配置的降级策略,根据所述降级策 略,可确定所述提供“第三医院医生排班信息”的接口服务是否发生异常。

其中,降级策略作为接口服务是否异常的衡量标准,接口服务异常是 指用户调用该接口服务时无响应或长时间处于等待状态。

于一实施方式中,降级策略可以是通过计算所述接口服务调用请求的 平均响应时间来确定所述接口标识对应的所述接口服务是否异常。

所述平均响应时间可根据所述接口服务每次进行调用时的响应时间及 所述接口服务的调用次数进行计算,即所述服务器会统计所述接口服务每 次进行调用时的响应时间及总调用次数,并将上述响应时间进行求和,得 到所述接口服务进行调用时的总响应时间,并将上述接口服务进行调用时 的总响应时间与所述接口服务的调用次数进行比值运算,得到所述接口服 务在进行调用时的平均响应时间。

当所述接口服务的平均响应时间大于所设定的平均响应时间阈值时, 则所述接口服务发生异常;当所述接口服务的平均响应时间小于所设定的 阈值时,则所述接口服务未发生异常,所述平均响应时间对应的阈值存储 在所述服务器中。

举例来说:当用户请求查询“斑马牌儿童上衣库存信息”时,且提供 “斑马牌儿童上衣库存信息”的接口服务所对应的降级策略为通过平均响 应时间确定所述接口服务是否异常时,服务器会统计提供“斑马牌儿童上 衣库存信息”的接口服务每次进行调用时的响应时间及总调用次数,当提 供“斑马牌儿童上衣库存信息”的接口服务进行调用时的响应时间分别为 2s、3s、2s及3s时,则可得到所述提供“斑马牌儿童上衣库存信息”的接 口服务总响应时间为10s,调用次数为4次,则所述提供“斑马牌儿童上衣 库存信息”的接口服务的平均响应时间为2.5s。

当所设定的平均响应时间阈值为2s时,则所述提供“斑马牌儿童上衣 库存信息”的接口服务异常;当所设定的平均响应时间阈值为3s时,则所 述“斑马牌儿童上衣库存信息”的接口服务未发生异常。

于一实施方式中,当所述接口服务调用请求的平均响应时间为0时, 则此时平均响应时间为当前时间与第一次发出接口服务调用请求的时间差。

举例来说,用户发出“第三医院医生的排班信息”的调用请求后,服 务器长时间内未对该请求进行响应,若此时为用户首次对提供“第三医院 医生的排班信息”的接口服务进行调用时,则此时的平均响应时间为0,若 当前时间与发出接口服务调用请求的时间差为10分钟,则此时平均响应时 间为10分钟,在此基础上,将所述平均响应时间与所述平均响应时间阈值 进行比较进而确定所述接口服务是否异常。

用户发出“第三医院医生排班信息”的调用请求后,服务器长时间未 对该请求进行响应,此时用户又多次发出“第三医院医生的排班信息”的 调用请求,但服务器均未对该请求进行响应,若此时当前时间与第一次发 出接口服务调用请求的时间差为15分钟,则此时平均响应时间为15分钟, 在此基础上,将所述平均响应时间与所述平均响应时间阈值进行比较进而 确定所述接口服务是否异常。

于另一实施方式中,降级策略可以是通过计算所述接口服务调用请求 的异常比例来确定所述接口标识对应的所述接口服务是否异常。

所述异常比例可根据所述接口服务进行调用时的异常次数及所述接口 服务的总调用次数进行计算,即所述服务器会统计所述接口服务进行调用 时的异常次数及总调用次数,并将上述接口服务进行调用时的异常次数与 所述接口服务的总调用次数进行比值运算,得到所述接口服务在进行调用 时的异常比例。

当所述接口服务在进行调用时的异常比例大于所设定的异常比例阈值 时,则所述接口服务发生异常;当所述接口服务在进行调用时的异常比例 小于所设定的阈值时,则所述接口服务未发生异常,所述异常比例阈值存 储在所述服务器中。

举例来说,当用户请求查询“斑马牌儿童上衣库存信息”时,且所述 提供“斑马牌儿童上衣库存信息”的接口服务所对应的降级策略为通过异 常比例确定所述接口服务是否异常时,服务器会统计提供“斑马牌儿童上 衣库存信息”的接口服务进行调用时发生异常的次数及总调用次数,当所 述提供“斑马牌儿童上衣库存信息”的接口服务进行调用时发生异常的次 数为2次,总调用次数为10次,则所述提供斑马牌儿童上衣库存信息”的 接口服务在进行调用时的异常比例为0.2。

当所设定的异常比例阈值为0.1时,则所述提供“斑马牌儿童上衣库存 信息”的接口服务异常;当所设定的异常比例阈值为0.3时,所述提供“斑 马牌儿童上衣库存信息”的接口服务未发生异常。

步骤S330:根据所述接口标识对应的所述接口服务是否异常,执行所 述降级策略指示的业务操作。

降级策略包括降级规则及回退策略,所述降级规则可用于判断所述接 口标识对应的所述接口服务是否异常,所述回退策略可用于当所述接口服 务异常时指示返回固定结果的具体内容。

于一实施方式中,根据所述降级规则,确定所述接口标识对应的所述 接口服务未发生异常时,则响应所述接口服务的调用请求。

举例来说,当用户请求查询“斑马牌儿童上衣库存信息”时,且根据 所述降级策略确定所述提供“斑马牌儿童上衣库存信息”的接口服务未发 生异常时,则服务器响应所述“斑马牌儿童上衣库存信息”的调用请求。

在一实施例中,当所述接口标识对应的所述接口服务发生异常时,指 定时间内拒绝访问所述接口服务,执行回退策略显示异常信息或返回固定 结果。

于一实施方式中,根据所述降级规则,确定所述接口标识对应的所述 接口服务未发生异常,则在指定时间内拒绝访问所述接口服务,并显示异 常信息或返回固定结果。

于一实施方式中,所述指定时间可以为5s。

举例来说,当用户请求查询“斑马牌儿童上衣库存信息”时,且根据 所述降级策略确定所述提供“斑马牌儿童上衣库存信息”的接口服务发生 异常时,则在指定时间内拒绝所述“斑马牌儿童上衣库存信息”的调用请 求,并显示“Error”等异常信息或向客户端返回“ACCESS_999999”等固 定结果,便于用户及时对异常情况作出后续处理。

当部分接口服务不可用时,返回固定结果可以使主流程继续进行,比 如商品的评论列表查询接口服务此时已宕机,但商品查询和下单服务是正 常的,可以返回商品评论列表为空,用户依然可以正常访问商品信息进行 下单操作,而不会因为评论列表接口服务不可用而导致商品下单服务不可 用。

在一实施例中,如图4所示,上述步骤S310之前,本申请实施例提供 的方法还可以包括:

步骤S410:接收后台推送的不同所述接口标识和输入参数对应配置的 所述降级策略。

用户可在后台配置所述不同接口标识和输入参数对应的降级策略,并 将所述相应的降级策略推送给服务器,所述降级策略与接口标识及输入参 数为一一对应的关系。

举例来说,当用户请求查询“第三医院医生排班信息”时,服务器会 预先接收后台推送的与所述接口标识“医生排班信息”及输入参数“第三 医院”对应配置的降级策略。

于一实施方式中,用户可在后台配置需保护的接口服务,为需保护的 接口服务配置相应的降级策略,且在程序运行的过程中可对所述被保护的 接口服务及其降级策略进行动态调整,并将相应的配置信息通过后台推送 给服务器。

步骤S420:将所述不同接口标识和输入参数对应配置的所述降级策略 写入规则管理器中。

当服务器收到后台推送的不同接口标识和输入参数对应配置的降级策 略时,会将相应的降级策略写入到服务器的规则管理器中。

举例来说,当用户请求查询“第三医院医生排班信息”时,服务器会 将后台推送的所述接口标识“医生排班信息”及输入参数“第三医院”对 应配置的降级策略写入到服务器的规则管理器中。

图5为本申请一实施例提供的接口服务的调用装置的框图。如图5所 示,该装置包括策略匹配模块610、策略判断模块620以及策略执行模块 630。

策略匹配模块610,响应接口服务调用请求,根据所述调用请求携带的 接口标识和输入参数,确定所述接口标识和输入参数对应配置的降级策略。

策略判断模块620,根据所述降级策略,确定所述接口标识对应的所述 接口服务是否异常。

策略执行模块630,根据所述接口标识对应的所述接口服务是否异常, 执行所述降级策略指示的业务操作。

上述装置中各个模块的功能和作用的实现过程具体详见上述接口服务 的调用方法中对应步骤的实现过程,在此不再赘述。

在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过 其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图 中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机 程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图 中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段 或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。 在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图 中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行, 它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的 是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合, 可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以 用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个 独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集 成形成一个独立的部分。

功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时, 可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技 术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可 以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中, 包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或 者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的 存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、 随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种 可以存储程序代码的介质。

相关技术
  • 接口服务的调用方法、装置、电子设备及存储介质
  • 电子设备中的器件调用方法、装置、电子设备及存储介质
技术分类

06120113240889