业务服务的状态检测方法及装置、电子设备、存储介质与流程

文档序号:21778903发布日期:2020-08-07 19:52阅读:251来源:国知局
业务服务的状态检测方法及装置、电子设备、存储介质与流程

本说明书涉及服务检测技术领域,尤其涉及业务服务的状态检测方法及装置、电子设备、存储介质。



背景技术:

api(应用程序接口)网关是整个业务服务的唯一入口,因此其地位极其重要。随着技术的发展,api网关开始由前期的快速流量转发慢慢转向于业务服务精细化管理,包括业务服务的全生命周期管理及可用性检测,当检测到业务服务不可用时需要及时告警,以便于测试开发人员收到告警后及时修复业务服务。在业务服务可用性检测过程中,准确性和及时性是至关重要的。

当前api网关对业务服务的状态检测一般有两种方案:探测服务端口的可达性、探测固定的服务地址。上述两种方案的探测结果都不能真实的反映业务服务的可用性,不能准确确定业务服务的状态,且都需要用户手动配置检测规则,过程较繁琐。



技术实现要素:

为克服相关技术中存在的问题,本说明书提供了业务服务的状态检测方法及装置、电子设备、存储介质。

根据本说明书实施例的第一方面,提供一种业务服务的状态检测方法,应用于api网关,所述状态检测方法包括:

获取针对目标业务服务的测试请求参数,所述测试请求参数用于触发调用所述目标业务服务以对所述目标业务服务进行功能测试;

根据所述测试请求参数生成针对目标业务服务的状态检测规则;

响应于针对目标业务服务的状态检测请求,根据所述状态检测规则调用所述目标业务服务,并根据调用结果确定所述目标业务服务所处的状态。

可选地,根据所述状态检测规则调用所述目标业务服务,并根据调用结果确定所述目标业务服务所处的状态,包括:

若所述调用结果为接收到所述目标业务服务返回的应答消息,且所述应答消息的格式与所述目标业务服务对应的标准应答格式相同,则确定所述目标业务服务为可用状态;

若所述调用结果为未接收到所述应答消息或所述应答消息的格式与所述标准应答格式不相同,则确定所述目标业务服务为不可用状态。

可选地,所述状态检测方法还包括:

若业务请求结果为接收到所述目标业务服务返回的应答消息,且所述应答消息的格式与所述目标业务服务对应的标准应答格式相同,则确定所述目标业务服务为可用状态,所述业务请求结果为根据用户发送的业务处理请求调用所述目标业务服务的结果;

若所述业务请求结果为未接收到所述应答消息或所述应答消息的格式与所述标准应答格式不相同,则确定所述目标业务服务为不可用状态。

可选地,根据所述测试请求参数生成针对目标业务服务的状态检测规则,还包括:

获取所述功能测试的测试结果;

在所述测试结果为接收到所述目标业务服务返回的应答消息,且所述应答消息的格式与所述目标业务服务对应的标准应答格式相同的情况下,根据所述测试请求参数生成针对目标业务服务的状态检测规则。

可选地,所述状态检测方法还包括:

在所述测试结果为接收到所述目标业务服务返回的应答消息,且所述应答消息的格式与所述目标业务服务对应的标准应答格式相同的情况下,发布所述目标业务服务。

可选地,所述状态检测方法还包括:

获取所述目标业务服务在api网关上注册时生成的注册文档,所述注册文档定义有所述目标业务服务的标准应答格式。

根据本说明书实施例的第二方面,提供一种业务服务的状态检测装置,应用于api网关,所述状态检测装置包括:

参数获取模块,用于获取针对目标业务服务的测试请求参数,所述测试请求参数用于触发调用所述目标业务服务以对所述目标业务服务进行功能测试;

生成模块,用于根据所述测试请求参数生成针对目标业务服务的状态检测规则;

状态检测模块,用于响应于针对目标业务服务的状态检测请求,根据所述状态检测规则调用所述目标业务服务,并根据调用结果确定所述目标业务服务所处的状态。

可选地,在根据所述状态检测规则调用所述目标业务服务,并根据调用结果确定所述目标业务服务所处的状态时,所述状态检测模块用于:

若所述调用结果为接收到所述目标业务服务返回的应答消息,且所述应答消息的格式与所述目标业务服务对应的标准应答格式相同,则确定所述目标业务服务为可用状态;

若所述调用结果为未接收到所述应答消息或所述应答消息的格式与所述标准应答格式不相同,则确定所述目标业务服务为不可用状态。

可选地,所述状态检测模块还用于:

若业务请求结果为接收到所述目标业务服务返回的应答消息,且所述应答消息的格式与所述目标业务服务对应的标准应答格式相同,则确定所述目标业务服务为可用状态,所述业务请求结果为根据用户发送的业务处理请求调用所述目标业务服务的结果;

若所述业务请求结果为未接收到所述应答消息或所述应答消息的格式与所述标准应答格式不相同,则确定所述目标业务服务为不可用状态。

可选地,所述生成模块具体用于:

获取所述功能测试的测试结果;

在所述测试结果为接收到所述目标业务服务返回的应答消息,且所述应答消息的格式与所述目标业务服务对应的标准应答格式相同的情况下,根据所述测试请求参数生成针对目标业务服务的状态检测规则。

可选地,所述状态检测装置还包括:

发布模块,用于在所述测试结果为接收到所述目标业务服务返回的应答消息,且所述应答消息的格式与所述目标业务服务对应的标准应答格式相同的情况下,发布所述目标业务服务。

可选地,所述状态检测装置还包括:

文档获取模块,用于获取所述目标业务服务在api网关上注册时生成的注册文档,所述注册文档定义有所述目标业务服务的标准应答格式。

根据本说明书实施例的第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的业务服务的状态检测方法。

根据本说明书实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的业务服务的状态检测方法的步骤。

本说明书的实施例提供的技术方案可以包括以下有益效果:

本说明书实施例中,借助测试业务服务时所采用的测试请求参数,生成用于对业务服务进行状态检测的状态检测规则,从而无需手动配置检测规则,且根据状态检测规则模拟真实的业务服务调用以对业务服务进行状态检测,提高了状态检测的及时性和准确性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。

图1是本说明书根据一示例性实施例示出的一种业务服务的状态检测方法的流程图。

图2是本说明书根据一示例性实施例示出的另一种业务服务的状态检测方法的流程图。

图3是本说明书根据一示例性实施例示出的对业务服务进行功能测试的流程图。

图4是本说明书根据一示例性实施例示出的一种业务服务的状态检测装置的模块示意图。

图5是本发明一示例实施例示出的一种电子设备的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施例并不代表与本说明书相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

api(应用程序接口)网关是整个业务服务的唯一入口,因此其地位极其重要。随着技术的发展,api网关开始由前期的快速流量转发慢慢转向于业务服务精细化管理,包括业务服务的全生命周期管理及可用性检测,当检测到业务服务不可用时需要及时告警,以便于测试开发人员收到告警后及时修复业务服务。在业务服务可用性检测过程中,准确性和及时性是至关重要的。当前api网关对业务服务的状态检测一般有两种方案:

方案一:探测服务端口的可达性。通过对服务端口不断的发送探测报文来检测服务的可达性,然而端口可达很多时候不代表业务服务可用可达,比如业务层发生了死锁,业务服务处于不可用状态,但是服务端口仍然可达。

方案二:探测固定的服务地址。通过对一个固定的地址不断的发送探测报文来检测业务服务的可用性,该方案要求服务方必须实现一个固定的检测地址,而实际服务提供方一般并没有这样一个地址;此外该方案需要在网关上配置录入这个检测地址,增加了配置工作量;同样的,对固定地址的探测仅能证明这个地址可用,不能证明服务就是可用的,以web应用为例,api/status是探测地址,api/service是业务服务地址,对探测地址的检测仅能证明web服务的api/status这个探测接口器是可用的,不能证明api/service这个接口是可用的。

上述两种方案的探测结果都不能真实的反映业务服务的可用性,不能准确确定业务服务的状态,且都需要用户手动配置检测规则,过程较繁琐。

