CN111158987B - 微服务架构的健康检查方法及装置 - Google Patents
微服务架构的健康检查方法及装置 Download PDFInfo
- Publication number
- CN111158987B CN111158987B CN201911403735.8A CN201911403735A CN111158987B CN 111158987 B CN111158987 B CN 111158987B CN 201911403735 A CN201911403735 A CN 201911403735A CN 111158987 B CN111158987 B CN 111158987B
- Authority
- CN
- China
- Prior art keywords
- health
- health check
- component
- service
- micro
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
本申请实施例提供一种微服务架构的健康检查方法及装置,方法包括:调取目标微服务架构系统对应的健康检查组件,其中,所述健康检查组件包括预设的健康检查核心组件和接收到的用户自定义的可插拔健康检查组件;应用所述健康检查组件对所述目标微服务架构系统对应的各个目标服务组件分别进行健康检查,得到各个所述目标服务组件各自对应的健康检查结果;判断各个所述目标服务组件各自对应的健康检查结果是否均符合预设健康条件,若是,则基于预设的调度规则对各个所述目标服务组件进行调度处理。本申请能够采用无侵入方式有效实现对微服务架构系统中的服务组件的健康检查,以有效减少针对现有系统的代码改造。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及微服务架构的健康检查方法及装置。
背景技术
服务的高可用对微服务架构提出越来越高的要求,而服务健康检查功能则是基本功能,自动恢复和扩容都依赖服务健康检查与监控。在各个服务部署版本或联调测试过程中,因为没有对服务组件进行是否准备好对外提供服务的测试,而无法保证各自依赖的服务可用。这样给开发、测试以及运维人员排查问题带来很大的挑战。尤其当服务数量很大时,问题很难定位。
目前,若要对服务组件进行是否准备好对外提供服务的测试,则需要对现有的代码框架进行升级修改,且该类升级修改的工作量较大。
发明内容
针对现有技术中的问题,本申请提供一种微服务架构的健康检查方法及装置,能够采用无侵入方式有效实现对微服务架构系统中的服务组件的健康检查,以有效减少针对现有系统的代码改造。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种微服务架构的健康检查方法,包括:
调取目标微服务架构系统对应的健康检查组件,其中,所述健康检查组件包括预设的健康检查核心组件和接收到的用户自定义的可插拔健康检查组件;
应用所述健康检查组件对所述目标微服务架构系统对应的各个目标服务组件分别进行健康检查,得到各个所述目标服务组件各自对应的健康检查结果;
判断各个所述目标服务组件各自对应的健康检查结果是否均符合预设健康条件,若是,则基于预设的调度规则对各个所述目标服务组件进行调度处理。
进一步地,所述调取对应的健康检查组件,包括:
在目标微服务架构系统启动时,加载并初始化所述健康检查核心组件,以及,加载所述用户自定义的可插拔健康检查组件。
进一步地,所述调取对应的健康检查组件,包括:
在目标微服务架构系统的运行过程中,调取所述健康检查核心组件和所述用户自定义的可插拔健康检查组件。
进一步地,所述应用所述健康检查组件对所述目标微服务架构系统对应的各个目标服务组件分别进行健康检查,包括:
应用所述健康检查组件,对所述目标微服务架构系统对应的中间组件以及项目中暴露的需要进行健康检查的各个接口组件分别进行健康检查。
进一步地,在所述得到各个所述目标服务组件各自对应的健康检查结果之后,还包括:
若任一所述目标服务组件的健康检查结果表示该目标服务组件当前可用,则将其对应的健康信息状态标注为当前可用状态;
若任一所述目标服务组件的健康检查结果表示该目标服务组件当前不可用,则将其对应的健康信息状态标注为当前不可用状态。
进一步地,还包括:
存储各个所述目标服务组件各自对应的健康信息。
进一步地,所述判断各个所述目标服务组件各自对应的健康检查结果是否均符合预设健康条件,包括:
调取各个所述目标服务组件各自对应的健康信息;
基于各个所述目标服务组件各自对应的健康信息,判断各个所述目标服务组件是否均处于当前可用状态。
第二方面,本申请提供一种微服务架构的健康检查装置,包括:
健康检查组件调取模块,用于调取目标微服务架构系统对应的健康检查组件,其中,所述健康检查组件包括预设的健康检查核心组件和接收到的用户自定义的可插拔健康检查组件;
健康检查模块,用于应用所述健康检查组件对所述目标微服务架构系统对应的各个目标服务组件分别进行健康检查,得到各个所述目标服务组件各自对应的健康检查结果;
调度处理模块,用于判断各个所述目标服务组件各自对应的健康检查结果是否均符合预设健康条件,若是,则基于预设的调度规则对各个所述目标服务组件进行调度处理。
进一步地,所述健康检查组件调取模块包括:
第一健康检查组件调取单元,用于在目标微服务架构系统启动时,加载并初始化所述健康检查核心组件,以及,加载所述用户自定义的可插拔健康检查组件。
进一步地,所述健康检查组件调取模块包括:
第二健康检查组件调取单元,用于在目标微服务架构系统的运行过程中,调取所述健康检查核心组件和所述用户自定义的可插拔健康检查组件。
进一步地,所述健康检查模块包括:
健康检查单元,用于应用所述健康检查组件,对所述目标微服务架构系统对应的中间组件以及项目中暴露的需要进行健康检查的各个接口组件分别进行健康检查。
进一步地,还包括:
可用状态标注模块,用于若任一所述目标服务组件的健康检查结果表示该目标服务组件当前可用,则将其对应的健康信息状态标注为当前可用状态;
不可用状态标注模块,用于若任一所述目标服务组件的健康检查结果表示该目标服务组件当前不可用,则将其对应的健康信息状态标注为当前不可用状态。
进一步地,还包括:
健康信息模块,用于存储各个所述目标服务组件各自对应的健康信息。
进一步地,所述调度处理模块包括:
健康信息调取单元,用于调取各个所述目标服务组件各自对应的健康信息;
可用状态判断单元,用于基于各个所述目标服务组件各自对应的健康信息,判断各个所述目标服务组件是否均处于当前可用状态。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的微服务架构的健康检查方法的步骤。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的微服务架构的健康检查方法的步骤。
由上述技术方案可知,本申请提供的一种微服务架构的健康检查方法及装置,方法包括:调取目标微服务架构系统对应的健康检查组件,其中,所述健康检查组件包括预设的健康检查核心组件和接收到的用户自定义的可插拔健康检查组件;应用所述健康检查组件对所述目标微服务架构系统对应的各个目标服务组件分别进行健康检查,得到各个所述目标服务组件各自对应的健康检查结果;判断各个所述目标服务组件各自对应的健康检查结果是否均符合预设健康条件,若是,则基于预设的调度规则对各个所述目标服务组件进行调度处理,能够采用无侵入方式有效实现对微服务架构系统中的服务组件的健康检查,并且能够有效减少针对现有系统的代码改造,同时还能够按照自定义的健康检查策略进行检查,进而能够有效保证启动并注册到服务中心的服务是可用的,以有效提高系统的可靠性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中的微服务架构的健康检查方法的流程示意图。
图2为本申请实施例中的包含有步骤400和步骤500的微服务架构的健康检查方法的流程示意图。
图3为本申请实施例中的包含有步骤600的微服务架构的健康检查方法的流程示意图。
图4为本申请实施例中的微服务架构的健康检查方法中步骤300的具体流程示意图。
图5为本申请实施例中的微服务架构的健康检查装置的结构示意图。
图6为本申请实施例中的包含有可用状态标注模块40和不可用状态标注模块50的微服务架构的健康检查装置的结构示意图。
图7为本申请实施例中的包含有健康信息模块60的微服务架构的健康检查装置的结构示意图。
图8为本申请实施例中的微服务架构的健康检查装置中调度处理模块30的结构示意图。
图9为本申请实施例中的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,新的spring框架spring boot已集成健康检查组件,但其只做LivenessCheck,并没有进行Readiness Check,并且框架较新,需要升级现有的系统。也就是说,现有的技术方案,服务启动或运行过程没有做相应的Readiness Check,导致注册到服务中心的服务可能存活但不可用,不能及早发现并解决问题,同时,若要对现有的系统做升级修改,则会大幅增加升级修改的工作量及难度。
本申请在服务启动或运行过程,根据自定义的健康检查策略对该服务进行检查,保证注册到服务中心的服务是健康可用以保证系统高可用。在原有代码基础上增加一组接口,用户可以实现该接口完成自定义的健康检查策略。在Spring容器启动完成之后初始化上送接口bean,并调用相应的检查逻辑,实现健康检查。也就是说,本申请提供的微服务架构的健康检查装置采用配置无侵入方式在服务启动的过程中,按照自定义的健康检查策略进行检查,不需要对现有的代码框架进行大的修改和升级。
在本申请的一个或多个实施例中,微服务架构或微服务架构系统是指:微服务架构的一种设计风格,是一种将单个应用程序作为一套小型服务开发的方法,每种应用程序都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)进行通信。这些服务是围绕业务功能构建的,可以通过全自动部署机制独立部署。
在本申请的一个或多个实施例中,Liveness Check是指:是健康检查的一种机制,Liveness判断服务是否需要重启来实现自愈。
在本申请的一个或多个实施例中,Readiness Check是指:是健康检查的另一种机制,Readiness判断服务是否准备好对外提供服务。
在本申请的一个或多个实施例中,健康检查组件是用户根据预先获取的业务逻辑文件编写的一套健康检查组件。根据要暴露服务内部的实现逻辑,以及需要依赖外部的服务来组装健康检查组件。
在本申请的一个或多个实施例中,所述目标服务组件具体可以为一种银行交易系统中的各个相关服务组件,可以具体包含有目标微服务架构系统对应的中间组件以及项目中暴露的需要进行健康检查的各个接口组件。
其中,中间组件是指微服务中依赖的三方组件,如Redis等。
为了有效实现对微服务架构系统中的服务组件的健康检查,并且能够有效减少针对现有系统的代码改造,本申请提供一种微服务架构的健康检查方法的实施例,参见图1,所述微服务架构的健康检查方法具体包含有如下内容:
步骤100:调取目标微服务架构系统对应的健康检查组件,其中,所述健康检查组件包括预设的健康检查核心组件和接收到的用户自定义的可插拔健康检查组件。
在步骤100的一种具体实现方式中,所述步骤100具体可以为:在目标微服务架构系统启动时,加载并初始化所述健康检查核心组件,以及,加载所述用户自定义的可插拔健康检查组件。
在步骤100的另一种具体实现方式中,所述步骤100具体可以为:在目标微服务架构系统的运行过程中,调取所述健康检查核心组件和所述用户自定义的可插拔健康检查组件。
在步骤100的第三种具体实现方式中,所述步骤100具体可以为:在目标微服务架构系统启动时以及在目标微服务架构系统的运行过程中,调取所述健康检查核心组件和所述用户自定义的可插拔健康检查组件。
步骤200:应用所述健康检查组件对所述目标微服务架构系统对应的各个目标服务组件分别进行健康检查,得到各个所述目标服务组件各自对应的健康检查结果。
具体来说,微服务架构的健康检查装置具体可以应用所述健康检查组件,对所述目标微服务架构系统对应的中间组件以及项目中暴露的需要进行健康检查的各个接口组件分别进行健康检查。
步骤300:判断各个所述目标服务组件各自对应的健康检查结果是否均符合预设健康条件,若是,则基于预设的调度规则对各个所述目标服务组件进行调度处理。
为了有效提高健康检查结果的获取可靠性,在本申请的微服务架构的健康检查方法的一个实施例中,参见图2,所述微服务架构的健康检查方法的步骤200之后以及步骤300之前,还具体包含有如下内容:
步骤400:若任一所述目标服务组件的健康检查结果表示该目标服务组件当前可用,则将其对应的健康信息状态标注为当前可用状态。
步骤500:若任一所述目标服务组件的健康检查结果表示该目标服务组件当前不可用,则将其对应的健康信息状态标注为当前不可用状态。
为了有效提高健康信息的应用可靠性,在本申请的微服务架构的健康检查方法的一个实施例中,参见图3,所述微服务架构的健康检查方法的步骤400级步骤500之后还具体包含有如下内容:
步骤600:存储各个所述目标服务组件各自对应的健康信息。
为了进一步提高健康检查结果判断过程的准确性和可靠性,在本申请的微服务架构的健康检查方法的一个实施例中,参见图4,所述微服务架构的健康检查方法的步骤300具体包含有如下内容:
步骤301:调取各个所述目标服务组件各自对应的健康信息。
步骤302:基于各个所述目标服务组件各自对应的健康信息,判断各个所述目标服务组件是否均处于当前可用状态。
从软件层面来说,为了采用无侵入方式有效实现对微服务架构系统中的服务组件的健康检查,并且能够有效减少针对现有系统的代码改造,本申请提供一种用于实现所述微服务架构的健康检查方法的全部或部分内容的微服务架构的健康检查装置的实施例,参见图5,所述微服务架构的健康检查装置具体包含有如下内容:
健康检查组件调取模块10,用于调取目标微服务架构系统对应的健康检查组件,其中,所述健康检查组件包括预设的健康检查核心组件和接收到的用户自定义的可插拔健康检查组件;
健康检查模块20,用于应用所述健康检查组件对所述目标微服务架构系统对应的各个目标服务组件分别进行健康检查,得到各个所述目标服务组件各自对应的健康检查结果;
调度处理模块30,用于判断各个所述目标服务组件各自对应的健康检查结果是否均符合预设健康条件,若是,则基于预设的调度规则对各个所述目标服务组件进行调度处理。
在健康检查组件调取模块10的一种具体实现方式中,所述健康检查组件调取模块10具体可以包含有:
第一健康检查组件调取单元,用于在目标微服务架构系统启动时,加载并初始化所述健康检查核心组件,以及,加载所述用户自定义的可插拔健康检查组件。
第二健康检查组件调取单元,用于在目标微服务架构系统的运行过程中,调取所述健康检查核心组件和所述用户自定义的可插拔健康检查组件。
具体来说,健康检查模块20具体包含有:
健康检查单元,用于应用所述健康检查组件,对所述目标微服务架构系统对应的中间组件以及项目中暴露的需要进行健康检查的各个接口组件分别进行健康检查。
为了有效提高健康检查结果的获取可靠性,在本申请的微服务架构的健康检查装置的一个实施例中,参见图6,所述微服务架构的健康检查装置还具体包含有如下内容:
可用状态标注模块40,用于若任一所述目标服务组件的健康检查结果表示该目标服务组件当前可用,则将其对应的健康信息状态标注为当前可用状态。
不可用状态标注模块50,用于若任一所述目标服务组件的健康检查结果表示该目标服务组件当前不可用,则将其对应的健康信息状态标注为当前不可用状态。
为了有效提高健康信息的应用可靠性,在本申请的微服务架构的健康检查装置的一个实施例中,参见图7,所述微服务架构的健康检查装置还具体包含有如下内容:
健康信息模块60,用于存储各个所述目标服务组件各自对应的健康信息。
为了进一步提高健康检查结果判断过程的准确性和可靠性,在本申请的微服务架构的健康检查装置的一个实施例中,参见图8,所述微服务架构的健康检查装置的调度处理模块30具体包含有如下内容:
健康信息调取单元31,用于调取各个所述目标服务组件各自对应的健康信息。
可用状态判断单元32,用于基于各个所述目标服务组件各自对应的健康信息,判断各个所述目标服务组件是否均处于当前可用状态。
为进一步地说明本方案,本申请还提供应用前述实施例提供的微服务架构的健康检查装置实现的微服务架构的健康检查方法的具体应用实例,为减少现有的代码的改造,该微服务架构的健康检查装置采用配置无侵入方式在服务启动的过程中,按照自定义的健康检查策略进行检查,保证启动并注册到服务中心的服务是可用的,具体包含有如下内容:
节点模块(Node Module):包含该节点需要进行健康检查项目包含进行健康检查的项目节点,使用注解对暴露的需要检查的接口进行标识(如@Readiness)。
健康信息模块(Health Info Module):包含检查该节点的健康信息,如果暴露的被检查接口能够提供服务(如获取随机数接口,能够正常返回,则为健康的),标识为UP,否则为DOWN。
健康检查模块(Health Check Module):具体实现节点健康检查,实现了一套基于接口的基本的健康检查逻辑(如@Readiness注解解析器等)。用户可以自定义实现和业务相关的复杂的健康检查逻辑(如开户业务中,调用银联联网核查接口正常,则为健康状态,标识为UP)。
其中:节点模块中包含健康检查模块配置的具体项目,检查结果存放在健康信息模块。项目启动时,健康检查模块就会自动扫描节点模块,收集健康信息,存放于健康信息模块,以此判断是否将接口服务注册到注册中心。该装置的核心是健康检查模块,首先,通过Spring的@Resource注解实现健康检查模块核心类(如调度、@Readiness注解解析器等)加载和初始化。然后,加载实现健康检查接口的用户自定义类实现可插拔扩展(用户只要实现相应接口,并存放到指定的lib目录下就可以完成自动加载和健康检查)。
步骤1、微服务中间件健康检查,即微服务中依赖的三方组件,如Redis等。首先,在spring容器启动时,通过@Resource注解加载健康检查模块(Health Check Module)的核心类。然后,继续加载用户自定义的健康检查类。健康检查模块(Health Check Module)完成三方组件的健康信息收集(如Redis是否可用),并存放到健康信息模块(Health InfoModule)。如果健康,标识为UP,否则为DOWN。
步骤2、自定义微服务组件健康检查,即项目中暴露的需要进行健康检查的接口组件。健康检查模块(Health Check Module)。在spring容器启动时扫描并完成标注了@Readiness节点模块(Node Module)的获取该服务组件以及所依赖组件实例的健康信息,如果健康,标示为UP,否则,为DOWN,并将这些健康信息保存到健康信息模块(Health InfoModule)。保证所有的组件的Health为UP状态。
步骤3、微服务中中间件和应用的健康检查。获取微服务中涉及的中间件和应用服务的健康信息,保证所有的组件Health为UP状态。
步骤4、健康检查之后的回调处理调度处理。步骤1至3服务组件健康检查通过后,健康检查模块中核心调度类,统计健康检查模块中自定义组件调用链中所有组件的健康信息,当健康信息都为UP时,完成调度执行相应的回调处理,将该组件注册到相应的服务注册中心。如二三类开户逻辑,要对开户接口进行健康检查。要完成开户,需要进行用户信息查询、与核心比对,联网核查、人脸识别等,只有保证上面每一支接口可用,才能将开户组件(接口)注册到注册中心,自定义时间间隔的心跳检测等,保证服务可用。
其中的核心步骤为获取该服务组件以及所依赖组件实例的健康信息并根据业务逻辑编写一套健康检查组件。
本申请在现有的微服务框架中方便接入Readiness Check能力,并可以做自定义扩展。服务启动时对服务组件进行Readiness Check,只有检查通过后,才能将流量引入应用实例中。本装置不需要对现有的代码的框架做大的修改升级,只需要实现根据业务逻辑实现相应的健康检查组件即可实现服务的健康检查。
从硬件层面来说,为了能够采用无侵入方式有效实现对微服务架构系统中的服务组件的健康检查,并且能够有效减少针对现有系统的代码改造,本申请提供一种用于实现所述微服务架构的健康检查方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现电子设备与用户终端以及相关数据库等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例中的微服务架构的健康检查方法的实施例,以及,微服务架构的健康检查装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图9为本申请实施例的电子设备9600的系统构成的示意框图。如图9所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图9是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在一实施例中,微服务架构的健康检查功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
步骤100:调取目标微服务架构系统对应的健康检查组件,其中,所述健康检查组件包括预设的健康检查核心组件和接收到的用户自定义的可插拔健康检查组件。
步骤200:应用所述健康检查组件对所述目标微服务架构系统对应的各个目标服务组件分别进行健康检查,得到各个所述目标服务组件各自对应的健康检查结果。
步骤300:判断各个所述目标服务组件各自对应的健康检查结果是否均符合预设健康条件,若是,则基于预设的调度规则对各个所述目标服务组件进行调度处理。
从上述描述可知,本申请实施例提供的电子设备,能够采用无侵入方式有效实现对微服务架构系统中的服务组件的健康检查,并且能够有效减少针对现有系统的代码改造,同时还能够按照自定义的健康检查策略进行检查,进而能够有效保证启动并注册到服务中心的服务是可用的,以有效提高系统的可靠性。
在另一个实施方式中,微服务架构的健康检查装置可以与中央处理器9100分开配置,例如可以将微服务架构的健康检查装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现微服务架构的健康检查功能。
如图9所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图9中所示的所有部件;此外,电子设备9600还可以包括图9中没有示出的部件,可以参考现有技术。
如图9所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的微服务架构的健康检查方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的微服务架构的健康检查方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:调取目标微服务架构系统对应的健康检查组件,其中,所述健康检查组件包括预设的健康检查核心组件和接收到的用户自定义的可插拔健康检查组件。
步骤200:应用所述健康检查组件对所述目标微服务架构系统对应的各个目标服务组件分别进行健康检查,得到各个所述目标服务组件各自对应的健康检查结果。
步骤300:判断各个所述目标服务组件各自对应的健康检查结果是否均符合预设健康条件,若是,则基于预设的调度规则对各个所述目标服务组件进行调度处理。
从上述描述可知,本申请实施例提供的计算机可读存储介质,能够采用无侵入方式有效实现对微服务架构系统中的服务组件的健康检查,并且能够有效减少针对现有系统的代码改造,同时还能够按照自定义的健康检查策略进行检查,进而能够有效保证启动并注册到服务中心的服务是可用的,以有效提高系统的可靠性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (16)
1.一种微服务架构的健康检查方法,其特征在于,包括:
调取目标微服务架构系统对应的健康检查组件,其中,所述健康检查组件包括预设的健康检查核心组件和接收到的用户自定义的可插拔健康检查组件,所述健康检查组件是用户根据预先获取的业务逻辑文件编写的一套健康检查组件,具体包括:根据要暴露服务内部的实现逻辑,以及需要依赖外部的服务来组装健康检查组件;
应用所述健康检查组件对所述目标微服务架构系统对应的各个目标服务组件分别进行健康检查,得到各个所述目标服务组件各自对应的健康检查结果;
判断各个所述目标服务组件各自对应的健康检查结果是否均符合预设健康条件,若是,则基于预设的调度规则对各个所述目标服务组件进行调度处理。
2.根据权利要求1所述的微服务架构的健康检查方法,其特征在于,所述调取对应的健康检查组件,包括:
在目标微服务架构系统启动时,加载并初始化所述健康检查核心组件,以及,加载所述用户自定义的可插拔健康检查组件。
3.根据权利要求1或2所述的微服务架构的健康检查方法,其特征在于,所述调取对应的健康检查组件,包括:
在目标微服务架构系统的运行过程中,调取所述健康检查核心组件和所述用户自定义的可插拔健康检查组件。
4.根据权利要求1所述的微服务架构的健康检查方法,其特征在于,所述应用所述健康检查组件对所述目标微服务架构系统对应的各个目标服务组件分别进行健康检查,包括:
应用所述健康检查组件,对所述目标微服务架构系统对应的中间组件以及项目中暴露的需要进行健康检查的各个接口组件分别进行健康检查。
5.根据权利要求1所述的微服务架构的健康检查方法,其特征在于,在所述得到各个所述目标服务组件各自对应的健康检查结果之后,还包括:
若任一所述目标服务组件的健康检查结果表示该目标服务组件当前可用,则将其对应的健康信息状态标注为当前可用状态;
若任一所述目标服务组件的健康检查结果表示该目标服务组件当前不可用,则将其对应的健康信息状态标注为当前不可用状态。
6.根据权利要求5所述的微服务架构的健康检查方法,其特征在于,还包括:
存储各个所述目标服务组件各自对应的健康信息。
7.根据权利要求6所述的微服务架构的健康检查方法,其特征在于,所述判断各个所述目标服务组件各自对应的健康检查结果是否均符合预设健康条件,包括:
调取各个所述目标服务组件各自对应的健康信息;
基于各个所述目标服务组件各自对应的健康信息,判断各个所述目标服务组件是否均处于当前可用状态。
8.一种微服务架构的健康检查装置,其特征在于,包括:
健康检查组件调取模块,用于调取目标微服务架构系统对应的健康检查组件,其中,所述健康检查组件包括预设的健康检查核心组件和接收到的用户自定义的可插拔健康检查组件,所述健康检查组件是用户根据预先获取的业务逻辑文件编写的一套健康检查组件,具体包括:根据要暴露服务内部的实现逻辑,以及需要依赖外部的服务来组装健康检查组件;
健康检查模块,用于应用所述健康检查组件对所述目标微服务架构系统对应的各个目标服务组件分别进行健康检查,得到各个所述目标服务组件各自对应的健康检查结果;
调度处理模块,用于判断各个所述目标服务组件各自对应的健康检查结果是否均符合预设健康条件,若是,则基于预设的调度规则对各个所述目标服务组件进行调度处理。
9.根据权利要求8所述的微服务架构的健康检查装置,其特征在于,所述健康检查组件调取模块包括:
第一健康检查组件调取单元,用于在目标微服务架构系统启动时,加载并初始化所述健康检查核心组件,以及,加载所述用户自定义的可插拔健康检查组件。
10.根据权利要求8或9所述的微服务架构的健康检查装置,其特征在于,所述健康检查组件调取模块包括:
第二健康检查组件调取单元,用于在目标微服务架构系统的运行过程中,调取所述健康检查核心组件和所述用户自定义的可插拔健康检查组件。
11.根据权利要求8所述的微服务架构的健康检查装置,其特征在于,所述健康检查模块包括:
健康检查单元,用于应用所述健康检查组件,对所述目标微服务架构系统对应的中间组件以及项目中暴露的需要进行健康检查的各个接口组件分别进行健康检查。
12.根据权利要求8所述的微服务架构的健康检查装置,其特征在于,还包括:
可用状态标注模块,用于若任一所述目标服务组件的健康检查结果表示该目标服务组件当前可用,则将其对应的健康信息状态标注为当前可用状态;
不可用状态标注模块,用于若任一所述目标服务组件的健康检查结果表示该目标服务组件当前不可用,则将其对应的健康信息状态标注为当前不可用状态。
13.根据权利要求12所述的微服务架构的健康检查装置,其特征在于,还包括:
健康信息模块,用于存储各个所述目标服务组件各自对应的健康信息。
14.根据权利要求13所述的微服务架构的健康检查装置,其特征在于,所述调度处理模块包括:
健康信息调取单元,用于调取各个所述目标服务组件各自对应的健康信息;
可用状态判断单元,用于基于各个所述目标服务组件各自对应的健康信息,判断各个所述目标服务组件是否均处于当前可用状态。
15.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述的微服务架构的健康检查方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的微服务架构的健康检查方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911403735.8A CN111158987B (zh) | 2019-12-31 | 2019-12-31 | 微服务架构的健康检查方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911403735.8A CN111158987B (zh) | 2019-12-31 | 2019-12-31 | 微服务架构的健康检查方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111158987A CN111158987A (zh) | 2020-05-15 |
CN111158987B true CN111158987B (zh) | 2023-09-19 |
Family
ID=70559813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911403735.8A Active CN111158987B (zh) | 2019-12-31 | 2019-12-31 | 微服务架构的健康检查方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111158987B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021237612A1 (zh) * | 2020-05-28 | 2021-12-02 | 深圳市欢太科技有限公司 | 健康检查方法与装置、电子设备及存储介质 |
CN111698301A (zh) * | 2020-05-29 | 2020-09-22 | 成都新希望金融信息有限公司 | 一种保证服务延续的服务管理方法、装置及存储介质 |
CN112579392B (zh) * | 2020-12-21 | 2023-01-24 | 深圳云之家网络有限公司 | 应用检测方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870845A (zh) * | 2017-10-19 | 2018-04-03 | 北京工业大数据创新中心有限公司 | 面向微服务架构应用的管理方法及系统 |
CN108400904A (zh) * | 2018-01-26 | 2018-08-14 | 北京奇艺世纪科技有限公司 | 一种基于微服务架构的健康检查方法和装置 |
CN110324209A (zh) * | 2019-08-02 | 2019-10-11 | 泰康保险集团股份有限公司 | 微服务系统监控方法、装置、电子设备及计算机可读介质 |
CN110535902A (zh) * | 2019-07-16 | 2019-12-03 | 平安普惠企业管理有限公司 | 基于微服务实现监控智能化的处理方法及电子装置 |
CN110581855A (zh) * | 2019-09-12 | 2019-12-17 | 中国工商银行股份有限公司 | 应用控制方法、装置、电子设备和计算机可读存储介质 |
-
2019
- 2019-12-31 CN CN201911403735.8A patent/CN111158987B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870845A (zh) * | 2017-10-19 | 2018-04-03 | 北京工业大数据创新中心有限公司 | 面向微服务架构应用的管理方法及系统 |
CN108400904A (zh) * | 2018-01-26 | 2018-08-14 | 北京奇艺世纪科技有限公司 | 一种基于微服务架构的健康检查方法和装置 |
CN110535902A (zh) * | 2019-07-16 | 2019-12-03 | 平安普惠企业管理有限公司 | 基于微服务实现监控智能化的处理方法及电子装置 |
CN110324209A (zh) * | 2019-08-02 | 2019-10-11 | 泰康保险集团股份有限公司 | 微服务系统监控方法、装置、电子设备及计算机可读介质 |
CN110581855A (zh) * | 2019-09-12 | 2019-12-17 | 中国工商银行股份有限公司 | 应用控制方法、装置、电子设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111158987A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111158987B (zh) | 微服务架构的健康检查方法及装置 | |
CN107979508A (zh) | 微服务测试方法及装置 | |
CN110413528B (zh) | 测试环境智能配置方法及系统 | |
CN110209569B (zh) | 接口测试方法、接口测试装置及存储介质 | |
CN112463634B (zh) | 微服务架构下的软件测试方法及装置 | |
CN106648685B (zh) | 智能终端系统应用的处理方法、装置及智能终端 | |
CN111796860A (zh) | 微前端方案实现方法及装置 | |
CN107391362A (zh) | 应用测试方法、移动终端及存储介质 | |
CN108287789A (zh) | 批量自动化测试方法、装置及电子设备 | |
CN111813625B (zh) | 分布式服务器集群的健康检查方法及装置 | |
CN111897738A (zh) | 基于原子服务的自动化测试方法及装置 | |
CN115291946A (zh) | 鸿蒙系统移植方法、装置、电子设备及可读介质 | |
CN107733866A (zh) | Rpc请求、rpc请求处理方法、装置以及设备 | |
CN112363932B (zh) | 待测试业务对象的测试方法及装置、电子装置 | |
CN117640775A (zh) | 基于k8s集群的数据获取方法、装置、设备及介质 | |
CN111128139B (zh) | 无侵入式语音测试方法及装置 | |
CN112559346A (zh) | 一种业务测试的方法及装置 | |
CN107291637A (zh) | 在安卓系统中兼容多型号移动通信模块的方法和装置 | |
CN111930625A (zh) | 基于云服务平台的日志获取方法、装置及系统 | |
US10291498B1 (en) | Mobile communication device diagnostic client and error remediation sharing | |
CN111930626B (zh) | 基于PaaS云服务的自动化测试方法及装置 | |
CN114359464A (zh) | 一种基于glsl es的图像渲染方法及装置 | |
CN110245066B (zh) | 应用运行环境创建方法、创建装置、电子设备及存储介质 | |
CN105867961A (zh) | 系统升降级的方法和装置 | |
CN110851254A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |