应用程序的健康检查方法及健康检查系统的制作方法_4

文档序号:9826187阅读:来源:国知局
次扫描是否已结束,即判断上一次健康检查是否结束,若是,则执行步骤308,否则继续上次扫描;
[0067]步骤308,获取dump虚机列表,S卩获取应用程序列表,其中,dump文件是进程(与应用程序对应)的内存镜像,用于存储应用程序的执行状态,一个CF平台对应多个DEA组件,一个DEA组件对应多个虚机(即进程或应用程序);
[0068]步骤310,进行串行检查,判断获取到的dump虚机列表中是否存在App,若是,则执行步骤312,否则,结束此次健康检查;
[0069]步骤312,判断App的当前执行状态是否为running状态,若是,执行步骤314,否则返回步骤310;
[0070]步骤314,后台调用应用程序的健康检查接口进行健康检查,得到串行检查结果,即通过DEA组件访问应用程序的健康检查接口发起健康检查;
[0071]步骤316,执行主线程中的回调函数,获取健康检查结果;
[0072]步骤318,结合每个虚机当前执行状态对健康检查结果进行处理,为避免在遍历过程中1118七31106_作8181^7状态改变导致异常,先dump instance_registry中的元素到snapshot(内存快照)中,然后遍历snapshot,检查前和处理前,需要判断虚机状态是否仍为running,避免误判;
[0073]步骤320,若健康检查结果为health,则不作处理结束此次健康检查,若健康检查结果为error,则打印错误日志,若健康检查结果为fatal,则重新App并打印错误日志,其中,health表示所有虚机正常,error表示有应用程序无法连接数据库,fatal表示有应用程序未启动。
[0074]需要注意的是,在本发明的技术方案中,为了避免因将具体的处理逻辑写在DEA组件中,使每次健康检查接口更新或判断策略更新都要求修改DEA代码并重启DEA组件,影响服务质量这种问题,在应用程序的健康检查接口和DEA组件之间添加一个可在线更新的转换层,将健康检查接口返回信息翻译成DEA可读的形式,那么,即使健康检查接口或判断策略修改,只需要修改转换层代码即可,无需重启DEA组件,实际中采用一个shell脚本实现转换层的工作,具体地,引入转换层后,DEA组件判断虚机健康状态的流程如下:
[0075](I)调用shell脚本,访问虚机健康检查接口,得到检查结果;
[0076](2)shell脚本对检查结果进行翻译,将翻译结果返回给DEA组件;
[0077](3)DEA组件对shell脚本返回结果进行处理,根据返回状态执行相应的操作。
[0078]如此,DEA组件每次健康检查都会重新加载健康检查shell脚本,得到检查结果。在修改shell脚本后,不用重启DEA就能够生效。当接口升级,或检查、判断机制需要修改时,只需修改检查脚本即可,无需重启DEA进程。
[0079]综上所述,通过本发明的技术方案,实现了负载均衡,缩短了检测周期,简化了交互过程,避免了误判,同时由于转换层,即健康检查shell脚本,可在线更新,降低了运维工作量,因此,在有效控制CPU消耗的前提下,检查周期大大缩短,并且检查周期是可预测的。
[0080]以上结合附图详细说明了本发明的技术方案,可以有效地实现应用程序健康检查的负载均衡,并缩短检测周期、简化健康检查交互过程以及降低运维工作量,同时有效地避免对应用程序健康状态的误判,从而提升用户体验。
[0081]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种应用程序的健康检查方法,其特征在于,包括: 获取CF平台中的与DEA组件关联的应用程序列表; 判断所述应用程序列表中的应用程序是否处于运行状态; 当判定所述应用程序处于运行状态时,通过所述DEA组件访问所述应用程序的健康检查接口以启动对所述应用程序的当前健康检查,并生成健康检查结果; 将所述健康检查结果反馈至所述DEA组件,以供所述DEA组件根据所述健康检查结果对所述应用程序执行相应操作。2.根据权利要求1所述的应用程序的健康检查方法,其特征在于, 所述DEA组件通过调用转换层访问所述健康检查接口以及获取所述健康检查结果。3.根据权利要求1所述的应用程序的健康检查方法,其特征在于,在所述DEA组件获取到所述健康检查结果之后以及根据所述健康检查结果执行相应操作之前,还包括: 再次判断所述应用程序是否处于运行状态; 在判断结果为是时,通过所述DEA组件根据所述健康检查结果对所述应用程序执行相应操作。4.根据权利要求1至3中任一项所述应用程序的健康检查方法,其特征在于,所述健康检查结果包括:正常、有误、致命错误;以及 当所述健康检查结果为正常时,所述DEA组件对所述应用程序不作处理; 当所述健康检查结果为有误时,所述DEA组件对所述应用程序的错误提示进行打印操作; 当所述健康检查结果为致命错误时,所述DEA组件对所述应用程序的错误提示进行打印操作并重新启动所述应用程序。5.根据权利要求1至3中任一项所述应用程序的健康检查方法,其特征在于,在所述获取CF平台中的与DEA组件关联的应用程序列表之前,还包括: 判断是否到达进行所述当前健康检查的设定周期,以及所述当前健康检查的前次健康检查是否结束; 在判定到达所述当前健康检查的所述设定周期且所述前次健康检查已结束时,获取所述应用程序列表。6.一种应用程序的健康检查系统,其特征在于,包括: 获取模块,用于获取CF平台中的与DEA组件关联的应用程序列表; 判断模块,用于判断所述应用程序列表中的应用程序是否处于运行状态; 检查模块,用于当判定所述应用程序处于运行状态时,通过所述DEA组件访问所述应用程序的健康检查接口以启动对所述应用程序的当前健康检查,并生成健康检查结果; 处理模块,用于将所述健康检查结果反馈至所述DEA组件,以供所述DEA组件根据所述健康检查结果对所述应用程序执行相应操作。7.根据权利要求6所述的应用程序的健康检查系统,其特征在于, 所述DEA组件通过调用转换层访问所述健康检查接口以及获取所述健康检查结果。8.根据权利要求6所述的应用程序的健康检查系统,其特征在于, 所述判断模块还用于:在所述DEA组件获取到所述健康检查结果之后以及根据所述健康检查结果执行相应操作之前,再次判断所述应用程序是否处于运行状态; 所述处理模块具体用于:在判断结果为是时,通过所述DEA组件根据所述检查模块生成的所述健康检查结果对所述应用程序执行相应操作。9.根据权利要求6至8中任一项所述的应用程序的健康检查系统,其特征在于,所述健康检查结果包括:正常、有误、致命错误;以及 所述处理模块具体用于: 当所述检查模块生成的所述健康检查结果为正常时,控制所述DEA组件对所述应用程序不作处理; 当所述检查模块生成的所述健康检查结果为有误时,调用所述DEA组件对所述应用程序的错误提示进行打印操作; 当所述检查模块生成的所述健康检查结果为致命错误时,调用所述DEA组件对所述应用程序的错误提示进行打印操作并重新启动所述应用程序。10.根据权利要求6至8中任一项所述的应用程序的健康检查系统,其特征在于, 所述判断模块还用于:在所述获取模块获取CF平台中的与DEA组件关联的应用程序列表之前,判断是否到达进行所述当前健康检查的设定周期,以及所述当前健康检查的前次健康检查是否结束; 所述获取模块具体用于:在所述判断模块判定到达所述当前健康检查的所述设定周期且所述前次健康检查已结束时,获取所述应用程序列表。
【专利摘要】本发明提供了一种应用程序的健康检查方法和一种应用程序的健康检查系统,其中,所述应用程序的健康检查方法包括:获取CF平台中的与DEA组件关联的应用程序列表;判断所述应用程序列表中的应用程序是否处于运行状态;当判定所述应用程序处于运行状态时,通过所述DEA组件访问所述应用程序的健康检查接口以启动对所述应用程序的当前健康检查,并生成健康检查结果;将所述健康检查结果反馈至所述DEA组件,以供所述DEA组件根据所述健康检查结果对所述应用程序执行相应操作。该技术方案,可以有效地实现应用程序健康检查的负载均衡,并缩短检测周期、简化健康检查交互过程以及降低运维工作量,同时有效地避免对应用程序健康状态的误判,从而提升用户体验。
【IPC分类】G06F11/30
【公开号】CN105589787
【申请号】CN201510958916
【发明人】李智慧
【申请人】畅捷通信息技术股份有限公司
【公开日】2016年5月18日
【申请日】2015年12月18日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1