基于上述情况,本说明书实施例提供一种业务服务的状态检测方法,借助对业务服务进行功能测试时采用的测试请求参数,自动生成用于对业务服务进行检测的状态检测规则,从而可根据该状态检测规则自动启动对业务服务的真实状态的检测,无需手动配置检测规则,减少了人工成本。

接下来对本说明书实施例进行详细说明。

如图1所示,图1是本说明书根据一示例性实施例示出的一种业务服务的状态检测方法的流程图,方法应用于api网关,包括以下步骤:

步骤101、获取针对目标业务服务的测试请求参数。

其中,测试请求参数用于触发调用目标业务服务以对目标业务服务进行功能测试。

业务服务在api网关上注册信息之后发布之前,需要对业务服务进行功能测试,测试通过后才允许对业务服务进行发布,发布之后的业务服务进入可用状态,允许被调用。业务服务发布之后,根据需要也有可能对业务服务进行功能测试。

业务服务测试时,会将测试请求参数发送给api网关,以触发业务服务的调用,步骤101中,可在api网关接收到请求测试参数时获取该请求测试参数;若服务器会记录业务服务的测试相关信息,也可以从测试相关信息中获取状态检测参数。

步骤102、根据测试请求参数生成针对目标业务服务的状态检测规则。

其中,状态检测规则用于对发布的目标业务服务进行自动状态检测。

在另一个实施例中,生成状态检测规则之前,可以先判断目标业务服务的功能测试的测试结果是否成功,若测试成功,才生成状态检测规则,以避免因测试请求参数设置不合适导致的参数不可用。具体地,包括以下步骤:获取功能测试的测试结果,若测试结果为接收到目标业务服务返回的应答消息,且应答消息的格式与目标业务服务对应的标准应答格式相同,则说明测试成功,该测试请求参数可用,进而根据该测试请求参数生成针对目标业务服务的状态检测规则。

其中,业务服务的标准应答格式可根据注册文档确定。业务服务注册,也即在api网关上注册该业务服务的服务信息,生成对应的注册文档,注册文档中通常包括业务服务的位置信息、请求参数、应答码和标准应答格式等信息。

步骤103、响应于针对目标业务服务的状态检测请求,根据状态检测规则调用目标业务服务,并根据调用结果确定目标业务服务所处的状态。

步骤103中,对于目标业务服务的状态检测可以是周期性进行的;也可以设定测试时刻,在达到设定的测试时刻时触发对目标业务服务的状态检测。对于不同的业务服务,用户可自行配置状态检测的时机策略。

步骤103中,若调用结果为接收到目标业务服务返回的应答消息,且应答消息的格式与目标业务服务对应的标准应答格式相同,则确定业务服务为可用状态;若调用结果为未接收到应答消息或应答消息的格式与标准应答格式不相同,则确定业务服务为不可用状态,此时可生成报警信息,以便于测试开发人员收到告警信息后及时修复业务服务。

由于对目标业务服务进行状态检测所采用的状态检测规则是服务在测试阶段生成的,因此目标业务服务的一次状态检测相当于模拟了一次真实的业务调用,检测结果能真实反映目标业务服务的状态。

本实施例中,借助测试目标业务服务时所采用的测试请求参数,生成用于对目标业务服务进行状态检测的状态检测规则,从而无需手动配置检测规则,且可根据状态检测规则实时对目标业务服务进行状态检测,提高了检测的及时性和准确性。

对目标业务服务的功能测试可以在目标业务服务注册之后发布之前,也可以在目标业务发布之后,相对应的,用于生成状态检测规则的测试请求参数可以在目标业务服务注册之后发布之前的场景中获取,也可以在目标业务发布之后的场景中获取。下面以在目标业务服务注册之后发布之前的场景为例,对业务服务的状态检测过程作进一步说明。

图2是本说明书根据一示例性实施例示出的另一种业务服务的状态检测方法的流程图,包括以下步骤:

步骤201、在api网关接收到针对目标业务服务的测试请求参数的情况下,记录该测试请求参数。

其中,测试请求参数用于触发调用目标业务服务以对目标业务服务进行功能测试。

