CN111404759B - 服务检测方法、规则配置方法、相关设备及介质 - Google Patents
服务检测方法、规则配置方法、相关设备及介质 Download PDFInfo
- Publication number
- CN111404759B CN111404759B CN202010309472.0A CN202010309472A CN111404759B CN 111404759 B CN111404759 B CN 111404759B CN 202010309472 A CN202010309472 A CN 202010309472A CN 111404759 B CN111404759 B CN 111404759B
- Authority
- CN
- China
- Prior art keywords
- service
- node
- target
- detected
- request
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0659—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
- H04L41/0661—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities by reconfiguring faulty entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明实施例公开了一种服务检测方法、规则配置方法、相关设备及介质;其中,服务检测方法应用于服务器,该服务器中部署有接口网关(即API网关),接口网关中注册有拨测服务和至少一个业务服务;该服务检测方法包括:响应关于目标业务服务的检测触发事件,根据目标业务服务的健康检测规则确定用于提供目标业务服务的目标待检测节点;调用拨测服务对应的拨测节点向目标待检测节点发送服务请求,该服务请求用于指示拨测服务欲调用目标业务服务;获取目标待检测节点针对服务请求的响应结果,并根据响应结果确定目标待检测节点的当前节点状态,所述当前节点状态包括健康状态或者非健康状态。本发明实施例可以有效提升服务检测的及时性和检测效率。
Description
技术领域
本发明涉及互联网技术领域,具体涉及计算机技术领域,尤其涉及一种服务检测方法、一种规则配置方法、一种服务检测装置、一种规则配置装置、一种服务器、一种客户端及一种计算机存储介质。
背景技术
随着互联网技术的发展,诸如SOA(Service-Oriented Architecture,面向服务架构)等微服务框架逐渐受到了用户或企业的关注。越来越多的企业或用户选择采用微服务框架来设计软件应用,实现将一个大型的单个应用程序和服务拆分成数十个独立部署的微服务(业务服务),以便于后续可通过调用一个或多个微服务来满足用户的业务需求。由于微服务通常是通过服务节点(如服务器)来提供的,如果服务节点出现了健康问题,那么可能会导致该微服务不可用,从而导致调用该微服务失败,影响业务的正常运作。基于此,如何对微服务进行可用性检测成为了目前的研究热点。
发明内容
本发明实施例提供了一种服务检测方法、规则配置方法、相关设备及介质,可有效提升服务检测的及时性和检测效率。
一方面,本发明实施例提供了一种服务检测方法,所述服务检测方法应用于服务器,所述服务器中部署有接口网关,所述接口网关中注册有拨测服务和至少一个业务服务;所述服务检测方法包括:
响应关于目标业务服务的检测触发事件,根据所述目标业务服务的健康检测规则确定用于提供所述目标业务服务的目标待检测节点;所述健康检测规则是根据在配置界面中检测到的针对所述目标业务服务的配置操作生成的;
调用所述拨测服务对应的拨测节点向所述目标待检测节点发送服务请求,所述服务请求用于指示所述拨测服务欲调用所述目标业务服务;
获取所述目标待检测节点针对所述服务请求的响应结果,并根据所述响应结果确定所述目标待检测节点的当前节点状态,所述当前节点状态包括健康状态或者非健康状态。
在一种实施方式中,所述健康检测规则包括检测周期,所述检测触发事件包括所述目标业务服务的检测周期到达事件;所述方法还包括:
获取当前系统时间,以及前一次对所述目标业务服务进行健康检测的历史检测时间;
若所述当前系统时间和所述历史检测时间之间的间隔时长等于所述检测周期所指示的时长,则确定检测到关于所述目标业务服务的检测周期到达事件。
再一方面,本发明实施例提供了一种服务检测装置,所述服务检测装置运行于服务器中;所述服务器中部署有接口网关,所述接口网关中注册有拨测服务和至少一个业务服务;所述服务检测装置包括:
处理单元,用于响应关于目标业务服务的检测触发事件,根据所述目标业务服务的健康检测规则确定用于提供所述目标业务服务的目标待检测节点;所述健康检测规则是根据在配置界面中检测到的针对所述目标业务服务的配置操作生成的;
通信单元,用于调用所述拨测服务对应的拨测节点向所述目标待检测节点发送服务请求,所述服务请求用于指示所述拨测服务欲调用所述目标业务服务;
所述处理单元,还用于获取所述目标待检测节点针对所述服务请求的响应结果,并根据所述响应结果确定所述目标待检测节点的当前节点状态,所述当前节点状态包括健康状态或者非健康状态。
在一种实施方式中,所述响应结果包括所述服务请求的请求结果,所述请求结果用于指示请求成功或请求失败;相应的,处理单元在用于根据所述响应结果确定所述目标待检测节点的当前节点状态时,可具体用于:
若所述请求结果指示请求成功,则确定所述目标待检测节点的当前节点状态为所述健康状态;
若所述请求结果指示请求失败,则确定所述目标待检测节点的当前节点状态为所述非健康状态。
再一种实施方式中,当所述请求结果指示请求失败时,所述响应结果还包括响应报错信息;相应的,处理单元在用于若所述请求结果指示请求失败,则确定所述目标待检测节点的当前节点状态为所述非健康状态时,可具体用于:
若所述请求结果指示请求失败,则检测所述响应报错信息是否为自定义错误信息;所述自定义错误信息包括以下至少一项:系统错误代码和所述系统错误代码所对应的异常状态码,所述系统错误代码包括:用于表示服务请求被拒绝的错误代码、用于表示服务请求不可达的错误代码、或者用于表示服务请求超时的错误代码;
若是,则确定所述目标待检测节点的当前节点状态为所述非健康状态;否则,则确定所述目标待检测节点为所述健康状态。
再一种实施方式中,处理单元还可用于:
根据所述目标待检测节点的当前节点状态,更新所述目标待检测节点的非健康计数;
若更新后的非健康计数大于或等于数值阈值,则将所述目标待检测节点作为故障节点添加至故障节点列表;
若更新后的非健康计数小于所述数值阈值,则将所述目标待检测节点作为健康节点添加至健康节点列表。
再一种实施方式中,处理单元在用于根据所述目标待检测节点的当前节点状态,更新所述目标待检测节点的非健康计数时,可具体用于:
若所述目标待检测节点的当前节点状态为所述健康状态,则将所述目标待检测节点的非健康计数更新为无效数值;
若所述目标待检测节点的当前节点状态为所述非健康状态,则对所述目标待检测节点的非健康计数进行加一处理。
再一种实施方式中,所述目标待检测节点位于所述故障节点列表中;相应的,处理单元还可用于:
获取所述目标待检测节点在所述故障节点列表中的存储时长;
若所述存储时长大于预设时长,则从所述故障节点列表中剔除所述目标待检测节点,并禁止所述目标待检测节点提供所述目标业务服务。
再一种实施方式中,处理单元还可用于:
若接收到服务调用方发送的业务请求,则从所述健康节点列表中获取目标健康节点;
将所述业务请求转发至所述目标健康节点,以使得所述目标健康节点为所述服务调用方提供所述目标业务服务。
再一种实施方式中,处理单元在用于根据所述健康检测规则确定用于提供所述目标业务服务的目标待检测节点时,可具体用于:
根据所述健康检测规则获取与所述目标服务业务相关联的待检测节点列表,所述待检测节点列表中包括至少一个待检测节点;
从所述待检测节点列表中选取一个待检测节点作为所述目标待检测节点。
再一种实施方式中,所述健康检测规则包括:所述目标业务服务的至少一个健康检查地址;相应的,处理单元在用于获取与所述目标业务服务相关联的待检测节点列表时,可具体用于:
从所述至少一个健康检查地址所对应的指定节点中,获取历史节点状态为健康状态的可用指定节点;
将获取到的可用指定节点作为待检测节点添加至所述待检测节点列表中。
再一种实施方式中,处理单元还可用于:
若获取到的可用指定节点的数量小于数量阈值,则获取所述目标业务服务在所述接口网关中的注册信息,所述注册信息包括:至少一个服务地址;
根据所述至少一个服务地址确定所述目标业务服务的备用节点列表;所述备用节点列表中包括至少一个备用节点,所述备用节点是指所述至少一个服务地址中除所述健康检查地址以外的其他服务地址所对应的节点;
从所述备用节点列表中获取历史节点状态为健康状态的可用备用节点,并将获取到的可用备用节点作为待检测节点添加至所述待检测节点列表中。
再一种实施方式中,处理单元还可用于:
若所述至少一个健康检查地址服务地址所对应的指定节点中不存在所述可用指定节点,且所述备用节点列表中不存在所述可用备用节点,则将各个服务地址所对应的节点均作为待检测节点添加至所述待检测节点列表中。
再一种实施方式中,所述健康检测规则包括检测周期,所述检测触发事件包括所述目标业务服务的检测周期到达事件;相应的,处理单元还可用于:
获取当前系统时间,以及前一次对所述目标业务服务进行健康检测的历史检测时间;
若所述当前系统时间和所述历史检测时间之间的间隔时长等于所述检测周期所指示的时长,则确定检测到关于所述目标业务服务的检测周期到达事件。
再一方面,本发明实施例提供了一种服务器,所述服务器包括输入接口和输出接口;且所述服务器中部署有接口网关,所述接口网关中注册有拨测服务和至少一个业务服务;所述服务器还包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条第一指令,所述一条或多条第一指令适于由所述处理器加载并执行如下步骤:
响应关于目标业务服务的检测触发事件,根据所述目标业务服务的健康检测规则确定用于提供所述目标业务服务的目标待检测节点;所述健康检测规则是根据在配置界面中检测到的针对所述目标业务服务的配置操作生成的;
调用所述拨测服务对应的拨测节点向所述目标待检测节点发送服务请求,所述服务请求用于指示所述拨测服务欲调用所述目标业务服务;
获取所述目标待检测节点针对所述服务请求的响应结果,并根据所述响应结果确定所述目标待检测节点的当前节点状态,所述当前节点状态包括健康状态或者非健康状态。
再一方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条第一指令,所述一条或多条第一指令适于由处理器加载并执行如下步骤:
响应关于目标业务服务的检测触发事件,根据所述目标业务服务的健康检测规则确定用于提供所述目标业务服务的目标待检测节点;所述健康检测规则是根据在配置界面中检测到的针对所述目标业务服务的配置操作生成的;
调用所述拨测服务对应的拨测节点向所述目标待检测节点发送服务请求,所述服务请求用于指示所述拨测服务欲调用所述目标业务服务;
获取所述目标待检测节点针对所述服务请求的响应结果,并根据所述响应结果确定所述目标待检测节点的当前节点状态,所述当前节点状态包括健康状态或者非健康状态。
本发明实施例可为用户提供一个配置界面,以支持用户通过配置界面自定义目标业务服务的健康检测规则,提升了服务检测的灵活性;相应的,在检测到关于目标业务服务的检测触发事件时,通过根据目标业务服务的健康检测规则确定用于提供目标业务服务的目标待检测节点,可使得服务检测更具针对性。并且,通过在接口网关中注册一个拨测服务,可实现主动调用拨测服务对应的拨测节点向目标待检测节点发送服务请求,并根据目标待检测节点针对服务请求的响应结果确定目标待检测节点的当前节点状态;从而使得可通过主动检测目标待检测节点的节点状态来及时获知目标业务服务的可用性,有效提升了服务检测的及时性和检测效率。
另一方面,本发明实施例提供了一种规则配置方法,所述规则配置方法由客户端执行,所述客户端与服务器进行通信,所述服务器中部署有接口网关,所述接口网关中注册有拨测服务和至少一个业务服务;所述规则配置方法包括:
响应于针对目标业务服务的配置触发操作,显示配置界面;
从所述配置界面中获取针对所述目标业务服务的配置操作,并根据所述配置操作生成所述目标业务服务的健康检测规则;
将所述健康检测规则发送至所述服务器,以使得所述服务器根据所述健康检测规则执行上述的服务检测方法。
再一方面,本发明实施例提供了一种规则配置装置,所述规则配置装置运行于客户端中,所述客户端与服务器进行通信,所述服务器中部署有接口网关,所述接口网关中注册有拨测服务和至少一个业务服务;所述规则配置装置包括:
显示单元,用于响应于针对目标业务服务的配置触发操作,显示配置界面;
处理单元,用于从所述配置界面中获取针对所述目标业务服务的配置操作,并根据所述配置操作生成所述目标业务服务的健康检测规则;
发送单元,用于将所述健康检测规则发送至所述服务器,以使得所述服务器根据所述健康检测规则执行上述的服务检测方法。
在一种实施方式中,所述配置界面中至少包括地址设置区域;所述配置操作包括在所述地址设置区域设置健康检测地址的操作;相应的,处理单元在用于根据所述配置操作生成所述目标业务服务的健康检测规则时,可具体用于:
根据所述配置操作获取所述目标业务服务的至少一个健康检测地址;
将获取到的至少一个健康检测地址添加至所述目标业务服务的健康检测规则中。
再一方面,本发明实施例提供了一种客户端,所述客户端包括输入接口和输出接口;所述客户端还包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条第二指令,所述一条或多条第二指令适于由所述处理器加载并执行如下步骤:
响应于针对目标业务服务的配置触发操作,显示配置界面;
从所述配置界面中获取针对所述目标业务服务的配置操作,并根据所述配置操作生成所述目标业务服务的健康检测规则;
将所述健康检测规则发送至所述服务器,以使得所述服务器根据所述健康检测规则执行上述的服务检测方法。
再一方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条第二指令,所述一条或多条第二指令适于由处理器加载并执行如下步骤:
响应于针对目标业务服务的配置触发操作,显示配置界面;
从所述配置界面中获取针对所述目标业务服务的配置操作,并根据所述配置操作生成所述目标业务服务的健康检测规则;
将所述健康检测规则发送至所述服务器,以使得所述服务器根据所述健康检测规则执行上述的服务检测方法。
本发明实施例可为用户提供一个配置界面,以支持用户通过配置界面自定义目标业务服务的健康检测规则,提升了服务检测的灵活性。并且,由于健康检测规则中可包括健康检测地址,这样可使得服务器在检测到关于目标业务服务的检测触发事件时,可通过根据目标业务服务的健康检测规则。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的一种服务系统的架构示意图;
图1b是本发明实施例提供的一种接口网关进行协议转换的示意图;
图1c是本发明实施例提供的一种接口网关的工作原理示意图;
图2是本发明实施例提供的一种规则配置方法的流程示意图;
图3a是本发明实施例提供的一种配置界面的示意图;
图3b是本发明实施例提供的一种任务创建界面的示意图;
图3c是本发明实施例提供的一种配置界面的示意图;
图4是本发明实施例提供的一种服务检测方法的流程示意图;
图5是本发明另一实施例提供的一种服务检测方法的流程示意图;
图6是本发明实施例提供的一种更新非健康计数的流程示意图;
图7是本发明另一实施例提供的一种服务检测方法的流程示意图;
图8是本发明实施例提供的一种服务检测装置的结构示意图;
图9是本发明实施例提供的一种服务器的结构示意图;
图10是本发明实施例提供的一种规则配置装置的结构示意图;
图11是本发明实施例提供的一种客户端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
为了可以更好地对微服务(后续均统称为业务服务)的可用性进行检测,本发明实施例提出了一种服务系统。参见图1a所示,该服务系统可至少包括用户客户端(以下简称客户端)11和后台服务器(以下简称服务器)12两部分,客户端11和服务器12可通过有线或无线通信方式进行直接或间接连接,本申请对此不作限制。其中,客户端11用于为用户(如发布业务服务的服务发布者、需调用业务服务的服务调用者)提供关于业务服务的注册界面、配置界面等多种用户界面;该客户端11可包括以下至少一种:直接提供用户界面的APP(Application,应用程序)、通过网页(如浏览器网页、H5网页等)形式提供用户界面的终端设备,等等;此处的终端设备可以是智能手机、平板电脑、笔记本电脑等便携式设备、台式计算机或者智能手表等可穿戴设备。服务器12用于为客户端11提供技术支撑,以支撑客户端11为用户提供多种用户界面;该服务器12可以是一个独立的物理服务器,也可以是由多个物理服务器所构成的服务器集群或者分布式系统。或者,该服务器12还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,即内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。应理解的是,上述所提及的客户端11和服务器12只是举例,并不局限于此。
在物理部署服务器12时,可在该服务器12中部署一个接口网关;此处的接口网关又可称为API(Application Programming Interface,应用程序接口)网关,其主要包括以下几点功能:①可面向Saas(Software-as-a-Service,软件即服务)层的业务系统,为所有业务服务提供统一的服务接入规范;如图1b所示,不同业务应用下的业务服务均可发布在该接口网关上,由该接口网关对各业务服务的网络协议进行转换,统一业务服务的发布和调用标准,实现对不同业务应用下的各个业务服务进行统一的融合治理,从而解决不同业务服务之间所存在的服务调用难、管理和维护成本高的问题。②可支持对各个服务业务的发布、冻结、授权以及下线等过程提供全生命周期的服务治理和服务托管能力。③可通过主动检测任一业务服务所对应的服务节点的节点状态,来提前探测该业务服务的可用性;此处的服务节点可简称为节点,其是指用于提供业务服务的服务设备。通过提前探测业务服务的可用性,从而使得在调用该业务服务时,可根据该业务服务的探测结果及时且灵活地给出节点调用策略,提升业务服务的调用灵活性,从而避免因业务服务不可用而导致调用失败,影响业务正常运作的问题。
下面将结合图1c对上述所提及的接口网关的工作原理进行详细阐述,其具体可包括以下几个阶段:
(一)注册阶段:任一业务应用的服务提供方均可通过客户端11所提供的注册界面,将该业务应用下的各个业务服务发布在接口网关上。具体的,服务提供方在将业务服务发布到接口网关上时,可先在该业务应用下设置好相应的服务信息,譬如服务验证方式、调用频率、请求头以及主机头等一系列的服务参数;然后在客户端11所提供的注册界面中输入该服务信息,触发客户端11将该服务信息发送到服务器12的接口网关中,以实现业务服务的发布注册。
(二)授权阶段:当某一业务应用(后续称为调用方)中的业务服务(设业务服务a)需调用另一业务服务(设业务服务b)时,则需要从业务服务b所属的业务应用(后续称为被调用方)处获取业务服务b的授权。在此情况下,若被调用方同意业务服务a调用业务服务b,则可发送服务授权申请至服务系统以通知服务系统;在服务授权申请通过审核后,业务服务a便可调用业务服务b。
(三)调用阶段:业务服务a在调用业务服务b时,可生成一个业务请求;然后使用接口网关签名算法(即API网关签名算法)对该业务请求进行签名,将签名后的业务请求发送至服务器12中的接口网关。相应的,接口网关可采用业务服务b所适配的网络协议对业务请求所使用的网络协议进行转换,并采用API网关签名算法根据被调用方的应用Token(一种身份令牌)计算一个令牌签名,并将计算得到的令牌签名放进业务请求的请求头中;然后,将携带该令牌签名的业务请求发送至被调用方。相应的,被调用方可向接口网关返回一个响应签名,以实现业务服务a对业务服务b的调用。需说明的是,若被调用方未返回响应签名,则接口网关可拒绝调用方的业务请求,并返回错误标识(如“403”)给调用方。
通过上述三个阶段,便可实现业务服务从发布到授权调用的全过程。由于各业务服务在相互调用过程中可能出现因节点故障而影响业务正常运作的问题,因此本发明实施例提出了一种服务检测方案来提前探测各个业务服务的可用性。在具体实现中,该服务检测方案可分为客户端侧和服务器侧等两部分内容:
(1)在客户端侧,不仅可支持任意用户(如服务提供者、服务调用者)通过客户端所提供的配置界面,针对注册在接口网关中的任一业务服务设置相应的健康检测规则;还可支持任意用户自定义故障节点的节点剔除规则和节点恢复规则,并将健康检测规则、节点剔除规则以及节点恢复规则等规则发送至服务器。其中,健康检测规则可用于确定待检测节点、健康检测周期等信息。节点剔除规则可包括:将待检测节点作为故障节点所需满足的故障条件,譬如连续N次检测到待检测节点的节点状态为非健康状态等,N大于或等于1;节点剔除规则还可包括:剔除待检测节点所需满足的剔除条件,譬如待检测节点成为故障节点所维持的时长大于预设时长等。节点恢复规则可包括:在将待检测节点作为故障节点后,重新将此待检测节点作为健康节点所需满足的恢复条件。
(2)在服务器侧,可支持在接口网关中注册一个拨测服务,该拨测服务是指用于探测各业务服务的可用性的服务;从而支持接口网关自发主动地根据健康检测规则确定业务服务的待检测节点,通过拨测服务来模拟实际的服务调用过程向待检测节点发送服务请求。判断待检测节点是否能够正常响应该服务请求;若无法正常响应,则可确定待检测节点的当前节点状态为非健康状态,并根据剔除条件确定是否剔除此待检测节点。接着开始新一轮的拨测尝试,直到待检测节点可以正常响应,此时可将待检测节点的节点状态从非健康状态更新为健康状态。除此之外,还可支持根据接口网关在接收到关于该业务服务的实际业务请求时,根据对该业务服务的探测结果给出及时且灵活地给出节点调用策略,提升业务服务的调用灵活性,从而避免造成因服务调用方紧急发起业务请求时遇到节点故障无法及时恢复而导致业务无法正常运作的问题。
基于上述服务检测方案中关于客户端侧的相关描述,本发明实施例提出了一种规则配置方法;该规则配置方法可由客户端执行,该客户端可与服务器进行通信;此处的服务器中部署有接口网关,接口网关中注册有拨测服务和至少一个业务服务。参见图2所示,该规则配置方法可包括以下步骤S201-S203:
S201,响应于针对目标业务服务的配置触发操作,显示配置界面。
在本发明实施例中,目标业务服务可以是在接口网关中新注册的任一业务服务,也可以是已在接口网关中注册过的任一业务服务;此处的业务服务可包括但不限于:政企业务服务(如公积金服务、电子证件服务、个人信用服务等)、社交应用服务(如会话服务、音乐播放服务)等等。客户端可检测是否存在针对目标业务服务的配置触发操作,此处的配置触发操作可包括任一用于触发客户端输出配置界面的操作。
在一种实施方式中,若目标业务服务是在接口网关中新注册的任一业务服务,则客户端可先输出目标业务服务的注册界面,以便于服务开发者在该注册界面中输入关于目标业务服务的注册信息,此处的注册信息可包括但不限于:目标业务服务的服务名称、用于提供该目标业务服务的至少一个节点的服务地址、目标业务服务所适配的网络协议,等等。其中,服务地址可包括以下至少一项:IP(Internet Protocol,网际互连协议)地址、域名地址,等等。在此实施方式下,配置触发操作可包括服务开发者针对已输入的注册信息的确认操作;相应的,配置界面的示意图可参见图3a所示。
再一种实施方式中,若目标业务服务是已在接口网关中注册过的任一业务服务,则客户端可支持任意用户(如服务调用者、服务开发者)对该目标业务服务设置健康检测规则。具体的,客户端可先为用户提供一个任务创建界面;该任务创建界面中可包括用于打开配置界面的界面入口,例如图3b中所示的“新建任务”按钮。在此实施方式下,配置触发操作可包括用户针对该界面入口的触发操作(如点击操作、按压操作等);相应的,配置界面的示意图可参见图3c所示。
S202,从配置界面中获取针对目标业务服务的配置操作,并根据配置操作生成目标业务服务的健康检测规则。
在显示配置界面后,客户端可从配置界面中获取针对目标业务服务的配置操作。参见图3a或图3c所示的界面图可知,配置界面中至少包括地址设置区域;那么相应的配置操作可包括在地址设置区域设置健康检测地址的操作,此处的健康检测地址是指用户所指定的需要进行检测的指定节点的服务地址。在获取到配置操作后,客户端可根据配置操作生成目标业务服务的健康检测规则。在具体实现中,客户端可先根据配置操作获取目标业务服务的至少一个健康检测地址;然后将将获取到的至少一个健康检测地址添加至目标业务服务的健康检测规则中。
应理解的是,用户除了可在配置界面中设置健康检测地址外,还可设置其他信息;也就是说,健康检测规则还可包括其他信息。例如,针对图3a所示的配置界面而言,由于该配置界面还可包括:用于设置响应时间的时间设置区域、用于设置健康检查码的检查码设置区域,等等。那么,配置操作还可包括在时间设置区域设置响应时间的操作、在检查码设置区域设置健康检查码的操作。相应的,健康检测规则中还可包括目标业务服务的响应时间、健康检查码等信息;其中,响应时间是指服务器中的接口网关通过服务请求探测目标业务服务的可用性的总体耗时,健康检查码用于检测目标业务服务所对应的节点因响应服务请求而返回的状态码是否异常,若待检测节点返回的状态码和健康检查码相匹配,则表明该状态码正常;否则,则表明该状态码异常。
又如,针对图3c所示的配置界面而言,由于该配置界面还可包括:用于设置服务名称的名称设置区域、用于设置响应方式和响应内容的响应信息设置区域,等等。那么,配置操作还可包括在名称设置区域输入目标业务服务的服务名称的操作、在响应信息设置区域设置响应信息的操作。相应的,健康检测规则中还可包括目标业务服务的服务名称、响应信息等信息;其中,响应信息可以包括响应方式和响应内容;响应方式可以包括:包含响应内容和不包含响应内容,响应内容可包括:目标业务服务所对应的节点处于非健康状态时所需返回的自定义错误信息,如系统错误代码、与健康检查码具有映射关系的异常状态码,等等。
需要说明的是,图3a和图3c均只是示例性地表示配置界面,其并对配置界面的产品形态进行限定;例如,配置界面还可包括用于设置目标业务服务的可用率的可用率设置区域,此处的可用率是指接口网关中的拨测服务成功调用目标业务服务的比率。相应的,目标业务服务的健康检测规则中还可包括目标业务服务的可用率,以便于后续在探测目标业务服务的可用性时,可先计算目标业务服务的可用率,并根据计算得到的可用率和健康检测规则所包含的可用率进行比较;并在计算得到的可用率小于健康检测规则所包含的可用率时,从接口网关中剔除目标业务服务。
S203,将健康检测规则发送至服务器。
客户端在生成健康检测规则后,可将健康检测规则发送至服务器,以使得服务器根据健康检测规则执行图4或图5所示的服务检测方法。可选的,由前述可知,客户端还可支持用户自定义故障节点的节点剔除规则和节点恢复规则;相应的,若用户通过客户端设置了节点剔除规则以及节点恢复规则等规则,则客户端还可将用户所设置的节点剔除规则和节点恢复规则发送至服务器,以使得服务器根据该节点剔除规则和节点恢复规则对目标业务服务所对应的节点执行剔除和恢复处理。
本发明实施例可为用户提供一个配置界面,以支持用户通过配置界面自定义目标业务服务的健康检测规则,提升了服务检测的灵活性。并且,由于健康检测规则中可包括健康检测地址,这样可使得服务器在检测到关于目标业务服务的检测触发事件时,可通过根据目标业务服务的健康检测规则确定用于提供目标业务服务的目标待检测节点,可使得服务检测更具针对性。
基于上述服务检测方案中关于服务器侧的相关描述,本发明实施例提出了一种服务检测方法,该服务检测方法可应用于上述所提及的服务器;所述服务器中部署有接口网关,该接口网关中注册有拨测服务和至少一个业务服务。在具体实现中,该服务检测方法可由服务器执行,也可由服务器中的接口网关执行;为便于阐述,后续均以服务器执行该服务检测方法为例进行说明。请参见图4,该服务检测方法可包括以下步骤S401-S404:
S401,响应关于目标业务服务的检测触发事件,根据目标业务服务的健康检测规则确定用于提供目标业务服务的目标待检测节点。
由前述可知,客户端在生成目标业务服务的健康检测规则后,可将该健康检测规则发送至服务器;相应的,服务器可接收客户端发送的健康检测规则,并根据该健康检测规则自发主动地对目标业务服务的可用性进行探测。其中,健康检测规则是根据在配置界面中检测到的针对目标业务服务的配置操作生成的。在具体实现中,服务器可先检测是否存在关于目标业务服务的检测触发事件;若检测到该检测触发事件,则可根据目标业务服务的健康检测规则确定用于提供目标业务服务的目标待检测节点。其中,检测是否存在关于目标业务服务的检测触发事件的具体实施方式可以至少包括以下两种:
在一种实施方式中,服务器可对接口网关中的各个业务服务进行排序,并采用轮测方式对各个业务服务的可用性进行探测;所谓轮测方式是指按照各个业务服务的排列顺序依次对各个业务服务进行探测的方式。那么在此实施方式下,关于目标业务服务的检测触发事件可包括:已完成对位于目标业务服务之前的前一业务服务的可用性探测的事件;此处的前一业务服务是指排列顺序位于目标业务服务之前,且与目标业务服务相邻的业务服务。需要说明的是,若目标业务服务的排列顺序为首位,则前一业务服务可是为排列顺序为末位的业务服务。相应的,服务器在执行步骤S401之前,还可执行如下步骤:根据排列顺序确定位于目标业务服务之前的前一业务服务,并检测是否已完成对前一业务服务的可用性探测的事件;若已完成,则确定检测到目标业务服务的检测触发事件。
再一种实施方式中,可对接口网关中的各个业务服务设置相应的检测周期。那么在此实施方式下,目标业务服务的健康检测规则可包括检测周期,该检测周期可根据经验值设置(例如设置默认值为1分钟),也可由用户自定义设置;那么关于目标业务服务的检测触发事件可包括:目标业务服务的检测周期到达事件。相应的,服务器在执行步骤S401之前,还可执行如下步骤:获取当前系统时间,以及前一次对目标业务服务进行健康检测的历史检测时间;若当前系统时间和历史检测时间之间的间隔时长等于检测周期所指示的时长,则确定检测到关于目标业务服务的检测周期到达事件,即可确定检测到关于目标业务服务的检测触发事件。需要说明的是,健康检测规则还可包括首次检测时间;若执行步骤S401之前未对目标业务服务进行一次健康检测,则服务器可判断当前系统时间是否等于首次检测时间,若等于,则可确定检测到关于目标业务服务的检测触发事件。
S402,调用拨测服务对应的拨测节点向目标待检测节点发送服务请求。
在具体实现中,服务器可先控制拨测服务所对应的拨测节点生成一个初始请求,并控制拨测节点采用接口网关签名算法对该初始请求进行签名得到服务请求,该服务请求用于指示拨测服务欲调用目标业务服务。其次,服务器可采用接口网关签名算法按照目标业务服务所对应的应用令牌计算得到令牌签名,并将令牌签名放进服务请求的请求头中。然后,将携带令牌签名的服务请求发送至目标待检测节点。
S403,获取目标待检测节点针对服务请求的响应结果。
S404,根据响应结果确定目标待检测节点的当前节点状态,该当前节点状态包括健康状态或者非健康状态。
在步骤S403-S404中,响应结果包括服务请求的请求结果,该请求结果用于指示请求成功或请求失败。若请求结果指示请求成功,则可确定目标待检测节点的当前节点状态为健康状态;若请求结果指示请求失败,则可确定目标待检测节点的当前节点状态为非健康状态。需要说明的是,由图3c所示的配置界面中包括可响应方式的选项,且该响应方式包括:包含响应内容和不包含响应内容两种方式。那么随着用户所选择的响应方式的不同,服务器在请求结果指示请求失败时,确定目标待检测节点的当前节点状态为非健康状态的步骤也具有不同的具体实施方式,具体如下:
在一种实施方式中,若用户选择的是不包含响应内容这一响应方式,则当请求结果指示请求失败时,服务器可直接确定目标待检测节点的当前节点状态为非健康状态。
再一种实施方式中,若用户选择的是包含响应内容这一响应方式,则当请求结果指示请求失败时,响应结果还可包括响应报错信息。在此情况下,若请求结果指示请求失败,则服务器可进一步检测响应报错信息是否为自定义错误信息;若是,则可确定目标待检测节点的当前节点状态为非健康状态;否则,则确定目标待检测节点为健康状态。其中,自定义错误信息可包括以下至少一项:系统错误代码和系统错误代码所对应的异常状态码;系统错误代码包括:用于表示服务请求被拒绝的错误代码(如错误代码“ECONNREFUSED”)、用于表示服务请求不可达的错误代码(如错误代码“EHOSTUNREACH”)、或者用于表示服务请求超时的错误代码(如错误代码“ETIMEDOUT”)。
本发明实施例可为用户提供一个配置界面,以支持用户通过配置界面自定义目标业务服务的健康检测规则,提升了服务检测的灵活性;相应的,在检测到关于目标业务服务的检测触发事件时,通过根据目标业务服务的健康检测规则确定用于提供目标业务服务的目标待检测节点,可使得服务检测更具针对性。并且,通过在接口网关中注册一个拨测服务,可实现主动调用拨测服务对应的拨测节点向目标待检测节点发送服务请求,并根据目标待检测节点针对服务请求的响应结果确定目标待检测节点的当前节点状态;从而使得可通过主动检测目标待检测节点的节点状态来及时获知目标业务服务的可用性,有效提升了服务检测的及时性和检测效率。
基于上述图4所示的服务检测方法实施例的相关描述,本发明实施例还提出了一种更为详细的服务检测方法;该服务检测方法可应用于上述所提及的服务器;所述服务器中部署有接口网关,该接口网关中注册有拨测服务和至少一个业务服务。在具体实现中,该服务检测方法可由服务器执行,也可由服务器中的接口网关执行;为便于阐述,后续均以服务器执行该服务检测方法为例进行说明。请参见图5,该服务检测方法可包括以下步骤S501-S506:
S501,响应关于目标业务服务的检测触发事件,根据目标业务服务的健康检测规则确定用于提供目标业务服务的目标待检测节点。
在具体实现中,服务器可响应关于目标业务服务的检测触发事件,采用负载算法并根据目标业务服务的健康检测规则确定用于提供目标业务服务的目标待检测节点。其中,负载算法的原理可包括以下步骤s11-s12:
s11,根据健康检测规则获取与目标服务业务相关联的待检测节点列表,待检测节点列表中包括至少一个待检测节点。
由前述可知,健康检测规则可包括:目标业务服务的至少一个健康检查地址。在一种具体实现中,由于健康检查地址是用户所指定的需进行检测的指定节点的服务地址,因此服务器在执行步骤s11时,可直接将各个健康检查地址所对应的指定节点作为待检测节点添加至待检测节点列表中。再一种具体实现中,服务器在执行步骤s11时,也可从至少一个健康检查地址所对应的指定节点中,获取历史节点状态为健康状态的可用指定节点;并将获取到的可用指定节点作为待检测节点添加至所述待检测节点列表中。需要说明的是,此处的历史节点状态是指在前一次对指定节点进行检测后所确定的节点状态,例如服务器在执行步骤s11之前已对指定节点a进行了4次检测,则指定节点a的历史节点状态是指第4次对指定节点a进行检测后所确定的节点状态。
在一种可选的实施方式中,若获取到的可用指定节点的数量小于数量阈值,则还可获取目标业务服务在接口网关中的注册信息,该注册信息可包括:至少一个服务地址。其次,根据至少一个服务地址确定目标业务服务的备用节点列表;备用节点列表中包括至少一个备用节点,该备用节点是指至少一个服务地址中除健康检查地址以外的其他服务地址所对应的节点。然后,可从备用节点列表中获取历史节点状态为健康状态的可用备用节点,并将获取到的可用备用节点作为待检测节点添加至待检测节点列表中。再一种可选的实施方式中,若至少一个健康检查地址服务地址所对应的指定节点中不存在可用指定节点,且备用节点列表中不存在可用备用节点,则可表明在前一检测周期探测目标业务服务的可用性时,目标业务服务的各个节点均出现了故障,导致各个节点的节点状态均为非健康状态。但是由于在本次检测周期中,目标业务服务的各个节点可能已经消除了故障,即各个节点可能已经恢复了健康;因此在此情况下,服务器可将各个服务地址所对应的节点均作为待检测节点添加至待检测节点列表中。
s12,从待检测节点列表中选取一个待检测节点作为目标待检测节点。
在一种具体实现中,可从待检测节点列表中筛选出当前检测周期内还未被检测的待检测节点,并从筛选出的待检测节点中随机选取一个待检测节点作为目标待检测节点。再一种具体实现中,也可从待检测节点列表中依序选取一个当前检测周期内还未被检测的待检测节点作为目标待检测节点。
S502,调用拨测服务对应的拨测节点向目标待检测节点发送服务请求,该服务请求用于指示拨测服务欲调用目标业务服务。
S503,获取目标待检测节点针对服务请求的响应结果,并根据响应结果确定目标待检测节点的当前节点状态。
S504,根据目标待检测节点的当前节点状态,更新目标待检测节点的非健康计数。
由前述可知,目标待检测节点的当前节点状态可包括健康状态或者非健康状态。若目标待检测节点的当前节点状态为健康状态,则表明此时的目标待检测节点可正常提供目标业务服务,因此可将目标待检测节点的非健康计数更新为无效数值;此处的无效数值可根据经验值或者业务需求设置,例如可设置无效数值为0。或者,若目标待检测节点的当前节点状态为健康状态,则也可对目标待检测节点的非健康计数进行减一处理;此处的减一处理是指在当前的非健康计数的基础上减去数值“1”的处理。例如,设无效数值为0,且在执行步骤S503和步骤S504之前,目标待检测节点的非健康计数为2。若通过执行步骤S503确定出目标待检测节点的当前节点状态为健康状态,则可将目标待检测节点的非健康计数从“2”更新为“0”或者,对目标待检测节点的非健康计数进行减一处理,使得目标待检测节点的非健康计数从“2”更新为“1”。
若目标待检测节点的当前节点状态为非健康状态,则表明此时的目标待检测节点无法正常提供目标业务服务,因此可对目标待检测节点的非健康计数进行加一处理;此处的加一处理是指在当前的非健康计数的基础上增加数值“1”的处理。例如承接上述例子,仍设在执行步骤S503和步骤S504之前,目标待检测节点的非健康计数为2。若通过执行步骤S503确定出目标待检测节点的当前节点状态为非健康状态,则可对目标待检测节点的非健康计数进行加一处理,使得目标待检测节点的非健康计数从“2”更新为“3”。
应理解的是,本发明实施例对于步骤S504只是示例性地列举出了几种实施方式,并非穷举。例如在其他实施例中,若目标待检测节点的当前节点状态为健康状态,则可对目标待检测节点的非健康计数进行减X处理;X的取值大于1。若目标待检测节点的当前节点状态为非健康状态,则可对目标待检测节点的非健康计数进行加Y处理;Y的取值大于X。
还应理解的是,本发明实施例只是以目标待检测节点为例进行阐述的;在探测目标业务服务的可用性的实际过程中,服务器可将上述步骤S501-S504所示的方法步骤封装成一个健康检测函数,并利用该健康检测函数依次将目标业务服务的各个待检测节点的非健康计数进行更新,其可一并参见图6所示。
S505,若更新后的非健康计数大于或等于数值阈值,则将目标待检测节点作为故障节点添加至故障节点列表。
S506,若更新后的非健康计数小于数值阈值,则将目标待检测节点作为健康节点添加至健康节点列表。
在步骤S505-S506中,数值阈值可根据经验值或者业务需求设置。例如,可设置数值阈值为1;也就是说,若更新后的非健康计数大于或等于1,则将目标待检测节点作为故障节点添加至故障节点列表;否则,则将目标待检测节点作为健康节点添加至健康节点列表。在此情况下,只要检测到目标待检测节点的当前节点状态为非健康状态,则可将该目标待检测节点作为故障节点添加至故障节点列表中。又如,可设置数值阈值为M,M的取值大于1;也就是说,若更新后的非健康计数大于或等于M,则将目标待检测节点作为故障节点添加至故障节点列表;否则,则将目标待检测节点作为健康节点添加至健康节点列表。在此情况下,需连续M次检测到目标待检测节点的节点状态为非健康状态,才可将目标待检测节点作为故障节点添加至故障节点列表,这样可有效提升检测的准确性。
另外由前述可知:若步骤S504中所涉及的无效数值为0,则无论数值阈值的取值为1还是M,只要检测到目标待检测节点的当前节点状态为健康状态,目标待检测节点的非健康计数则会更新为0;那么更新后的非健康计数必然小于数值阈值,此时的目标待检测节点可作为健康节点被添加至健康节点列表中;采用这样的方式可使得即使目标待检测节点在前一检测周期内处于非健康状态,但只要在本次检测周期内恢复成了健康状态,便可实时地将该目标待检测节点恢复成健康节点,以便于实际的业务请求过来时该目标待检测节点可以正常被调用。
在一种可选的实施方式中,若目标待检测节点位于故障节点列表中,则服务器还可获取目标待检测节点在故障节点列表中的存储时长;此处的存储时长是指目标待检测节点作为故障节点添加至故障节点列表中的时间和当前系统时间之间的间隔时长。若存储时长大于预设时长,则表明目标待检测节点出现故障的时间较长,无法正常提供目标业务服务;因此可从故障节点列表中剔除目标待检测节点,并禁止目标待检测节点提供目标业务服务。其中,预设时长可根据经验值或者业务需求设置,例如可设置预设时长为1小时,或者设置预设时长等于n倍检测周期,n为正整数。
本发明实施例可为用户提供一个配置界面,以支持用户通过配置界面自定义目标业务服务的健康检测规则,提升了服务检测的灵活性;相应的,在检测到关于目标业务服务的检测触发事件时,通过根据目标业务服务的健康检测规则确定用于提供目标业务服务的目标待检测节点,可使得服务检测更具针对性。并且,通过在接口网关中注册一个拨测服务,可实现主动调用拨测服务对应的拨测节点向目标待检测节点发送服务请求,并根据目标待检测节点针对服务请求的响应结果确定目标待检测节点的当前节点状态;从而使得可通过主动检测目标待检测节点的节点状态来及时获知目标业务服务的可用性,有效提升了服务检测的及时性和检测效率。
需要说明的是,图5所示的步骤S501-S506描述了在用户自定义设置目标业务服务的健康检测规则后,服务器通过接口网关对目标业务服务的目标待检测节点进行拨测,并在目标待检测节点为故障节点的情况下,将该目标待检测节点进行剔除和恢复的过程。在探测目标服务服务的可用性的实际过程中,服务器可迭代重复执行步骤S501-S506,即可依次将目标业务服务所对应的各个待检测节点均作为目标待检测节点进行检测,从而使得可及时对目标业务服务所对应的各个待检测节点进行剔除或恢复处理,得到本次检测周期的故障节点列表和健康节点列表。基于此,本发明实施例还提出了如图7所示的服务检测方法;参见图7所示,该服务检测方法可包括以下步骤S701-S713:
S701,响应关于目标业务服务的检测触发事件,根据健康检测规则获取与目标服务业务相关联的待检测节点列表,该待检测节点列表中包括至少一个待检测节点。
在具体实现中,健康检测规则包括:目标业务服务的至少一个健康检查地址;相应的,步骤S701的具体实施方式可以是:从至少一个健康检查地址所对应的指定节点中,获取历史节点状态为健康状态的可用指定节点;将获取到的可用指定节点作为待检测节点添加至待检测节点列表中。可选的,还可判断获取到的可用指定节点的数量是否小于数量阈值;若获取到的可用指定节点的数量小于数量阈值,则还可从备用节点列表中获取历史节点状态为健康状态的可用备用节点,并将获取到的可用备用节点作为待检测节点添加至待检测节点列表中。需要说明的是,若至少一个健康检查地址服务地址所对应的指定节点中不存在可用指定节点,且备用节点列表中不存在可用备用节点,则将各个服务地址所对应的节点均作为待检测节点添加至待检测节点列表中。
S702,依次遍历待检测节点列表,并判断待检测节点列表是否为空。
需要说明的是,此处的判断待检测节点列表是否为空是指:判断待检测节点列表中的各待检测节点是否均已被检测。若待检测节点列表中的各待检测节点均已被检测,则可确定待检测节点列表为空,此时可结束本流程。若待检测节点列表中存在未被检测的待检测节点,则可确定待检测节点列表不为空,此时可执行步骤S703-S713。
S703,从待检测节点列表中选取一个未被检测的待检测节点作为目标待检测节点。
S704,调用拨测服务对应的拨测节点向目标待检测节点发送服务请求,该服务请求用于指示拨测服务欲调用目标业务服务。
S705,获取目标待检测节点针对服务请求的响应结果;响应结果包括服务请求的请求结果,请求结果用于指示请求成功或请求失败。
S706,根据响应结果中的请求结果判断请求目标待检测节点是否成功。
S707,若请求结果指示请求成功,则确定目标待检测节点的当前节点状态为健康状态。
S708,若请求结果指示请求失败,则检测响应报错信息是否为自定义错误信息。
S709,若响应报错信息是自定义错误信息,则确定目标待检测节点的当前节点状态为非健康状态;否则,则确定目标待检测节点为健康状态。
S710,根据目标待检测节点的当前节点状态,更新目标待检测节点的非健康计数。
S711,判断更新后的非健康计数是否小于数值阈值。
S712,若更新后的非健康计数小于数值阈值,则将目标待检测节点作为健康节点添加至健康节点列表。
S713,若更新后的非健康计数大于或等于数值阈值,则将目标待检测节点作为故障节点添加至故障节点列表。可选的,还可获取目标待检测节点在故障节点列表中的存储时长,并判断存储时长是否大于预设时长;若存储时长大于预设时长,则从故障节点列表中剔除目标待检测节点,并禁止目标待检测节点提供目标业务服务。
在一种可选的实施例中,在接收到服务调用方发送的业务请求时,服务器还可根据故障节点列表和健康节点列表及时且灵活地给出节点调用策略,以确保业务请求可正常被响应,从而保证业务正常运作。其中,节点调用策略可至少包括如下三种实施方式:
实施方式一:服务器若接收到服务调用方发送的业务请求,则可先从健康节点列表中获取目标健康节点;具体的,可直接从健康节点列表中随机选取一个或多个健康节点作为目标健康节点,或者从健康节点列表中选取未曾被添加至故障节点列表中的健康节点作为目标健康节点。然后,可将业务请求转发至目标健康节点,以使得目标健康节点为服务调用方提供目标业务服务。例如,目标业务服务共有2个待检测节点,分别是节点a和节点b;且设在本次检测周期(检测时间为t)中,节点a作为故障节点被添加至故障节点列表中,节点b作为健康节点被添加至健康节点列表。那么,若接收到服务调用方发送的业务请求的时间大于t,则可优先选择节点b来提供目标业务服务。应理解的是,虽然在本次检测周期内节点a为故障节点,但是服务器可通过接口网关根据目标业务服务的健康检测规则持续对节点a进行检测;若节点a在时间T时恢复成健康状态,即节点a在时间T时恢复成健康节点,那么在下一次接收到业务请求时,则可平等地向面向节点a和节点b去转发请求,以确保业务请求能够被响应。
实施方式二:服务器还可对该故障节点列表和健康节点列表进行存档和分析处理;比如可根据故障节点列表和健康节点列表分析得到目标业务服务常见的故障节点有哪些、一般发生在什么阶段、影响面有多大、节点从故障节点恢复成健康节点所需的恢复时长等分析信息。这些分析信息可以协助预测目标业务服务后续可能出现故障的故障节点,以便于后续在接收到针对目标业务服务的业务请求时,可优先推出能够被正常访问(即正常调用)的健康节点。基于此,服务器若接收到服务调用方发送的业务请求,则可根据分析信息预测目标业务服务的疑似故障节点,并从目标服务服务对应的所有节点中除疑似故障节点以外的节点中选取目标健康节点,并将业务请求转发至目标健康节点,以使得目标健康节点为服务调用方提供目标业务服务。
其中,根据故障节点列表分析得到目标业务服务常见的故障节点的实施方式可包括:将故障节点列表中非健康计数大于预设数值的故障节点作为常见的故障节点。或者故障节点列表中节点状态为非健康状态的次数大于次数阈值的故障节点作为常见的故障节点;例如,设次数阈值为2,且总共经历了4次检测周期;若节点a在第1次检测周期中的节点状态为非健康状态,在第2次检测周期中的节点状态为健康状态,但在第3-4次检测周期中的节点状态又为非健康状态,那么节点a的节点状态为非健康状态的次数为3(即大于2),因此可将节点a作为常见的故障节点。根据故障节点列表和健康节点列表分析得到,目标业务服务的节点从故障节点恢复成健康节点所需的恢复时长的实施方式可包括:针对在发生故障后又恢复健康的任一节点,可获取该任一节点作为故障节点被添加至故障节点列表的第一时刻,以及该任一节点作为健康节点被添加至健康节点列表的第二时刻,计算第一时刻和第二时刻之间的差值,得到该任一节点从故障节点恢复成健康节点所需的恢复时长。
其中,根据分析信息预测目标业务服务的疑似故障节点的具体实施方式可以包括以下方式中的一种或多种:第一种方式:直接将目标业务服务的常见的故障节点作为疑似故障节点。第二种方式:针对故障节点列表中的任一故障节点,从分析信息中获取该任一故障节点的恢复时长;若接收到业务请求的时间和该任一故障节点被添加至故障节点列表的时间之间的间隔时长小于获取到的恢复时长,则将该任一故障节点作为疑似故障节点。例如,设故障节点r被添加至故障节点列表中的时间为15点30分00秒,该故障节点r的恢复时长为1分钟;若接收到业务请求的时间为15点30分30秒,则由于15点30分00秒和15点30分30秒之间的间隔时长为30秒(即小于恢复时长),因此可将故障节点r作为疑似故障节点。
实施方式三:服务器若接收到服务调用方发送的业务请求,则可先从健康节点列表中选取目标健康节点。若健康节点列表为空,则会导致从健康节点列表中选取目标健康节点失败;此情况下,可根据分析信息预测目标业务服务的疑似健康节点,并从疑似健康节点中选取目标健康节点,并将业务请求转发至目标健康节点,以使得目标健康节点为服务调用方提供目标业务服务。其中,根据分析信息预测目标业务服务的疑似健康节点的具体实施方式可以包括:针对故障节点列表中的任一故障节点,从分析信息中获取该任一故障节点的恢复时长;若接收到业务请求的时间和该任一故障节点被添加至故障节点列表的时间之间的间隔时长大于或等于获取到的恢复时长,则将该任一故障节点作为疑似健康节点。例如,设故障节点f被添加至故障节点列表中的时间为15点30分00秒,该故障节点f的恢复时长为1分钟;若接收到业务请求的时间为15点31分00秒,则由于15点30分00秒和15点31分00秒之间的间隔时长为1分钟(即等于恢复时长),因此可将故障节点f作为疑似健康节点。
由此可见,采用本发明实施例的服务探测方法可以实时地对目标业务服务的可用性进行判断,确保在服务调用方需调用目标业务服务被调用时,至少存在一个节点为健康节点可提供该目标业务服务,以防服务调用方因无法调用目标业务服务而导致终端用户无法享用目标业务服务的情况。
基于上述服务检测方法实施例的描述,本发明实施例还公开了一种服务检测装置,该服务检测装置可以执行图4至图7所示的方法。所述服务检测装置可以是运行于服务器中的一个计算机程序(包括程序代码);所述服务器中部署有接口网关,所述接口网关中注册有拨测服务和至少一个业务服务。请参见图8,所述装置可以运行如下单元:
处理单元801,用于响应关于目标业务服务的检测触发事件,根据所述目标业务服务的健康检测规则确定用于提供所述目标业务服务的目标待检测节点;所述健康检测规则是根据在配置界面中检测到的针对所述目标业务服务的配置操作生成的;
通信单元802,用于调用所述拨测服务对应的拨测节点向所述目标待检测节点发送服务请求,所述服务请求用于指示所述拨测服务欲调用所述目标业务服务;
所述处理单元801,还用于获取所述目标待检测节点针对所述服务请求的响应结果,并根据所述响应结果确定所述目标待检测节点的当前节点状态,所述当前节点状态包括健康状态或者非健康状态。
在一种实施方式中,所述响应结果包括所述服务请求的请求结果,所述请求结果用于指示请求成功或请求失败;相应的,处理单元801在用于根据所述响应结果确定所述目标待检测节点的当前节点状态时,可具体用于:
若所述请求结果指示请求成功,则确定所述目标待检测节点的当前节点状态为所述健康状态;
若所述请求结果指示请求失败,则确定所述目标待检测节点的当前节点状态为所述非健康状态。
再一种实施方式中,当所述请求结果指示请求失败时,所述响应结果还包括响应报错信息;相应的,处理单元801在用于若所述请求结果指示请求失败,则确定所述目标待检测节点的当前节点状态为所述非健康状态时,可具体用于:
若所述请求结果指示请求失败,则检测所述响应报错信息是否为自定义错误信息;所述自定义错误信息包括以下至少一项:系统错误代码和所述系统错误代码所对应的异常状态码,所述系统错误代码包括:用于表示服务请求被拒绝的错误代码、用于表示服务请求不可达的错误代码、或者用于表示服务请求超时的错误代码;
若是,则确定所述目标待检测节点的当前节点状态为所述非健康状态;否则,则确定所述目标待检测节点为所述健康状态。
再一种实施方式中,处理单元801还可用于:
根据所述目标待检测节点的当前节点状态,更新所述目标待检测节点的非健康计数;
若更新后的非健康计数大于或等于数值阈值,则将所述目标待检测节点作为故障节点添加至故障节点列表;
若更新后的非健康计数小于所述数值阈值,则将所述目标待检测节点作为健康节点添加至健康节点列表。
再一种实施方式中,处理单元801在用于根据所述目标待检测节点的当前节点状态,更新所述目标待检测节点的非健康计数时,可具体用于:
若所述目标待检测节点的当前节点状态为所述健康状态,则将所述目标待检测节点的非健康计数更新为无效数值;
若所述目标待检测节点的当前节点状态为所述非健康状态,则对所述目标待检测节点的非健康计数进行加一处理。
再一种实施方式中,所述目标待检测节点位于所述故障节点列表中;相应的,处理单元801还可用于:
获取所述目标待检测节点在所述故障节点列表中的存储时长;
若所述存储时长大于预设时长,则从所述故障节点列表中剔除所述目标待检测节点,并禁止所述目标待检测节点提供所述目标业务服务。
再一种实施方式中,处理单元801还可用于:
若接收到服务调用方发送的业务请求,则从所述健康节点列表中获取目标健康节点;
将所述业务请求转发至所述目标健康节点,以使得所述目标健康节点为所述服务调用方提供所述目标业务服务。
再一种实施方式中,处理单元801在用于根据所述健康检测规则确定用于提供所述目标业务服务的目标待检测节点时,可具体用于:
根据所述健康检测规则获取与所述目标服务业务相关联的待检测节点列表,所述待检测节点列表中包括至少一个待检测节点;
从所述待检测节点列表中选取一个待检测节点作为所述目标待检测节点。
再一种实施方式中,所述健康检测规则包括:所述目标业务服务的至少一个健康检查地址;相应的,处理单元801在用于获取与所述目标业务服务相关联的待检测节点列表时,可具体用于:
从所述至少一个健康检查地址所对应的指定节点中,获取历史节点状态为健康状态的可用指定节点;
将获取到的可用指定节点作为待检测节点添加至所述待检测节点列表中。
再一种实施方式中,处理单元801还可用于:
若获取到的可用指定节点的数量小于数量阈值,则获取所述目标业务服务在所述接口网关中的注册信息,所述注册信息包括:至少一个服务地址;
根据所述至少一个服务地址确定所述目标业务服务的备用节点列表;所述备用节点列表中包括至少一个备用节点,所述备用节点是指所述至少一个服务地址中除所述健康检查地址以外的其他服务地址所对应的节点;
从所述备用节点列表中获取历史节点状态为健康状态的可用备用节点,并将获取到的可用备用节点作为待检测节点添加至所述待检测节点列表中。
再一种实施方式中,处理单元801还可用于:
若所述至少一个健康检查地址服务地址所对应的指定节点中不存在所述可用指定节点,且所述备用节点列表中不存在所述可用备用节点,则将各个服务地址所对应的节点均作为待检测节点添加至所述待检测节点列表中。
再一种实施方式中,所述健康检测规则包括检测周期,所述检测触发事件包括所述目标业务服务的检测周期到达事件;相应的,处理单元801还可用于:
获取当前系统时间,以及前一次对所述目标业务服务进行健康检测的历史检测时间;
若所述当前系统时间和所述历史检测时间之间的间隔时长等于所述检测周期所指示的时长,则确定检测到关于所述目标业务服务的检测周期到达事件。
根据本发明的一个实施例,图4至图7所示的方法所涉及的各个步骤均可以是由图8所示的服务检测装置中的各个单元来执行的。例如,图2中所示的步骤S201和S203-S204均可由图8中所示的处理单元801来执行,步骤S202可由图8中所示的通信单元802来执行;又如,图5中所示的步骤S501和S503-S506均可由图8中所示的处理单元801来执行,步骤S502可由图8中所示的通信单元802来执行;再如,图6所示的各个步骤均可由图8中所示的处理单元802来执行;再如,图7中所示的步骤S701-S703和S705-S713均可由图8中所示的处理单元801来执行,步骤S704可由图8中所示的通信单元802来执行,等等。
根据本发明的另一个实施例,图8所示的服务检测装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,基于服务检测装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本发明的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图4至图7中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图8中所示的服务检测装置设备,以及来实现本发明实施例的服务检测方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
本发明实施例可为用户提供一个配置界面,以支持用户通过配置界面自定义目标业务服务的健康检测规则,提升了服务检测的灵活性;相应的,在检测到关于目标业务服务的检测触发事件时,通过根据目标业务服务的健康检测规则确定用于提供目标业务服务的目标待检测节点,可使得服务检测更具针对性。并且,通过在接口网关中注册一个拨测服务,可实现主动调用拨测服务对应的拨测节点向目标待检测节点发送服务请求,并根据目标待检测节点针对服务请求的响应结果确定目标待检测节点的当前节点状态;从而使得可通过主动检测目标待检测节点的节点状态来及时获知目标业务服务的可用性,有效提升了服务检测的及时性和检测效率。
基于上述服务检测方法实施例以及服务检测装置实施例的描述,本发明实施例还提供一种服务器。请参见图9,该服务器至少包括处理器901、输入接口902、输出接口903以及计算机存储介质904;且服务器内的处理器901、输入接口902、输出接口903以及计算机存储介质904可通过总线或其他方式连接。另外,该服务器中还部署有接口网关905,该接口网关中注册有拨测服务和至少一个业务服务。
计算机存储介质904可以存储在服务器的存储器中,所述计算机存储介质904用于存储计算机程序,所述计算机程序包括程序指令,所述处理器901用于执行所述计算机存储介质904存储的程序指令。处理器901(或称CPU(Central Processing Unit,中央处理器))是服务器的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能;在一个实施例中,本发明实施例所述的处理器901可以用于对目标业务服务进行一系列的服务检测处理,包括:响应关于目标业务服务的检测触发事件,根据所述目标业务服务的健康检测规则确定用于提供所述目标业务服务的目标待检测节点;所述健康检测规则是根据在配置界面中检测到的针对所述目标业务服务的配置操作生成的;调用所述拨测服务对应的拨测节点向所述目标待检测节点发送服务请求,所述服务请求用于指示所述拨测服务欲调用所述目标业务服务;获取所述目标待检测节点针对所述服务请求的响应结果,并根据所述响应结果确定所述目标待检测节点的当前节点状态,所述当前节点状态包括健康状态或者非健康状态,等等。
本发明实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质是服务器中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括服务器中的内置存储介质,当然也可以包括服务器所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了服务器的操作系统。并且,在该存储空间中还存放了适于被处理器901加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。
在一个实施例中,可由处理器901加载并执行计算机存储介质中存放的一条或多条第一指令,以实现上述有关服务检测方法实施例中的相应方法步骤;具体实现中,计算机存储介质中的一条或多条第一指令由处理器901加载并执行如下步骤:
响应关于目标业务服务的检测触发事件,根据所述目标业务服务的健康检测规则确定用于提供所述目标业务服务的目标待检测节点;所述健康检测规则是根据在配置界面中检测到的针对所述目标业务服务的配置操作生成的;
调用所述拨测服务对应的拨测节点向所述目标待检测节点发送服务请求,所述服务请求用于指示所述拨测服务欲调用所述目标业务服务;
获取所述目标待检测节点针对所述服务请求的响应结果,并根据所述响应结果确定所述目标待检测节点的当前节点状态,所述当前节点状态包括健康状态或者非健康状态。
在一种实施方式中,所述响应结果包括所述服务请求的请求结果,所述请求结果用于指示请求成功或请求失败;相应的,在根据所述响应结果确定所述目标待检测节点的当前节点状态时,所述一条或多条第一指令可由处理器901加载并具体执行:
若所述请求结果指示请求成功,则确定所述目标待检测节点的当前节点状态为所述健康状态;
若所述请求结果指示请求失败,则确定所述目标待检测节点的当前节点状态为所述非健康状态。
再一种实施方式中,当所述请求结果指示请求失败时,所述响应结果还包括响应报错信息;相应的,在若所述请求结果指示请求失败,则确定所述目标待检测节点的当前节点状态为所述非健康状态时,所述一条或多条第一指令可由处理器901加载并具体执行:
若所述请求结果指示请求失败,则检测所述响应报错信息是否为自定义错误信息;所述自定义错误信息包括以下至少一项:系统错误代码和所述系统错误代码所对应的异常状态码,所述系统错误代码包括:用于表示服务请求被拒绝的错误代码、用于表示服务请求不可达的错误代码、或者用于表示服务请求超时的错误代码;
若是,则确定所述目标待检测节点的当前节点状态为所述非健康状态;否则,则确定所述目标待检测节点为所述健康状态。
再一种实施方式中,所述一条或多条第一指令还可由处理器901加载并具体执行:
根据所述目标待检测节点的当前节点状态,更新所述目标待检测节点的非健康计数;
若更新后的非健康计数大于或等于数值阈值,则将所述目标待检测节点作为故障节点添加至故障节点列表;
若更新后的非健康计数小于所述数值阈值,则将所述目标待检测节点作为健康节点添加至健康节点列表。
再一种实施方式中,在根据所述目标待检测节点的当前节点状态,更新所述目标待检测节点的非健康计数时,所述一条或多条第一指令可由处理器901加载并具体执行:
若所述目标待检测节点的当前节点状态为所述健康状态,则将所述目标待检测节点的非健康计数更新为无效数值;
若所述目标待检测节点的当前节点状态为所述非健康状态,则对所述目标待检测节点的非健康计数进行加一处理。
再一种实施方式中,所述目标待检测节点位于所述故障节点列表中;相应的,所述一条或多条第一指令还可由处理器901加载并具体执行:
获取所述目标待检测节点在所述故障节点列表中的存储时长;
若所述存储时长大于预设时长,则从所述故障节点列表中剔除所述目标待检测节点,并禁止所述目标待检测节点提供所述目标业务服务。
再一种实施方式中,所述一条或多条第一指令还可由处理器901加载并具体执行:
若接收到服务调用方发送的业务请求,则从所述健康节点列表中获取目标健康节点;
将所述业务请求转发至所述目标健康节点,以使得所述目标健康节点为所述服务调用方提供所述目标业务服务。
再一种实施方式中,在根据所述健康检测规则确定用于提供所述目标业务服务的目标待检测节点时,所述一条或多条第一指令可由处理器901加载并具体执行:
根据所述健康检测规则获取与所述目标服务业务相关联的待检测节点列表,所述待检测节点列表中包括至少一个待检测节点;
从所述待检测节点列表中选取一个待检测节点作为所述目标待检测节点。
再一种实施方式中,所述健康检测规则包括:所述目标业务服务的至少一个健康检查地址;相应的,在获取与所述目标业务服务相关联的待检测节点列表时,所述一条或多条第一指令可由处理器901加载并具体执行:
从所述至少一个健康检查地址所对应的指定节点中,获取历史节点状态为健康状态的可用指定节点;
将获取到的可用指定节点作为待检测节点添加至所述待检测节点列表中。
再一种实施方式中,所述一条或多条第一指令还可由处理器901加载并具体执行:
若获取到的可用指定节点的数量小于数量阈值,则获取所述目标业务服务在所述接口网关中的注册信息,所述注册信息包括:至少一个服务地址;
根据所述至少一个服务地址确定所述目标业务服务的备用节点列表;所述备用节点列表中包括至少一个备用节点,所述备用节点是指所述至少一个服务地址中除所述健康检查地址以外的其他服务地址所对应的节点;
从所述备用节点列表中获取历史节点状态为健康状态的可用备用节点,并将获取到的可用备用节点作为待检测节点添加至所述待检测节点列表中。
再一种实施方式中,所述一条或多条第一指令还可由处理器901加载并具体执行:
若所述至少一个健康检查地址服务地址所对应的指定节点中不存在所述可用指定节点,且所述备用节点列表中不存在所述可用备用节点,则将各个服务地址所对应的节点均作为待检测节点添加至所述待检测节点列表中。
再一种实施方式中,所述健康检测规则包括检测周期,所述检测触发事件包括所述目标业务服务的检测周期到达事件;相应的,所述一条或多条第一指令还可由处理器901加载并具体执行:
获取当前系统时间,以及前一次对所述目标业务服务进行健康检测的历史检测时间;
若所述当前系统时间和所述历史检测时间之间的间隔时长等于所述检测周期所指示的时长,则确定检测到关于所述目标业务服务的检测周期到达事件。
本发明实施例可为用户提供一个配置界面,以支持用户通过配置界面自定义目标业务服务的健康检测规则,提升了服务检测的灵活性;相应的,在检测到关于目标业务服务的检测触发事件时,通过根据目标业务服务的健康检测规则确定用于提供目标业务服务的目标待检测节点,可使得服务检测更具针对性。并且,通过在接口网关中注册一个拨测服务,可实现主动调用拨测服务对应的拨测节点向目标待检测节点发送服务请求,并根据目标待检测节点针对服务请求的响应结果确定目标待检测节点的当前节点状态;从而使得可通过主动检测目标待检测节点的节点状态来及时获知目标业务服务的可用性,有效提升了服务检测的及时性和检测效率。
基于上述规则配置方法实施例的描述,本发明实施例还公开了一种规则配置装置,所述规则配置装置可以是运行于客户端中的一个计算机程序(包括程序代码)。所述客户端与服务器进行通信,所述服务器中部署有接口网关,所述接口网关中注册有拨测服务和至少一个业务服务。该规则配置装置可以执行图2所示的方法。请参见图10,所述规则配置装置可以运行如下单元:
显示单元1001,用于响应于针对目标业务服务的配置触发操作,显示配置界面;
处理单元1002,用于从所述配置界面中获取针对所述目标业务服务的配置操作,并根据所述配置操作生成所述目标业务服务的健康检测规则;
发送单元1003,用于将所述健康检测规则发送至所述服务器,以使得所述服务器根据所述健康检测规则执行图4-图7所示的服务检测方法。
在一种实施方式中,所述配置界面中至少包括地址设置区域;所述配置操作包括在所述地址设置区域设置健康检测地址的操作;相应的,处理单元1002在用于根据所述配置操作生成所述目标业务服务的健康检测规则时,具体用于:
根据所述配置操作获取所述目标业务服务的至少一个健康检测地址;
将获取到的至少一个健康检测地址添加至所述目标业务服务的健康检测规则中。
根据本发明的一个实施例,图2所示的方法所涉及的各个步骤均可以是由图10所示的规则配置装置中的各个单元来执行的。具体的,图2中所示的步骤S201-S203可以分别由图10中所示的显示单元1001、处理单元1002和发送单元1003来执行。
根据本发明的另一个实施例,图10所示的规则配置装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,基于规则配置装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本发明的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图10中所示的规则配置装置设备,以及来实现本发明实施例的规则配置方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
本发明实施例可为用户提供一个配置界面,以支持用户通过配置界面自定义目标业务服务的健康检测规则,提升了服务检测的灵活性。并且,由于健康检测规则中可包括健康检测地址,这样可使得服务器在检测到关于目标业务服务的检测触发事件时,可通过根据目标业务服务的健康检测规则确定用于提供目标业务服务的目标待检测节点,可使得服务检测更具针对性。
基于上述方法实施例以及装置实施例的描述,本发明实施例还提供一种客户端;所述客户端与服务器进行通信,所述服务器中部署有接口网关,所述接口网关中注册有拨测服务和至少一个业务服务。请参见图11,该客户端至少包括处理器1101、输入接口1102、输出接口1103以及计算机存储介质1104。其中,计算机存储介质1104用于存储计算机程序,所述计算机程序包括程序指令,所述处理器1101用于执行所述计算机存储介质1104存储的程序指令。需要说明的是,若客户端为终端设备,则处理器1101可以是CPU(CentralProcessing Unit,中央处理器),计算机存储介质1104可直接存储在客户端的存储器中。若客户端为终端设备中所运行的APP,则处理器1101可以是微处理器,计算机存储介质1104可存储在该客户端所在的终端设备的存储器中。
处理器1101是客户端的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能;在一个实施例中,本发明实施例所述的处理器1101可以用于对目标业务服务进行一系列的规则配置处理,包括:响应于针对目标业务服务的配置触发操作,显示配置界面;从所述配置界面中获取针对所述目标业务服务的配置操作,并根据所述配置操作生成所述目标业务服务的健康检测规则;将所述健康检测规则发送至所述服务器,以使得所述服务器根据所述健康检测规则执行如图4-图7所示的服务检测方法,等等。
本发明实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括客户端中的内置存储介质,当然也可以包括客户端所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了客户端的操作系统。并且,在该存储空间中还存放了适于被处理器1101加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。
在一个实施例中,可由处理器1101加载并执行计算机存储介质中存放的一条或多条第二指令,以实现上述有关规则配置实施例中的方法的相应步骤;具体实现中,计算机存储介质中的一条或多条第二指令由处理器1101加载并执行如下步骤:
响应于针对目标业务服务的配置触发操作,显示配置界面;
从所述配置界面中获取针对所述目标业务服务的配置操作,并根据所述配置操作生成所述目标业务服务的健康检测规则;
将所述健康检测规则发送至所述服务器,以使得所述服务器根据所述健康检测规则执行图4-图7所示的服务检测方法。
在一种实施方式中,所述配置界面中至少包括地址设置区域;所述配置操作包括在所述地址设置区域设置健康检测地址的操作;相应的,在根据所述配置操作生成所述目标业务服务的健康检测规则时,所述一条或多条第二指令由处理器1101加载并具体执行:
根据所述配置操作获取所述目标业务服务的至少一个健康检测地址;
将获取到的至少一个健康检测地址添加至所述目标业务服务的健康检测规则中。
本发明实施例可为用户提供一个配置界面,以支持用户通过配置界面自定义目标业务服务的健康检测规则,提升了服务检测的灵活性。并且,由于健康检测规则中可包括健康检测地址,这样可使得服务器在检测到关于目标业务服务的检测触发事件时,可通过根据目标业务服务的健康检测规则确定用于提供目标业务服务的目标待检测节点,可使得服务检测更具针对性。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (17)
1.一种服务检测方法,其特征在于,所述方法应用于服务器,所述服务器中部署有接口网关,所述接口网关中注册有拨测服务和至少一个业务服务;所述拨测服务用于模拟实际的服务调用过程,向待检测节点发送服务请求;所述方法包括:
响应关于目标业务服务的检测触发事件,根据所述目标业务服务的健康检测规则确定用于提供所述目标业务服务的目标待检测节点;所述健康检测规则是根据在配置界面中检测到的针对所述目标业务服务的配置操作生成的;所述目标业务服务是在所述接口网关中新注册的任一业务服务,或者是已在所述接口网关中注册过的所述至少一个业务服务中的任一业务服务;
调用所述拨测服务对应的拨测节点向所述目标待检测节点发送服务请求,所述服务请求用于指示所述拨测服务欲调用所述目标业务服务;
获取所述目标待检测节点针对所述服务请求的响应结果,并根据所述响应结果确定所述目标待检测节点的当前节点状态,所述当前节点状态包括健康状态或者非健康状态;
根据所述目标待检测节点的当前节点状态,更新所述目标待检测节点的非健康计数;若更新后的非健康计数大于或等于数值阈值,则将所述目标待检测节点作为故障节点添加至故障节点列表;若更新后的非健康计数小于所述数值阈值,则将所述目标待检测节点作为健康节点添加至健康节点列表;
对所述故障节点列表和所述健康节点列表进行分析,得到分析信息;若接收到服务调用方发送的业务请求,则根据所述分析信息预测所述目标业务服务的疑似故障节点,并从所述目标业务服务对应的所有节点中除所述疑似故障节点以外的节点中选取目标健康节点;以及,将所述业务请求转发至所述目标健康节点,以使所述目标健康节点为所述服务调用方提供所述目标业务服务。
2.如权利要求1所述的方法,其特征在于,所述响应结果包括所述服务请求的请求结果,所述请求结果用于指示请求成功或请求失败;所述根据所述响应结果确定所述目标待检测节点的当前节点状态,包括:
若所述请求结果指示请求成功,则确定所述目标待检测节点的当前节点状态为所述健康状态;
若所述请求结果指示请求失败,则确定所述目标待检测节点的当前节点状态为所述非健康状态。
3.如权利要求2所述的方法,其特征在于,当所述请求结果指示请求失败时,所述响应结果还包括响应报错信息;所述若所述请求结果指示请求失败,则确定所述目标待检测节点的当前节点状态为所述非健康状态,包括:
若所述请求结果指示请求失败,则检测所述响应报错信息是否为自定义错误信息;所述自定义错误信息包括以下至少一项:系统错误代码和所述系统错误代码所对应的异常状态码,所述系统错误代码包括:用于表示服务请求被拒绝的错误代码、用于表示服务请求不可达的错误代码、或者用于表示服务请求超时的错误代码;
若是,则确定所述目标待检测节点的当前节点状态为所述非健康状态;否则,则确定所述目标待检测节点为所述健康状态。
4.如权利要求1所述的方法,其特征在于,所述根据所述目标待检测节点的当前节点状态,更新所述目标待检测节点的非健康计数,包括:
若所述目标待检测节点的当前节点状态为所述健康状态,则将所述目标待检测节点的非健康计数更新为无效数值;
若所述目标待检测节点的当前节点状态为所述非健康状态,则对所述目标待检测节点的非健康计数进行加一处理。
5.如权利要求1所述的方法,其特征在于,所述目标待检测节点位于所述故障节点列表中,所述方法还包括:
获取所述目标待检测节点在所述故障节点列表中的存储时长;
若所述存储时长大于预设时长,则从所述故障节点列表中剔除所述目标待检测节点,并禁止所述目标待检测节点提供所述目标业务服务。
6.如权利要求1所述的方法,其特征在于,所述分析信息用于指示所述目标业务服务常见的故障节点;所述根据所述分析信息预测所述目标业务服务的疑似故障节点,包括:
将所述目标业务服务常见的故障节点,作为所述目标业务服务的疑似故障节点;
或者,针对所述故障节点列表中的任一故障节点,从所述分析信息中获取所述任一故障节点的恢复时长;若接收到业务请求的时间与所述任一故障节点被添加至所述故障节点列表的时间之间的时间间隔,小于获取到的恢复时长,则将所述任一故障节点作为所述目标业务服务的疑似故障节点。
7.如权利要求1所述的方法,其特征在于,所述根据所述健康检测规则确定用于提供所述目标业务服务的目标待检测节点,包括:
根据所述健康检测规则获取与所述目标服务业务相关联的待检测节点列表,所述待检测节点列表中包括至少一个待检测节点;
从所述待检测节点列表中选取一个待检测节点作为所述目标待检测节点。
8.如权利要求7所述的方法,其特征在于,所述健康检测规则包括:所述目标业务服务的至少一个健康检查地址;所述获取与所述目标业务服务相关联的待检测节点列表,包括:
从所述至少一个健康检查地址所对应的指定节点中,获取历史节点状态为健康状态的可用指定节点;
将获取到的可用指定节点作为待检测节点添加至所述待检测节点列表中。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
若获取到的可用指定节点的数量小于数量阈值,则获取所述目标业务服务在所述接口网关中的注册信息,所述注册信息包括:至少一个服务地址;
根据所述至少一个服务地址确定所述目标业务服务的备用节点列表;所述备用节点列表中包括至少一个备用节点,所述备用节点是指所述至少一个服务地址中除所述健康检查地址以外的其他服务地址所对应的节点;
从所述备用节点列表中获取历史节点状态为健康状态的可用备用节点,并将获取到的可用备用节点作为待检测节点添加至所述待检测节点列表中。
10.如权利要求9所述的方法,其特征在于,所述方法还包括:
若所述至少一个健康检查地址服务地址所对应的指定节点中不存在所述可用指定节点,且所述备用节点列表中不存在所述可用备用节点,则将各个服务地址所对应的节点均作为待检测节点添加至所述待检测节点列表中。
11.一种健康检测规则的配置方法,其特征在于,所述方法由客户端执行,所述客户端与服务器进行通信,所述服务器中部署有接口网关,所述接口网关中注册有拨测服务和至少一个业务服务;所述拨测服务用于模拟实际的服务调用过程,向待检测节点发送服务请求;所述方法包括:
响应于针对目标业务服务的配置触发操作,显示配置界面;
从所述配置界面中获取针对所述目标业务服务的配置操作,并根据所述配置操作生成所述目标业务服务的健康检测规则;
将所述健康检测规则发送至所述服务器,以使得所述服务器根据所述健康检测规则执行如权1-10任一项所述的服务检测方法。
12.如权利要求11所述的方法,其特征在于,所述配置界面中至少包括地址设置区域;所述配置操作包括在所述地址设置区域设置健康检测地址的操作;所述根据所述配置操作生成所述目标业务服务的健康检测规则,包括:
根据所述配置操作获取所述目标业务服务的至少一个健康检测地址;
将获取到的至少一个健康检测地址添加至所述目标业务服务的健康检测规则中。
13.一种服务检测装置,其特征在于,所述服务检测装置运行于服务器中;所述服务器中部署有接口网关,所述接口网关中注册有拨测服务和至少一个业务服务;所述拨测服务用于模拟实际的服务调用过程,向待检测节点发送服务请求;所述服务检测装置包括:
处理单元,用于响应关于目标业务服务的检测触发事件,根据所述目标业务服务的健康检测规则确定用于提供所述目标业务服务的目标待检测节点;所述健康检测规则是根据在配置界面中检测到的针对所述目标业务服务的配置操作生成的;所述目标业务服务是在所述接口网关中新注册的任一业务服务,或者是已在所述接口网关中注册过的所述至少一个业务服务中的任一业务服务;
通信单元,用于调用所述拨测服务对应的拨测节点向所述目标待检测节点发送服务请求,所述服务请求用于指示所述拨测服务欲调用所述目标业务服务;
所述处理单元,还用于获取所述目标待检测节点针对所述服务请求的响应结果,并根据所述响应结果确定所述目标待检测节点的当前节点状态,所述当前节点状态包括健康状态或者非健康状态;
所述处理单元,还用于根据所述目标待检测节点的当前节点状态,更新所述目标待检测节点的非健康计数;若更新后的非健康计数大于或等于数值阈值,则将所述目标待检测节点作为故障节点添加至故障节点列表;若更新后的非健康计数小于所述数值阈值,则将所述目标待检测节点作为健康节点添加至健康节点列表;
所述处理单元,还用于对所述故障节点列表和所述健康节点列表进行分析,得到分析信息;若接收到服务调用方发送的业务请求,则根据所述分析信息预测所述目标业务服务的疑似故障节点,并从所述目标业务服务对应的所有节点中除所述疑似故障节点以外的节点中选取目标健康节点;以及,将所述业务请求转发至所述目标健康节点,以使所述目标健康节点为所述服务调用方提供所述目标业务服务。
14.一种健康检测规则的配置装置,其特征在于,所述装置运行于客户端中,所述客户端与服务器进行通信,所述服务器中部署有接口网关,所述接口网关中注册有拨测服务和至少一个业务服务;所述拨测服务用于模拟实际的服务调用过程,向待检测节点发送服务请求;所述规则配置装置包括:
显示单元,用于响应于针对目标业务服务的配置触发操作,显示配置界面;
处理单元,用于从所述配置界面中获取针对所述目标业务服务的配置操作,并根据所述配置操作生成所述目标业务服务的健康检测规则;
发送单元,用于将所述健康检测规则发送至所述服务器,以使得所述服务器根据所述健康检测规则执行如权1-10任一项所述的服务检测方法。
15.一种服务器,包括输入接口和输出接口,其特征在于,所述服务器中部署有接口网关,所述接口网关中注册有拨测服务和至少一个业务服务;所述拨测服务用于模拟实际的服务调用过程,向待检测节点发送服务请求;所述服务器还包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条第一指令,所述一条或多条第一指令适于由所述处理器加载并执行如权利要求1-10任一项所述的服务检测方法。
16.一种客户端,包括输入接口和输出接口,其特征在于,所述客户端还包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条第二指令,所述一条或多条第二指令适于由所述处理器加载并执行如权利要求11或12所述的健康检测规则的配置方法。
17.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一条或多条第一指令,所述一条或多条第一指令适于由处理器加载并执行如权利要求1-10任一项所述的服务检测方法;或者,所述计算机存储介质存储有一条或多条第二指令,所述一条或多条第二指令适于由处理器加载并执行如权利要求11或12所述的健康检测规则的配置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010309472.0A CN111404759B (zh) | 2020-04-17 | 2020-04-17 | 服务检测方法、规则配置方法、相关设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010309472.0A CN111404759B (zh) | 2020-04-17 | 2020-04-17 | 服务检测方法、规则配置方法、相关设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111404759A CN111404759A (zh) | 2020-07-10 |
CN111404759B true CN111404759B (zh) | 2022-03-04 |
Family
ID=71414089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010309472.0A Active CN111404759B (zh) | 2020-04-17 | 2020-04-17 | 服务检测方法、规则配置方法、相关设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111404759B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111600769A (zh) * | 2020-07-27 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 站点检测方法和装置及存储介质 |
CN112148508B (zh) * | 2020-09-30 | 2024-08-16 | 深圳市晨北科技有限公司 | 一种信息处理的方法及相关装置 |
CN112311679B (zh) * | 2020-10-28 | 2023-07-28 | 北京水滴科技集团有限公司 | 状态检测方法、装置、电子设备及可读存储介质 |
CN113312234B (zh) * | 2021-05-18 | 2022-07-26 | 福建天泉教育科技有限公司 | 一种健康检测的优化方法及终端 |
CN115842637A (zh) * | 2021-08-30 | 2023-03-24 | 青岛海尔科技有限公司 | 控制请求的发送方法和装置、存储介质及电子装置 |
CN114328156B (zh) * | 2021-12-28 | 2023-06-16 | 苏州万店掌网络科技有限公司 | 协议端口的健康检测方法、装置、设备及可读存储介质 |
CN114666242A (zh) * | 2022-03-14 | 2022-06-24 | 北京计算机技术及应用研究所 | 一种高效的基于api网关的服务健康检查方法 |
CN114629783B (zh) * | 2022-03-14 | 2024-03-26 | 上海英方软件股份有限公司 | 状态监控方法、系统、设备及计算机可读存储介质 |
CN114760235B (zh) * | 2022-04-24 | 2024-03-22 | 青岛海尔科技有限公司 | 拨测任务的执行方法及装置、存储介质、电子装置 |
CN115514663B (zh) * | 2022-09-23 | 2023-10-27 | 北京奇艺世纪科技有限公司 | 一种拨测方法、系统、装置、电子设备及存储介质 |
CN115883405B (zh) * | 2022-11-25 | 2024-10-11 | 上海浦东发展银行股份有限公司 | 一种服务检测系统 |
CN116775364B (zh) * | 2023-08-16 | 2023-12-05 | 中国电子信息产业集团有限公司第六研究所 | 一种应用服务健康管理方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9772920B2 (en) * | 2015-04-29 | 2017-09-26 | Apollo Education Group, Inc. | Dynamic service fault detection and recovery using peer services |
CN107612727A (zh) * | 2017-09-14 | 2018-01-19 | 掌阅科技股份有限公司 | 分布式健康检查方法、计算设备及计算机存储介质 |
CN109873713A (zh) * | 2018-12-28 | 2019-06-11 | 华中科技大学 | 用于位置服务的无中心化服务集群系统及故障检测方法 |
CN110543368A (zh) * | 2019-09-06 | 2019-12-06 | 西藏宁算科技集团有限公司 | 一种分布式服务健康检查的方法及其系统 |
CN110581855A (zh) * | 2019-09-12 | 2019-12-17 | 中国工商银行股份有限公司 | 应用控制方法、装置、电子设备和计算机可读存储介质 |
CN110730197A (zh) * | 2018-07-17 | 2020-01-24 | 北京京东尚科信息技术有限公司 | 一种服务发现方法和系统 |
CN110851311A (zh) * | 2019-11-12 | 2020-02-28 | 深圳前海微众银行股份有限公司 | 服务故障的识别方法、装置、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9503341B2 (en) * | 2013-09-20 | 2016-11-22 | Microsoft Technology Licensing, Llc | Dynamic discovery of applications, external dependencies, and relationships |
CN109739726A (zh) * | 2018-12-29 | 2019-05-10 | 阿里巴巴集团控股有限公司 | 一种健康检查方法、装置及电子设备 |
CN110430071A (zh) * | 2019-07-19 | 2019-11-08 | 云南电网有限责任公司信息中心 | 业务节点故障自愈方法、装置、计算机设备及存储介质 |
-
2020
- 2020-04-17 CN CN202010309472.0A patent/CN111404759B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9772920B2 (en) * | 2015-04-29 | 2017-09-26 | Apollo Education Group, Inc. | Dynamic service fault detection and recovery using peer services |
CN107612727A (zh) * | 2017-09-14 | 2018-01-19 | 掌阅科技股份有限公司 | 分布式健康检查方法、计算设备及计算机存储介质 |
CN110730197A (zh) * | 2018-07-17 | 2020-01-24 | 北京京东尚科信息技术有限公司 | 一种服务发现方法和系统 |
CN109873713A (zh) * | 2018-12-28 | 2019-06-11 | 华中科技大学 | 用于位置服务的无中心化服务集群系统及故障检测方法 |
CN110543368A (zh) * | 2019-09-06 | 2019-12-06 | 西藏宁算科技集团有限公司 | 一种分布式服务健康检查的方法及其系统 |
CN110581855A (zh) * | 2019-09-12 | 2019-12-17 | 中国工商银行股份有限公司 | 应用控制方法、装置、电子设备和计算机可读存储介质 |
CN110851311A (zh) * | 2019-11-12 | 2020-02-28 | 深圳前海微众银行股份有限公司 | 服务故障的识别方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111404759A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111404759B (zh) | 服务检测方法、规则配置方法、相关设备及介质 | |
US11269718B1 (en) | Root cause detection and corrective action diagnosis system | |
KR102151862B1 (ko) | 서비스 처리 방법 및 장치 | |
CN103201724B (zh) | 在高可用性虚拟机环境中提供高可用性应用程序 | |
US9806902B2 (en) | Scalable framework for monitoring machine-to-machine (M2M) devices | |
CN112073398B (zh) | 消息队列的处理方法、装置和系统、存储介质和电子装置 | |
CN109743358A (zh) | 异步消息接口熔断控制方法、装置、计算机设备及存储介质 | |
EP3085023B1 (en) | Communications security | |
CN108234475A (zh) | 账号管理方法、电子设备及计算机存储介质 | |
CN111078507A (zh) | 数据监控方法、系统、计算机设备和存储介质 | |
US20160065428A1 (en) | Scalable framework for monitoring and managing network devices | |
CN106034138A (zh) | 一种远程服务调用方法及装置 | |
CN104836696B (zh) | 一种ip地址的检测方法及装置 | |
CN106663041A (zh) | 从系统故障恢复基于云的服务的易用性 | |
CN110213071B (zh) | 数据核对方法、装置、系统、计算机设备和存储介质 | |
CN108898014A (zh) | 一种病毒查杀方法、服务器及电子设备 | |
CN111600769A (zh) | 站点检测方法和装置及存储介质 | |
US20170031740A1 (en) | Naming of nodes in net framework | |
CN112200680B (zh) | 区块链节点管理方法、装置、计算机以及可读存储介质 | |
CN107426012B (zh) | 一种基于超融合架构的故障恢复方法及其装置 | |
CN117909143A (zh) | 项目数据的处理方法和装置、存储介质及电子设备 | |
CN107203915B (zh) | 数据存储方法及装置 | |
CN115580658A (zh) | 一种服务访问方法及装置、存储介质及电子设备 | |
CN115242621A (zh) | 网络专线监控方法、装置、设备及计算机可读存储介质 | |
CN103713982B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40026277 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |