CN116841902A - 健康状态检查方法、装置、设备及存储介质 - Google Patents
健康状态检查方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116841902A CN116841902A CN202310880970.4A CN202310880970A CN116841902A CN 116841902 A CN116841902 A CN 116841902A CN 202310880970 A CN202310880970 A CN 202310880970A CN 116841902 A CN116841902 A CN 116841902A
- Authority
- CN
- China
- Prior art keywords
- middleware
- connection state
- micro
- service
- state information
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000036541 health Effects 0.000 title claims abstract description 72
- 238000001514 detection method Methods 0.000 claims abstract description 97
- 238000007689 inspection Methods 0.000 claims abstract description 23
- 230000004044 response Effects 0.000 claims abstract description 23
- 230000003862 health status Effects 0.000 claims description 29
- 230000002159 abnormal effect Effects 0.000 claims description 27
- 230000005856 abnormality Effects 0.000 claims description 8
- 238000012512 characterization method Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 description 18
- 238000012423 maintenance Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000015654 memory Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000011161 development Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 8
- 238000012360 testing method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000003826 tablet Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种健康状态检查方法、装置、设备及存储介质,可以应用于大数据技术领域。该方法包括:在微服务架构系统中每个节点的每个微服务上配置检测接口,其中,微服务架构系统包括N个节点,每个节点包括M个微服务,N和M均为大于等于2的整数;响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,获取每个微服务连接的中间件的连接状态信息;以及根据所有中间件的连接状态信息,确定与微服务对应的检测结果。本发明以微服务为单位进行应用健康检查,周期性获取与各个微服务连接的中间件的连接状态信息,及时判断并分析微服务架构系统中微服务的可用性,精细化定位故障。
Description
技术领域
本发明涉及大数据技术领域,具体涉及一种健康状态检查方法、装置、设备及存储介质。
背景技术
微服务架构通过将应用和服务分解成更小的、松散耦合的组件,应用组件可独立地进行开发、管理和维护,更加容易升级和扩展。
在微服务中,服务通常只负责一部分事,甚至只负责一件事。为了保证系统的稳定运维,运维人员需要及时发现微服务何时变得健康和不健康,监控微服务尤为重要。
在实施本发明的过程中发现,服务的高可用对微服务架构提出越来越高的要求,而服务健康检查功能则是基本功能,故障恢复和问题定位都依赖服务健康检查与监控。在缺失交易监控和应用健康检查的前提下,当服务规模较大,存在运维人员发现及定位问题较难的问题。
发明内容
鉴于上述问题,本发明提供了一种健康状态检查方法、装置、设备及存储介质。
根据本发明的第一个方面,提供了一种健康状态检查方法,应用于微服务架构系统,包括:
在微服务架构系统中每个节点的每个微服务上配置检测接口,其中,微服务架构系统包括N个节点,每个节点包括M个微服务,N和M均为大于等于2的整数;
响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,获取每个微服务连接的中间件的连接状态信息,其中,中间件包括:缓存服务中间件、线程运行中间件和数据库中间件,连接状态信息用于表征微服务与中间件的连接状态;以及
根据所有中间件的连接状态信息,确定与微服务对应的检测结果。
根据本发明的实施例,响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,获取每个微服务连接的中间件的连接状态信息,包括:
响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,以便向中间件发送连接请求;
接收连接请求的返回结果;以及
根据返回结果,确定中间件连接状态信息。
根据本发明的实施例,连接请求包括:预设键值以及过期时间设置请求;
其中,根据返回结果,确定中间件连接状态信息,包括:
在确定返回结果表征设置成功的情况下,使用日志记录缓存服务中间件连接状态正常信息;
在确定返回结果表征设置未成功的情况下,使用日志记录缓存服务中间件连接状态异常信息。
根据本发明的实施例,连接请求还包括:活动线程的总数获取请求;
其中,根据返回结果,确定中间件连接状态信息,包括:
在确定返回结果表征获取成功的情况下,使用日志记录线程运行中间件连接状态正常信息;
在确定返回结果表征获取未成功的情况下,使用日志记录线程运行中间件连接状态异常信息。
根据本发明的实施例,连接请求还包括:数据字典的查询操作请求;
其中,根据返回结果,确定中间件连接状态信息,包括:
在确定返回结果表征查询成功的情况下,使用日志记录数据库中间件连接状态正常信息;
在确定返回结果表征查询未成功的情况下,使用日志记录数据库中间件连接状态异常信息。
根据本发明的实施例,根据所有中间件的连接状态信息,确定与微服务对应的检测结果,包括:
在确定所有中间件的连接状态信息均表征连接正常的情况下,确定微服务处于正常状态。
根据本发明的实施例,根据所有中间件的连接状态信息,确定与微服务对应的检测结果,包括:
在确定所有中间件的连接状态信息中存在表征连接异常的情况下,确定微服务处于异常状态。
根据本发明的实施例,健康状态检查方法还包括:
将所有中间件的连接状态信息存储于大数据平台,以便定位异常来源。
本发明的第二方面提供了一种健康状态检查装置,应用于微服务架构系统,包括:
检测接口配置模块,用于在微服务架构系统中每个节点的每个微服务上配置检测接口,其中,微服务架构系统包括N个节点,每个节点包括M个微服务,N和M均为大于等于2的整数;
中间件连接状态获取模块,用于响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,获取每个微服务连接的中间件的连接状态信息,其中,所述中间件包括:缓存服务中间件、线程运行中间件和数据库中间件,所述连接状态信息用于表征所述微服务与所述中间件的连接状态;以及
检测结果确定模块,用于根据所有中间件的连接状态信息,确定与微服务对应的检测结果。
本发明的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述健康状态检查方法。
本发明的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述健康状态检查方法。
本发明的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述健康状态检查方法。
根据本发明的实施例,本发明的健康状态检查方法可应用于所有微服务架构系统,以微服务为单位进行应用健康检查的方法,周期性获取各个微服务连接的中间件的连接状态信息,及时判断并分析微服务架构系统中微服务的可用性,精细化定位故障,解决了在缺失交易监控和应用健康检查的前提下,当服务规模较大,运维人员发现及定位问题较难的问题;此外,本发明健康状态检查方法可以与应用解耦,不需要对应用系统进行改造,提高了运维效率。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示出了根据本发明实施例的健康状态检查方法、装置、设备及存储介质的应用场景图;
图2示出了根据本发明实施例的健康状态检查方法的流程图;
图3示出了根据本发明实施例的响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,获取每个微服务连接的中间件的连接状态信息的方法流程图;
图4示出了根据本发明实施例的根据所有中间件的连接状态信息,确定与微服务对应的检测结果的方法流程图;
图5示出了根据本发明实施例的微服务架构系统结构框图;
图6示出了根据本发明实施例的健康状态检查装置的结构框图;以及
图7示出了根据本发明实施例的适于实现健康状态检查方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本发明实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在本发明的技术方案中,所涉及的数据(如包括但不限于用户个人信息)的收集、存储、使用、加工、传输、提供、发明和应用等处理,均符合相关法律法规的规定,且不违背公序良俗。
在本发明实施例的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
在实施本发明的过程中发现,随着互联网架构的扩张,分布式系统变得日趋复杂,越来越多的组件开始走向分布式化。对于一个大型的几十个,几百个微服务构成的微服务架构系统,通常会遇到下面的一系列问题。
当运维的系统数量多且涉及微服务成百上千,缺失交易监控的情况下,运维管理人员如何判断当前的服务是否在运行且服务可用;当服务发生问题假死或夯住等时,如何快速定位有问题的服务;当服务关联到下游服务,如数据库、第三方应用接口(API)等,如何定位是服务本身问题还是下游服务问题,如何定义一套相对通用的健康检查的标准方法适用于微服务架构,且不需要开发人员改造程序。
现有的健康检查大多是直接监控服务器层面的基础资源指标以及软件即服务(saas)层各个服务的进程状态,通过监控系统可以看到服务器及服务进程的各项详细指标的数据,且每一项详细指标数据可以设置不同的展示形式和告警规则,但是这些都无法直接的判断服务是否可用,也无法获取微服务的运行健康状态。
现有的健康检查还公开了健康检查的端点。健康检查运行状况一般都会包含调试级别的信息。这些信息可能会泄露系统内部架构的重要细节,比如服务使用的依赖版本,框架设计等,存在安全隐患问题。例如,黑客很可能从这些端点中找出破绽,进而利用这些漏洞发动网络入侵。
此外,现有的健康检查没有明确指出健康检查的具体实现方法,且通过预设的规则和阈值来判断现有应用的健康状态,并不能精准判断当前服务是否可用。
本发明的实施例提供了一种健康状态检查方法,应用于微服务架构系统,包括:在微服务架构系统中每个节点的每个微服务上配置检测接口,其中,微服务架构系统包括N个节点,每个节点包括M个微服务,N和M均为大于等于2的整数;响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,获取每个微服务连接的中间件的连接状态信息;以及根据所有中间件的连接状态信息,确定与微服务对应的检测结果。
图1示出了根据本发明实施例的健康状态检查方法、装置、设备及存储介质的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括第一终端设备101、第二终端设备102、第三终端设备103、网络104以及服务器105。网络104用以在第一终端设备101、第二终端设备102、第三终端设备103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用第一终端设备101、第二终端设备102、第三终端设备103中的至少一个通过网络104与服务器105交互,以接收或发送消息等。第一终端设备101、第二终端设备102、第三终端设备103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
第一终端设备101、第二终端设备102、第三终端设备103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用第一终端设备101、第二终端设备102、第三终端设备103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本发明实施例所提供的健康状态检查方法一般可以由服务器105执行。相应地,本发明实施例所提供的健康状态检查装置一般可以设置于服务器105中。本发明实施例所提供的健康状态检查方法也可以由不同于服务器105且能够与第一终端设备101、第二终端设备102、第三终端设备103和/或服务器105通信的服务器或服务器集群执行。相应地,本发明实施例所提供的健康状态检查装置也可以设置于不同于服务器105且能够与第一终端设备101、第二终端设备102、第三终端设备103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图4对发明实施例的健康状态检查方法进行详细描述。
图2示出了根据本发明实施例的健康状态检查方法的流程图。
如图2所示,该实施例的健康状态检查方法200包括操作S210~操作S230。
在操作S210,在微服务架构系统中每个节点的每个微服务上配置检测接口,其中,微服务架构系统包括N个节点,每个节点包括M个微服务,N和M均为大于等于2的整数。
根据本发明的实施例,微服务架构系统可以包括N个节点以及每个节点包括M个微服务。
在操作S220,响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,获取每个微服务连接的中间件的连接状态信息,其中,中间件包括:缓存服务中间件、线程运行中间件和数据库中间件,连接状态信息用于表征微服务与中间件的连接状态。
根据本发明的实施例,检查管理中心可以周期性发送健康检测请求给服务器,服务器在接收到健康检测请求后,调用检测接口,获取每个微服务连接的中间件的连接状态信息。中间件还可以包括除缓存服务中间件、线程运行中间件和数据库中间件之外的与微服务连接的其他中间件。
例如,中间件可以包括缓存服务(redis)中间件、线程运行中间件、数据库中间件以及其他中间件。
在操作S230,根据所有中间件的连接状态信息,确定与微服务对应的检测结果。
根据本发明实施例,连接状态信息可以包括连接失败状态信息和连接成功状态信息。可以根据连接失败状态信息,确定与微服务对应的检测结果为该微服务异常。可以根据连接成功状态信息,确定与微服务对应的检测结果为该微服务正常。
例如,微服务连接的中间件可以包括缓存服务(redis)中间件、线程运行中间件和数据库中间件。响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,获取缓存服务中间件的连接状态信息、线程运行中间件的连接状态信息和数据库中间件的连接状态信息。在确定缓存服务中间件的连接状态信息、线程运行中间件的连接状态信息和数据库中间件的连接状态信息均为连接成功状态信息的情况下,可以确定该微服务正常。否则,该微服务异常。
根据本发明实施例,本发明的健康状态检查方法可应用于所有微服务架构系统,以微服务为单位进行应用健康检查的方法,周期性获取各个微服务连接的中间件的连接状态信息,及时判断并分析微服务架构系统中微服务的可用性,精细化定位故障,解决了在缺失交易监控和应用健康检查的前提下,当服务规模较大,运维人员发现及定位问题较难的问题;此外,本发明健康状态检查方法可以与应用解耦,不需要对应用系统进行改造,提高了运维效率。
根据本发明实施例,可以通过在各个微服务上配置健康检查模块,健康检查模块上配置检测接口,响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,获取每个微服务连接的中间件的连接状态信息。不需要开发人员再单独对程序中的服务进行改造,极大减少了开发工作量,降低成本,且对运维人员友好,不需要花大量的时间去判断服务是否可用。
根据本发明另一实施例,可以进行程序改造,根据系统做一套定制化的交易监控,实时监控系统的交易情况,替代周期性的健康状态检查。
图3示出了根据本发明实施例的响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,获取每个微服务连接的中间件的连接状态信息的方法流程图。
如图3所示,该实施例的响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,获取每个微服务连接的中间件的连接状态信息的方法320包括操作S321~操作S323。
在操作S321,响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,以便向中间件发送连接请求。
根据本发明实施例,检查管理中心可以周期性发送健康检测请求。可以通过该检查接口,向中间件发送连接请求。中间件可以根据实际业务场景,如应用涉及连接的所有中间件而确定。
例如,检查接口可以是绿灯接口,该绿灯接口可以实现获取微服务连接的中间件的连接状态信息。中间件可以包括:redis中间件、线程运行中间件、数据库中间件以及其他中间件。可以通过绿灯接口,分别向redis中间件、线程运行中间件、数据库中间件以及其他中间件发送连接请求。
在操作S322,接收连接请求的返回结果。
根据本发明实施例,返回结果可以用于表征连接成功或者连接失败。
例如,redis中间件、线程运行中间件、数据库中间件以及其他中间件接收到连接请求后,执行连接操作,得到操作结果,将操作结果作为连接请求的返回结果反馈到绿灯接口。
在操作S323,根据返回结果,确定中间件的连接状态信息。
根据本发明实施例,在确定返回结果均表征连接成功的情况下,可以确定中间件连接状态正常。
例如,在确定所有中间件的操作结果表征连接正常的情况下,绿灯接口获取中间件的连接状态信息用于表征中间件连接正常状态信息。
根据本发明实施例,响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,获取每个微服务连接的中间件的连接状态信息的方法,也可以应用于绿灯测试等运维场景。
根据本发明实施例,通过响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,获取每个微服务连接的中间件的连接状态信息的方法,不需要开发人员再单独对程序中的服务进行改造,减少了开发工作量,降低了成本,且对运维人员友好,不需要花大量的时间去判断服务是否可用。
根据本发明的实施例,中间件可以包括:缓存服务中间件;连接请求可以包括:预设键值以及过期时间设置请求。
其中,根据返回结果,确定中间件的连接状态信息,可以包括:
在确定返回结果表征设置成功的情况下,使用日志记录缓存服务中间件连接状态正常信息;在确定返回结果表征设置未成功的情况下,使用日志记录缓存服务中间件连接状态异常信息。
根据本发明的实施例,可以向缓存服务中间件发送预设键值以及过期时间设置请求,如果缓存服务中间件响应于该请求,设置成功,可以使用日志记录缓存服务中间件连接状态正常信息;如果缓存服务中间件响应于该请求,设置不成功,可以使用日志记录缓存服务中间件连接状态异常信息。
例如,可以根据当前时间初始化一个唯一键值,尝试向redis中设置当前键值,并设置过期时间,如果成功,则可以输出正常日志记录时间戳获取redis状态设置成功等信息;如果有异常,则可以输出错误日志记录时间戳获取redis状态设置失败等信息,并打印异常信息。
根据本发明实施例,通过向缓存服务中间件发送预设键值以及过期时间设置请求,确定中间件的连接状态信息,可以用于及时判断并分析微服务的可用性,精细化定位故障,帮助开发及运维人员快速发现及定位问题。
根据本发明的实施例,中间件还可以包括:线程运行中间件;连接请求还可以包括:活动线程的总数获取请求。
其中,根据返回结果,确定中间件的连接状态信息,可以包括:
在确定返回结果表征获取成功的情况下,使用日志记录线程运行中间件连接状态正常信息;在确定返回结果表征获取未成功的情况下,使用日志记录线程运行中间件连接状态异常信息。
根据本发明的实施例,可以向线程运行中间件发送活动线程的总数获取请求,如果线程运行中间件响应于该请求,获取成功,可以使用日志记录线程运行中间件连接状态正常信息;如果线程运行中间件响应于该请求,获取不成功,可以使用日志记录线程运行中间件连接状态异常信息。
例如,可以向线程运行中间件尝试获取活动线程的总数,如果获取成功,则输出正常日志记录时间戳获取线程运行状态成功,如果获取失败,则输出错误日志记录时间戳获取线程运行状态失败,并打印异常信息。
根据本发明实施例,通过向线程运行中间件发送活动线程的总数获取请求,确定中间件的连接状态信息,可以用于及时判断并分析微服务的可用性,精细化定位故障,帮助开发及运维人员快速发现及定位问题。
根据本发明的实施例,中间件还可以包括:数据库中间件;连接请求包括:数据字典的查询操作请求。
其中,根据返回结果,确定中间件的连接状态信息,可以包括:
在确定返回结果表征查询成功的情况下,使用日志记录数据库中间件连接状态正常信息;在确定返回结果表征查询未成功的情况下,使用日志记录数据库中间件连接状态异常信息。
根据本发明的实施例,可以向数据库中间件发送数据字典的查询操作请求,如果数据库中间件响应于该请求,查询成功,可以使用日志记录数据库中间件连接状态正常信息;如果数据库中间件响应于该请求,查询不成功,可以使用日志记录数据库中间件连接状态异常信息。
例如,可以尝试向数据库进行数据字典的查询操作,然后获取执行数据库查询操作的值,如果获取成功,则输出正常日志记录时间戳获取数据库连接状态成功,如果获取失败,则输出错误日志记录时间戳获取数据库连接状态失败,并打印异常信息。
根据本发明实施例,通过向数据库中间件发送数据字典的查询操作请求,确定中间件的连接状态信息,可以用于及时判断并分析微服务的可用性,精细化定位故障,帮助开发及运维人员快速发现及定位问题。
根据本发明的实施例,可以获取连接其他中间件的状态,根据实际业务场景,如应用涉及连接其他中间件,可以根据中间件种类来新增获取连接中间件的状态,如果获取成功,则输出正常日志记录时间戳获取中间件运行状态成功,如果获取失败,则输出错误日志记录时间戳获取中间件运行状态失败,并打印异常信息。
根据本发明的实施例,根据所有中间件的连接状态信息,确定与微服务对应的检测结果,可以包括:在确定中间件的连接状态信息均表征连接正常的情况下,确定微服务处于正常状态。
根据本发明的实施例,根据所有中间件的连接状态信息,确定与微服务对应的检测结果,可以包括:在确定中间件的连接状态信息存在表征连接异常的情况下,确定微服务处于异常状态。
需要说明的是,中间件可以包括缓存服务中间件、线程运行中间件、数据库中间件以及其他中间件中的至少两个中间件。
图4示出了根据本发明实施例的根据所有中间件的连接状态信息,确定与微服务对应的检测结果的方法的流程图。
如图4所示,该实施例的根据所有中间件的连接状态信息,确定与微服务对应的检测结果的方法430包括操作S431~操作S432。
在操作S431,在确定所有中间件的连接状态信息均表征连接正常的情况下,确定微服务处于正常状态。
根据本发明的实施例,中间件可以根据实际业务场景确定,如应用涉及连接的所有中间件。所有中间件的连接状态信息都表征连接正常的情况下,该微服务处于正常状态。
在操作S432,在确定所有中间件的连接状态信息中存在表征连接异常的情况下,确定微服务处于异常状态。
根据本发明的实施例,存在任何一个中间件的连接状态信息表征连接异常的情况下,该微服务处于异常状态。
根据本发明的实施例,在确定所有中间件的连接状态信息均表征连接正常的情况下,确定微服务处于正常状态,实现对微服务的精确健康检查。有利于在出现运维故障时,排除是微服务本身问题还是下游服务问题。
根据本发明的实施例,健康状态检查方法除包括上述操作S210~S230之外,还可以包括:
将中间件的连接状态信息存储于大数据平台,以便定位异常来源。
根据本发明的实施例,将中间件的连接状态信息存储于大数据平台,方便定位异常来源,有利于精细化定位故障。
图5示出了根据本发明实施例的微服务架构系统结构框图。
如图5所示,该实施例的微服务架构系统可以包括检查管理模块、服务拨测模块、大数据平台、健康检查模块、N个节点以及每个节点包括M个微服务。
其中,健康检查模块被检查管理模块管理和分配至每个节点的每个微服务,可以以java agent探针的方式为微服务植入健康检查的代码。
健康检查模块用于执行上述健康状态检查方法,在微服务架构系统中每个节点的每个微服务上配置检测接口,其中,微服务架构系统包括N个节点,每个节点包括M个微服务,N和M均为大于等于2的整数;响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,获取每个微服务连接的中间件的连接状态信息;根据所有中间件的连接状态信息,确定与微服务对应的检测结果。
服务拨测模块可配置系统名、应用模块、应用实例、服务协议、服务地址等信息,用于周期性对检测接口进行请求检测,根据检测接口返回的状态码及响应时间,判断微服务的健康状态,并将拨测结果展示。服务拨测模块可周期性调用健康检查模块,获取返回结果,并判断微服务是否正常。
大数据平台用于存储所有中间件的连接状态信息,通过日志汇聚信息分析判断,然后具体定位是微服务本身异常还是微服务的下游依赖异常。
根据本发明的实施例,通过主管理健康检查节点管理各被管节点的健康检查模块,在各被管节点的各个微服务上可配置无侵入注入健康检查模块;健康检查模块与应用解耦,极大减少了开发和运维成本。不需要开发人员再单独对程序中的服务进行改造,极大减少了开发工作量,降低成本;运维人员不需要花大量的时间去判断服务是否可用,提高了工作效率。
根据本发明的实施例,可实现周期性对应用系统进行健康检查,并及时判断分析系统中微服务的可用性,精细化定位故障,提高运维效率。
根据本发明的实施例,应用场景多样化,适用于微服务架构系统的健康检查、绿灯测试等运维场景。
根据本发明另一实施例,可以直接在代码层面新增绿灯接口实现应用的健康检查。但是考虑到需要针对逐个微服务,进行代码改造。一旦绿灯接口有调整,代码需要全部更改,不仅增加了开发成本,且可配置性不高。
基于上述健康状态检查方法,本发明还提供了一种健康状态检查装置。以下将结合图6对该装置进行详细描述。
图6示出了根据本发明实施例的健康状态检查装置的结构框图。
如图6所示,该实施例的健康状态检查装置600包括检测接口配置模块610、中间件连接状态获取模块620和检测结果确定模块630。
检测接口配置模块610用于在微服务架构系统中每个节点的每个微服务上配置检测接口,其中,微服务架构系统包括N个节点,每个节点包括M个微服务,N和M均为大于等于2的整数。在一实施例中,检测接口配置模块610可以用于执行前文描述的操作S210,在此不再赘述。
中间件连接状态获取模块620用于响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,获取每个微服务连接的中间件的连接状态信息。在一实施例中,中间件连接状态获取模块620可以用于执行前文描述的操作S220,在此不再赘述。
检测结果确定模块630用于根据所有中间件的连接状态信息,确定与微服务对应的检测结果。在一实施例中,检测结果确定模块630可以用于执行前文描述的操作S230,在此不再赘述。
根据本发明的实施例,该实施例的健康状态检查装置600还可以包括存储模块。
存储模块用于将中间件的连接状态信息存储于大数据平台,以便定位异常来源。
根据本发明的实施例,中间件连接状态获取模块620可以包括调用接口单元、接收单元和第一确定单元。
调用接口单元用于响应于接收到由检查管理中心周期性发送的健康检测请求,调用检测接口,以便向中间件发送连接请求。
接收单元用于接收连接请求的返回结果。
第一确定单元用于根据返回结果,确定中间件的连接状态信息。
根据本发明的实施例,检测结果确定模块630可以包括第二确定单元和第三确定单元。
第二确定单元用于在确定中间件的连接状态信息均表征连接正常的情况下,确定微服务处于正常状态。
第三确定单元用于在确定中间件的连接状态信息存在表征连接异常的情况下,确定微服务处于异常状态。
根据本发明的实施例,检测接口配置模块610、中间件连接状态获取模块620和检测结果确定模块630中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,检测接口配置模块610、中间件连接状态获取模块620和检测结果确定模块630中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,检测接口配置模块610、中间件连接状态获取模块620和检测结果确定模块630中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图7示出了根据本发明实施例的适于实现健康状态检查方法的电子设备的方框图。
如图7所示,根据本发明实施例的电子设备700包括处理器701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器701还可以包括用于缓存用途的板载存储器。处理器701可以包括用于执行根据本发明实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 703中,存储有电子设备700操作所需的各种程序和数据。处理器701、ROM702以及RAM 703通过总线704彼此相连。处理器701通过执行ROM 702和/或RAM 703中的程序来执行根据本发明实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 702和RAM 703以外的一个或多个存储器中。处理器701也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本发明实施例的方法流程的各种操作。
根据本发明的实施例,电子设备700还可以包括输入/输出(I/O)接口705,输入/输出(I/O)接口705也连接至总线704。电子设备700还可以包括连接至I/O接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本发明实施例的方法。
根据本发明的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本发明的实施例,计算机可读存储介质可以包括上文描述的ROM 702和/或RAM 703和/或ROM 702和RAM 703以外的一个或多个存储器。
本发明的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本发明实施例所提供的方法。
在该计算机程序被处理器701执行时执行本发明实施例的系统/装置中限定的上述功能。根据本发明的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分709被下载和安装,和/或从可拆卸介质711被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被处理器701执行时,执行本发明实施例的系统中限定的上述功能。根据本发明的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本发明的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本发明中。特别地,在不脱离本发明精神和教导的情况下,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本发明的范围。
以上对本发明的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本发明的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本发明的范围由所附权利要求及其等同物限定。不脱离本发明的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本发明的范围之内。
Claims (11)
1.一种健康状态检查方法,应用于微服务架构系统,其特征在于,所述方法包括:
在所述微服务架构系统中每个节点的每个微服务上配置检测接口,其中,所述微服务架构系统包括N个所述节点,每个所述节点包括M个所述微服务,N和M均为大于等于2的整数;
响应于接收到由检查管理中心周期性发送的健康检测请求,调用所述检测接口,获取每个所述微服务连接的中间件的连接状态信息,其中,所述中间件包括:缓存服务中间件、线程运行中间件和数据库中间件,所述连接状态信息用于表征所述微服务与所述中间件的连接状态;以及
根据所有所述中间件的所述连接状态信息,确定与所述微服务对应的检测结果。
2.根据权利要求1所述的方法,其特征在于,所述响应于接收到由检查管理中心周期性发送的健康检测请求,调用所述检测接口,获取每个所述微服务连接的中间件的连接状态信息,包括:
响应于接收到由检查管理中心周期性发送的健康检测请求,调用所述检测接口,以便向所述中间件发送连接请求;
接收所述连接请求的返回结果;以及
根据所述返回结果,确定所述连接状态信息。
3.根据权利要求2所述的方法,其特征在于,所述连接请求包括:预设键值以及过期时间设置请求;
其中,所述根据所述返回结果,确定所述中间件连接状态信息,包括:
在确定所述返回结果表征设置成功的情况下,使用日志记录缓存服务中间件连接状态正常信息;
在确定所述返回结果表征设置未成功的情况下,使用日志记录缓存服务中间件连接状态异常信息。
4.根据权利要求3所述的方法,其特征在于,所述连接请求还包括:活动线程的总数获取请求;
其中,所述根据所述返回结果,确定所述中间件连接状态信息,包括:
在确定所述返回结果表征获取成功的情况下,使用日志记录线程运行中间件连接状态正常信息;
在确定所述返回结果表征获取未成功的情况下,使用日志记录线程运行中间件连接状态异常信息。
5.根据权利要求3所述的方法,其特征在于,所述连接请求还包括:数据字典的查询操作请求;
其中,所述根据所述返回结果,确定所述中间件连接状态信息,包括:
在确定所述返回结果表征查询成功的情况下,使用日志记录数据库中间件连接状态正常信息;
在确定所述返回结果表征查询未成功的情况下,使用日志记录数据库中间件连接状态异常信息。
6.根据权利要求3~5任一项所述的方法,其特征在于,所述根据所有所述中间件的所述连接状态信息,确定与所述微服务对应的检测结果,包括:
在确定所有所述中间件的所述连接状态信息均表征连接正常的情况下,确定所述微服务处于正常状态。
7.根据权利要求3~5任一项所述的方法,其特征在于,所述根据所有所述中间件的所述连接状态信息,确定与所述微服务对应的检测结果,包括:
在确定所有所述中间件的所述连接状态信息中存在表征连接异常的情况下,确定所述微服务处于异常状态。
8.根据权利要求1~5任一项所述的方法,其特征在于,所述方法还包括:
将所有所述中间件的所述连接状态信息存储于大数据平台,以便定位异常来源。
9.一种健康状态检查装置,应用于微服务架构系统,其特征在于,所述装置包括:
检测接口配置模块,用于在所述微服务架构系统中每个节点的每个微服务上配置检测接口,其中,所述微服务架构系统包括N个所述节点,每个所述节点包括M个所述微服务,N和M均为大于等于2的整数;
中间件连接状态获取模块,用于响应于接收到由检查管理中心周期性发送的健康检测请求,调用所述检测接口,获取每个所述微服务连接的中间件的连接状态信息,其中,所述中间件包括:缓存服务中间件、线程运行中间件和数据库中间件,所述连接状态信息用于表征所述微服务与所述中间件的连接状态;以及
检测结果确定模块,用于根据所有所述中间件的所述连接状态信息,确定与所述微服务对应的检测结果。
10.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310880970.4A CN116841902A (zh) | 2023-07-18 | 2023-07-18 | 健康状态检查方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310880970.4A CN116841902A (zh) | 2023-07-18 | 2023-07-18 | 健康状态检查方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116841902A true CN116841902A (zh) | 2023-10-03 |
Family
ID=88170584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310880970.4A Pending CN116841902A (zh) | 2023-07-18 | 2023-07-18 | 健康状态检查方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116841902A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117389725A (zh) * | 2023-10-12 | 2024-01-12 | 中科驭数(北京)科技有限公司 | 服务数据节点迁移方法、装置、电子设备及存储介质 |
-
2023
- 2023-07-18 CN CN202310880970.4A patent/CN116841902A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117389725A (zh) * | 2023-10-12 | 2024-01-12 | 中科驭数(北京)科技有限公司 | 服务数据节点迁移方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11481498B2 (en) | Continuous vulnerability management for modern applications | |
US9697104B2 (en) | End-to end tracing and logging | |
US8843623B2 (en) | Methods, apparatuses, and computer program products for automated remote data collection | |
US20160077910A1 (en) | Supportability framework for mobile software applications | |
CN108595952A (zh) | 一种电力移动应用软件漏洞的检测方法及系统 | |
US10984109B2 (en) | Application component auditor | |
US10491629B2 (en) | Detecting sensitive data sent from client device to third-party | |
CN111309343B (zh) | 一种开发部署方法及装置 | |
US10528456B2 (en) | Determining idle testing periods | |
CN114024764A (zh) | 数据库异常访问的监控方法、监控系统、设备和存储介质 | |
CN114884796B (zh) | 故障处理方法、装置、电子设备及存储介质 | |
CN116841902A (zh) | 健康状态检查方法、装置、设备及存储介质 | |
CN112817831A (zh) | 应用性能监测方法、装置、计算机系统和可读存储介质 | |
CN114826639A (zh) | 基于函数调用链跟踪的应用攻击检测方法及装置 | |
CN112650688A (zh) | 自动化回归测试方法、关联设备以及计算机程序产品 | |
CN116450461A (zh) | 存储集群的硬盘故障处理方法、装置、设备和介质 | |
CN115202973A (zh) | 应用运行状态的确定方法、装置、电子设备和介质 | |
CN114443480A (zh) | 测试方法、系统、可读介质及电子设备 | |
CN114116429A (zh) | 异常日志采集方法、装置、设备、介质和产品 | |
CN113535568B (zh) | 应用部署版本的验证方法、装置、设备和介质 | |
CN115190008B (zh) | 故障处理方法、故障处理装置、电子设备及存储介质 | |
CN114024867B (zh) | 网络异常检测方法及装置 | |
Ramakrishna et al. | A platform for end-to-end mobile application infrastructure analytics using system log correlation | |
CN114064484A (zh) | 接口测试方法、装置、电子设备及可读存储介质 | |
CN116483566A (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 |