通常情况下,业务服务在api网关上注册信息之后发布之前,需要对业务服务进行功能测试,测试通过后才允许对业务服务进行发布。功能测试时一般会针对服务的所有端口地址,保证所有端口地址可用,因此借助此场景中的测试请求参数生成状态检测规则,并用于业务服务的状态检测,状态检测的全面性以及准确性比较高。

步骤202、获取目标业务服务的功能测试的测试结果。

图3是本说明书根据一示例性实施例示出的对业务服务进行功能测试的流程图,从图中可以看出,对业务服务进行功能测试时,测试开发人员通过终端生成测试请求,测试请求携带用户输入的测试请求参数。可以理解地,对于不同的业务服务,测试时采用的测试参数并不完全同,以对用于学生信息查询的业务服务进行功能测试为例,测试请求参数可以包括以下参数中的至少一种:学号、姓名、年龄、专业等。api网关接收到测试请求,通过服务路由将测试请求发生给对应的业务服务。若业务服务正常,则会根据测试请求携带的测试请求测试参数进行业务处理并通过api网关返回格式正确的应答消息,若业务服务故障,可能是逻辑层故障,也可能是服务接口故障,则不会返回应答消息或者应答消息的格式不正确。从而,可根据api网关对业务服务的调用结果判断测试是否成功。

步骤203、判断测试结果是否为接收到目标业务服务返回的应答消息,且应答消息的格式与目标业务服务对应的标准应答格式相同。

其中,目标业务服务的标准应答格式可根据其注册文档确定。业务服务注册,也即在api网关上注册该业务服务的服务信息,生成对应的注册文档,注册文档中通常包括业务服务的位置信息、请求参数、应答码和标准应答格式等信息。

步骤203中,若判断为是,说明测试成功,该测试请求参数可用,则执行步骤204和步骤204’;若判断为否,说明测试不成功,有可能是该测试请求参数不合适,测试请求参数不可用,则不生成状态检测规则。可以理解的,在测试不成功的情况下,开发人员会对业务服务进行故障排查,并重新进行测试,因此若测试不成功,则返回步骤201,以获取下一次测试时的测试请求参数。

步骤204、根据测试请求参数和标准应答格式生成针对目标业务服务的状态检测规则。

其中,状态检测规则用于对发布的目标业务服务进行自动状态检测。

步骤204’、发布目标业务服务。

目标业务服务的功能测试通过后,允许对目标业务服务进行发布,发布之后目标业务服务进入可用状态,允许应用或其他业务服务进行调用。

需要说明的是,步骤204与步骤204’不限于图中示出的同步执行,可以先执行步骤204再执行步骤204’,也可以先执行步骤204’再执行步骤204。

目标业务服务发布后,为了确保目标业务服务始终是可用状态,需要根据状态检测规则自动触发对目标业务的状态检测,参见步骤205。

步骤205、响应于针对目标业务服务的状态检测请求,根据状态检测规则调用目标业务服务,并根据调用结果确定目标业务服务所处的状态。

步骤205中,对于目标业务服务的状态检测可以是周期性进行的;也可以设定测试时刻,在达到设定的测试时刻时触发对目标业务服务的状态检测。对于不同的业务服务,用户可自行配置状态检测的时机策略。

步骤205中,若调用结果为接收到目标业务服务返回的应答消息,且应答消息的格式与目标业务服务对应的标准应答格式相同,则确定业务服务为可用状态;若调用结果为未接收到应答消息或应答消息的格式与标准应答格式不相同,则确定业务服务为不可用状态,此时可生成报警信息,以便于测试开发人员收到告警信息后及时修复业务服务。

本实施例中,通过对业务服务的发布流程进行优化,借助服务发布之前对服务进行测试采用的测试请求参数,生成用于自动检测业务服务状态的状态检测规则,由于对目标业务服务进行状态检测所采用的状态检测规则是服务在测试阶段生成的,因此目标业务服务的一次状态检测相当于模拟了一次真实的业务调用,检测结果能真实反映目标业务服务的状态,准确度较高。

在另一个实施例中,目标业务服务发布使用后,还可以通过状态检测规则对目标业务服务反馈的针对用户的业务处理请求的调用结果进行检测,以判断目标业务服务的状态,具体的:用户发送业务处理请求,api网关接收到该业务处理请求,会调用对应的目标业务服务,若调用结果为接收到目标业务服务返回的应答消息,且应答消息的格式与目标业务服务对应的标准应答格式相同,则确定业务服务为可用状态;若调用结果为未接收到应答消息或应答消息的格式与标准应答格式不相同,则确定业务服务为不可用状态。从而,通过状态检测规则对用户的业务处理请求的调用结果进行分析判断,可实时确定目标业务服务的状态,在目标业务服务为不可用状态时,及时发现,生成报警信息,并通知测试开发人员进行检修。

与前述业务服务的状态检测方法的实施例相对应,本说明书还提供了业务服务的状态检测装置及其所应用的终端的实施例。

图4是本说明书根据一示例性实施例示出的一种业务服务的状态检测装置的模块示意图,该业务服务的状态检测装置应用于api网关,包括:参数获取模块401、生成模块402和状态检测模块403。

参数获取模块401,用于获取针对目标业务服务的测试请求参数,所述测试请求参数用于触发调用所述目标业务服务以对所述目标业务服务进行功能测试;

生成模块402,用于根据所述测试请求参数生成针对目标业务服务的状态检测规则;

状态检测模块403,用于响应于针对目标业务服务的状态检测请求,根据所述状态检测规则调用所述目标业务服务,并根据调用结果确定所述目标业务服务所处的状态。

可选地,在根据所述状态检测规则调用所述目标业务服务,并根据调用结果确定所述目标业务服务所处的状态时,所述状态检测模块用于:

若所述调用结果为接收到所述目标业务服务返回的应答消息,且所述应答消息的格式与所述目标业务服务对应的标准应答格式相同,则确定所述目标业务服务为可用状态;

若所述调用结果为未接收到所述应答消息或所述应答消息的格式与所述标准应答格式不相同,则确定所述目标业务服务为不可用状态。

可选地,所述状态检测模块还用于:

若业务请求结果为接收到所述目标业务服务返回的应答消息,且所述应答消息的格式与所述目标业务服务对应的标准应答格式相同,则确定所述目标业务服务为可用状态,所述业务请求结果为根据用户发送的业务处理请求调用所述目标业务服务的结果;

若所述业务请求结果为未接收到所述应答消息或所述应答消息的格式与所述标准应答格式不相同,则确定所述目标业务服务为不可用状态。

可选地,所述生成模块具体用于:

获取所述功能测试的测试结果;

在所述测试结果为接收到所述目标业务服务返回的应答消息,且所述应答消息的格式与所述目标业务服务对应的标准应答格式相同的情况下,根据所述测试请求参数生成针对目标业务服务的状态检测规则。

可选地,所述状态检测装置还包括:

发布模块,用于在所述测试结果为接收到所述目标业务服务返回的应答消息,且所述应答消息的格式与所述目标业务服务对应的标准应答格式相同的情况下,发布所述目标业务服务。

可选地,所述状态检测装置还包括:

文档获取模块,用于获取所述目标业务服务在api网关上注册时生成的注册文档,所述注册文档定义有所述目标业务服务的标准应答格式。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

图5是本发明一示例实施例示出的一种电子设备的结构示意图,示出了适于用来实现本发明任一实施例的示例性电子设备50的框图。图5显示的电子设备50仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图5所示,电子设备50可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备50的组件可以包括但不限于:上述至少一个处理器51、上述至少一个存储器52、连接不同系统组件(包括存储器52和处理器51)的总线53。

总线53包括数据总线、地址总线和控制总线。

存储器52可以包括易失性存储器,例如随机存取存储器(ram)521和/或高速缓存存储器522,还可以进一步包括只读存储器(rom)523。

存储器52还可以包括具有一组(至少一个)程序模块524的程序工具525(或实用工具),这样的程序模块524包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

处理器51通过运行存储在存储器52中的计算机程序,从而执行各种功能应用以及数据处理,例如上述任一实施例所提供的方法。

电子设备50也可以与一个或多个外部设备54(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口55进行。并且,模型生成的电子设备50还可以通过网络适配器56与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器56通过总线53与模型生成的电子设备50的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的电子设备50使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的业务服务的状态检测方法的步骤。

应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。

以上仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1