分布式管理系统中组件的进程故障自愈方法、装置及设备转让专利
申请号 : CN202010703292.0
文献号 : CN111930565B
文献日 : 2021-09-14
发明人 : 高永伟
申请人 : 腾讯科技(深圳)有限公司
摘要 :
权利要求 :
1.一种分布式管理系统中组件的进程故障自愈方法,其特征在于,所述方法包括:获取配置信息,所述配置信息包括分布式管理系统中分布式管理服务器的应用程序接口地址和所述分布式管理系统中元数据库的元数据库地址;
利用所述应用程序接口地址从所述分布式管理服务器获取所述分布式管理系统对应服务下组件的当前运行状态;
利用所述元数据库地址从所述元数据库获取所述分布式管理系统的元数据,所述元数据表征所述分布式管理系统对应服务和所述服务下组件的工作状态;
根据所述当前运行状态和所述元数据,对所述组件进行故障检查;所述元数据包括所述组件的目标运行状态、所述组件的模式信息、所述组件所属服务的模式信息和所述组件所在节点的模式信息;所述根据所述当前运行状态和所述元数据,对所述组件进行故障检查包括:根据所述组件的当前运行状态和目标运行状态,确定当前运行状态为停止运行状态且目标运行状态为启动运行状态的待自愈组件;根据所述待自愈组件的模式信息、所述待自愈组件的所属服务的模式信息和所述待自愈组件所在节点的模式信息对所述待自愈组件进行维护模式检查;当所述待自愈组件的模式信息、所述待自愈组件的所属服务的模式信息和所述待自愈组件所在节点的模式信息均为非维护模式时,确定所述待自愈组件为故障组件;
当检查到存在故障组件时,利用所述应用程序接口向所述分布式管理服务器发送所述故障组件的进程重启任务。
2.根据权利要求1所述的方法,其特征在于,所述元数据还包括所述组件的当前运行状态;
相应的,所述根据所述当前运行状态和所述元数据,对所述组件进行故障检查还包括:对所述元数据中组件的当前运行状态和所述分布式管理服务器中获取的所述组件的当前运行状态进行一致性验证;
当一致性验证通过时,执行根据所述组件的当前运行状态和目标运行状态,确定当前运行状态为停止运行状态且目标运行状态为启动运行状态的待自愈组件的步骤。
3.根据权利要求1至2任一所述的方法,其特征在于,在所述利用所述应用程序接口向所述分布式管理服务器发送所述故障组件的进程重启任务之前,所述方法还包括:确定所述故障组件所在节点的连通性;
当所述故障组件所在节点连通时,利用所述应用程序接口向所述分布式管理服务器发送所述故障组件的进程重启任务。
4.根据权利要求1至2任一所述的方法,其特征在于,在所述利用所述应用程序接口向所述分布式管理服务器发送所述故障组件的进程重启任务之前,所述方法还包括:对所述故障组件进行任务冲突检测;
当任务冲突检测的结果为所述故障组件不存在其他任务时,利用所述应用程序接口向所述分布式管理服务器发送所述故障组件的进程重启任务。
5.根据权利要求1至2任一所述的方法,其特征在于,所述配置信息还包括服务黑名单,在根据所述当前运行状态和所述元数据,对所述组件进行故障检查之前,所述方法还包括:根据所述服务黑名单对所述分布式管理系统对应服务下组件进行黑名单筛查,得到目标组件;
相应的,所述根据所述当前运行状态和所述元数据,对所述组件进行故障检查包括:根据所述当前运行状态和所述元数据,对所述目标组件进行故障检查。
6.根据权利要求1至2任一所述的方法,其特征在于,在利用所述应用程序接口向所述分布式管理服务器发送所述故障组件的进程重启任务之后,所述方法还包括:记录所述故障组件的进程重启累计次数。
7.根据权利要求6所述的方法,其特征在于,所述配置信息还包括预设重启上限;
相应的,在所述利用所述应用程序接口向所述分布式管理服务器发送所述故障组件的进程重启任务之前,所述方法还包括:确定所述故障组件的进程重启累计次数;
当所述故障组件的进程重启累计次数小于等于预设重启上限时,利用所述应用程序接口向所述分布式管理服务器发送所述故障组件的进程重启任务。
8.一种分布式管理系统中组件的进程故障自愈装置,其特征在于,所述装置包括:配置信息获取模块,用于获取配置信息,所述配置信息包括分布式管理系统中分布式管理服务器的应用程序接口地址和所述分布式管理系统中元数据库的元数据库地址;
当前运行状态获取模块,用于利用所述应用程序接口地址从所述分布式管理服务器获取所述分布式管理系统对应服务下组件的当前运行状态;
元数据获取模块,用于利用所述元数据库地址从所述元数据库获取所述分布式管理系统的元数据,所述元数据表征所述分布式管理系统对应服务和所述服务下组件的工作状态;
故障检查模块,用于根据所述当前运行状态和所述元数据,对所述组件进行故障检查;
所述元数据可以包括所述组件的目标运行状态、所述组件的模式信息、所述组件所属服务的模式信息和所述组件所在节点的模式信息;所述故障检查模块包括:待自愈组件确定单元,用于根据所述组件的当前运行状态和目标运行状态,确定当前运行状态为停止运行状态且目标运行状态为启动运行状态的待自愈组件;维护模式检查单元,用于根据所述待自愈组件的模式信息、所述待自愈组件的所属服务的模式信息和所述待自愈组件所在节点的模式信息对所述待自愈组件进行维护模式检查;故障组件确定单元,用于当所述待自愈组件的模式信息、所述待自愈组件的所属服务的模式信息和所述待自愈组件所在节点的模式信息均为非维护模式时,确定所述待自愈组件为故障组件;
进程重启任务触发模块,用于当检查到存在故障组件时,利用所述应用程序接口向所述分布式管理服务器发送所述故障组件的进程重启任务。
9.一种分布式管理系统中组件的进程故障自愈设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有计算机指令,所述计算机指令由所述处理器加载并执行以实现如权利要求1至7任一所述的分布式管理系统中组件的进程故障自愈方法。
10.一种计算机可读存储介质,所述存储介质可设置于设备之中以保存计算机指令,所述计算机指令由设备中的处理器加载并执行以实现如权利要求1至7任一所述的分布式管理系统中组件的进程故障自愈方法。
说明书 :
分布式管理系统中组件的进程故障自愈方法、装置及设备
技术领域
背景技术
统,如Apache ambari等,但随着管理的单个分布式集群系统中节点逐渐的增多,各种因硬
件、软件导致的组件故障时有发生,一些常见的故障例如内存不足、网络抖动、磁盘IO过载
等导致的进程终止,通常只需要将进程重新拉起即可实现故障自愈。
另一种是废除了前一种的全局配置,通过修改服务集成代码定义故障自愈相关信息,并在
分布式管理系统中的web界面中配置是否启动故障自愈。但上述两种方案间存在版本不兼
容的问题,且当组件进程异常终止后,故障自愈均会在分布式管理系统的后台静默拉起进
程进行恢复,导致故障自愈流程只能通过登录服务器查看代理节点的日志得知,自愈流程
存在黑盒性;且两个方案,前一种方案中,需要修改组件配置文件后进行进程重启,后一种
服务故障自愈能力默认处于关闭状态,需要人工操作逐个服务开启,且需要修改服务集成
代码定义故障自愈相关信息,操作流程复杂,服务集成代码维护成本高;因此,需要提供更
可靠或更有效的方案。
发明内容
件的进程故障自愈。
状态;
执行以实现如上述的分布式管理系统中组件的进程故障自愈方法。
取分布式管理系统对应服务下组件的当前运行状态;以及从元数据库获取包括分布式管理
系统对应服务和该服务下组件的工作状态的元数据;进而可以根据当前运行状态和元数
据,对组件进行故障检查;当检查到存在故障组件时,通过分布式管理服务器的应用程序接
口自动触发故障组件的进程重启任务,实现了对分布式管理系统中组件的进程故障自愈,
进而保证了组件所属服务和所在节点的故障自愈。且通过分布式管理服务器的应用程序接
口地址和分布式管理系统中元数据库的元数据库地址,将组件的当前运行状态和分布式管
理系统的元数据从后台传输出来,用户可以通过web UI、API、命令行工具等入口直观的观
察到组件在什么时间发生了故障,何时从故障中恢复,以及恢复过程的完整输出信息,实现
自愈流程可见性,避免了现有的自愈流程黑盒性。且直接通过应用程序接口进行进程任务
重启,可以兼容分布式管理系统原有的故障自愈技术,达到了跨版本的通用故障自愈能力,
保持了原有的使用体验。且无需对分布式管理服务器本身做任何修改或者重启,避免了对
运行于分布式管理系统之上的服务集成代码做任何修改,实现了服务集成代码无侵入和更
加简单高效的故障自愈。
附图说明
仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,
还可以根据这些附图获得其它附图。
具体实施方式
本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其
他实施例,都属于本申请保护的范围。
的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或
描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆
盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限
于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产
品或设备固有的其它步骤或单元。
器。
组件的服务定义、管理、监控等一体化集群管理系统,具体的,本说明书实施例中,分布式管
理系统200可以包含一套简单易用的web UI(User Interface,用户界面)和一套规范的
RESTful API(Application Programming Interface,应用程序接口)集合。
201可以通过多个代理节点203收集分布式集群300的多个节点上服务和服务下组件的工作
状态,并存储到元数据库;另外,所述分布式管理服务器201也可以收集多个代理节点203上
服务和服务下组件的工作状态,并将多个代理节点203的工作状态存储到元数据库。
reality,VR)设备、智能可穿戴设备等类型的实体设备。也可以为运行与实体设备中的软
体。本申请实施例中实体设备上运行的操作系统可以包括但不限于安卓系统、IOS系统、
linux、windows等。
储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,
内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
之间形成组成的点对点(P2P,Peer To Peer)网络,P2P 协议是一个运行在传输控制协议
(TCP,Transmission Control Protocol )协议之上的应用层协议。在分布式系统中,任何
机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用
层。具体的,区块链系统中各节点的功能,涉及的功能可以包括:
据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,
将记录数据添加到临时区块中。
说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可
以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的
一种方式,不代表唯一的执行顺序。在实际中的系统或客户端产品执行时,可以按照实施例
或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具
体的如图2所示,所述方法可以包括:
配置信息可以包括分布式管理系统中分布式管理服务器的应用程序接口地址和所述分布
式管理系统中元数据库的元数据库地址。
程故障自愈控制的相关信息。
务器获取分布式管理系统对应服务下组件的当前运行状态。具体的,可以由故障自愈控制
端的守护进程基于应用程序接口地址从分布式管理服务器获取分布式管理系统对应服务
下组件的当前运行状态。具体的,组件的当前运行状态可以包括正常运行状态或停止运行
状态。
述服务下组件的工作状态;
所述当前运行状态和所述元数据,对所述组件进行故障检查可以包括:
件。
行状态为启动运行状态,当组件需要进行维护或存在某些冲突导致组件需要停止运行的特
殊情况下,组件的目标运行状态可以为停止运行状态。
处于停止运行状态,相应的,为了避免对因维护模式需要处于停止运行状态的组件的进程
重启,可以对当前运行状态为停止运行状态且目标运行状态为启动运行状态的待自愈组件
进行维护模式检查,当待自愈组件的模式信息、待自愈组件的所属服务的模式信息和待自
愈组件所在节点的模式信息均为非维护模式时,确定该待自愈组件为可以进行进程重启的
故障组件。
进程重新从分布式管理服务器获取组件的当前运行状态以及从元数据库获取分布式管理
系统的元数据。
对所述组件进行故障检查可以包括:
件。
的,当一致性验证不通过时,分布式管理系统本身存在异常,相应的,不执行进一步的故障
自愈操作,由守护进程重新从分布式管理服务器获取组件的当前运行状态以及从元数据库
获取分布式管理系统的元数据。
务,以便分布式管理服务器启动对所述故障组件的进程重启,实现组件的故障进程自愈。
所述应用程序接口向所述分布式管理服务器发送所述故障组件的进程重启任务之前,所述
方法还包括:
程重启任务;反之,若未连接上,确定该故障组件所在节点不连通,相应的,不执行进一步的
故障自愈操作,由守护进程重新从分布式管理服务器获取组件的当前运行状态以及从元数
据库获取分布式管理系统的元数据。
障组件进行任务冲突检测,在故障组件不存在其他任务时,触发该故障组件的进程重启任
务。
态以及从元数据库获取分布式管理系统的元数据。
一个分布式的,开放源码的分布式应用程序协调服务;HDFS(Hadoop分布式文件系统)是指
被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。
据库获取分布式管理系统的元数据。
包括:
务。
录故障组件的进程重启累计次数,当达到预设重启上限之后,将不再触发故障组件的进程
重启任务,相应的,守护进程可以重新从分布式管理服务器获取组件的当前运行状态以及
从元数据库获取分布式管理系统的元数据。
据库地址的配置信息,可以实时的从分布式管理服务器获取分布式管理系统对应服务下组
件的当前运行状态;以及从元数据库获取包括分布式管理系统对应服务和该服务下组件的
工作状态的元数据;进而可以根据当前运行状态和元数据,对组件进行故障检查;当检查到
存在故障组件时,通过分布式管理服务器的应用程序接口自动触发故障组件的进程重启任
务,实现了对分布式管理系统中组件的进程故障自愈,进而保证了组件所属服务和所在节
点的故障自愈。且通过分布式管理服务器的应用程序接口地址和分布式管理系统中元数据
库的元数据库地址,将组件的当前运行状态和分布式管理系统的元数据从后台传输出来,
用户可以通过web UI、API、命令行工具等入口直观的观察到组件在什么时间发生了故障,
何时从故障中恢复,以及恢复过程的完整输出信息,实现自愈流程可见性,避免了现有的自
愈流程黑盒性。且直接通过应用程序接口进行进程任务重启,可以兼容分布式管理系统原
有的故障自愈技术,达到了跨版本的通用故障自愈能力,保持了原有的使用体验。且无需对
分布式管理服务器本身做任何修改或者重启,避免了对运行于分布式管理系统之上的服务
集成代码做任何修改,实现了服务集成代码无侵入和更加简单高效的故障自愈。
前运行状态一致性验证、当前运行状态和目标运行状态的限定、维护模式检查、故障组件所
在节点的连通性确认、任务冲突检测、黑名单筛查、重启次数限定等实施例。
者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众
多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或客户端产品执
行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者
多线程处理的环境)。具体的如图9所示,所述方法可以包括:
布式管理系统的元数据,所述元数据表征所述分布式管理系统对应服务和所述服务下组件
的工作状态。
件。
据库地址;
件的工作状态;
式检查;
愈组件为故障组件。
态的待自愈组件。
的进程重启任务。
组件的进程重启任务。
的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计
算机设备执行上述各种可选实现方式中提供的分布式管理系统中组件的进程故障自愈方
法。
令,该计算机指令由该处理器加载并执行以实现如上述方法实施例所提供的分布式管理系
统中组件的进程故障自愈方法。
的计算机指令,该计算机指令由该处理器加载并执行以实现上述方法实施例提供的分布式
管理系统中组件的进程故障自愈方法。
据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据
所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括
非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相
应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动
硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
RF(Radio Frequency,射频)电路1110、包括有一个或一个以上计算机可读存储介质的存储
器1120、输入单元1130、显示单元1140、传感器1150、音频电路1160、WiFi(wireless
fidelity,无线保真)模块1170、包括有一个或者一个以上处理核心的处理器1180、以及电
源1190等部件。本领域技术人员可以理解,图11中示出的客户端结构并不构成对客户端的
限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
基站。通常,RF电路1110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、
用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双
工器等。此外,RF电路810还可以通过无线通信与网络和其他客户端通信。所述无线通信可
以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile
communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无
线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code
Division Multiple Access, 宽带码分多址)、LTE(Long Term Evolution,长期演进)、电
子邮件、SMS(Short Messaging Service,短消息服务)等。
存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存
储数据区可存储根据所述客户端的使用所创建的数据等。此外,存储器1120可以包括高速
随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或
其他易失性固态存储器件。相应地,存储器1120还可以包括存储器控制器,以提供处理器
1180和输入单元1130对存储器1120的访问。
敏表面1131以及其他输入设备1132。触敏表面1131,也称为触摸显示屏或者触控板,可收集
用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏
表面1131上或在触敏表面1131附近的操作),并根据预先设定的程式驱动相应的连接装置。
可选的,触敏表面1131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检
测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从
触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1180,并能接收处理
器1180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多
种类型实现触敏表面1131。除了触敏表面1131,输入单元1130还可以包括其他输入设备
1132。具体地,其他输入设备1132可以包括但不限于物理键盘、功能键(比如音量控制按键、
开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
构成。显示单元1140可包括显示面板1141,可选的,可以采用LCD(Liquid Crystal
Display,液晶显示器)、OLED(Organic Light‑Emitting Diode,有机发光二极管)等形式来
配置显示面板1141。进一步的,触敏表面1131可覆盖显示面板1141,当触敏表面1131检测到
在其上或附近的触摸操作后,传送给处理器1180以确定触摸事件的类型,随后处理器1180
根据触摸事件的类型在显示面板1141上提供相应的视觉输出。其中,触敏表面1131与显示
面板1141可以两个独立的部件来实现输入和输入功能,但是在某些实施例中,也可以将触
敏表面1131与显示面板1141集成而实现输入和输出功能。
环境光线的明暗来调节显示面板1141的亮度,接近传感器可在所述客户端移动到耳边时,
关闭显示面板1141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向
上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别客户端姿
态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、
敲击)等; 至于所述客户端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其
他传感器,在此不再赘述。
1161转换为声音信号输出;另一方面,传声器1162将收集的声音信号转换为电信号,由音频
电路1160接收后转换为音频数据,再将音频数据输出处理器1180处理后,经RF电路1110以
发送给比如另一客户端,或者将音频数据输出至存储器1120以便进一步处理。音频电路
1160还可能包括耳塞插孔,以提供外设耳机与所述客户端的通信。
示出了WiFi模块1170,但是可以理解的是,其并不属于所述客户端的必须构成,完全可以根
据需要在不改变发明的本质的范围内而省略。
器1120内的数据,执行所述客户端的各种功能和处理数据,从而对客户端进行整体监控。可
选的,处理器1180可包括一个或多个处理核心;优选的,处理器1180可集成应用处理器和调
制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处
理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1180
中。
功耗管理等功能。电源1190还可以包括一个或一个以上的直流或交流电源、再充电系统、电
源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个
以上处理器执行本发明中方法实施例中的指令。
序接口地址和分布式管理系统中元数据库的元数据库地址的配置信息,可以实时的从分布
式管理服务器获取分布式管理系统对应服务下组件的当前运行状态;以及从元数据库获取
包括分布式管理系统对应服务和该服务下组件的工作状态的元数据;进而可以根据当前运
行状态和元数据,对组件进行故障检查;当检查到存在故障组件时,通过分布式管理服务器
的应用程序接口自动触发故障组件的进程重启任务,实现了对分布式管理系统中组件的进
程故障自愈,进而保证了组件所属服务和所在节点的故障自愈。且通过分布式管理服务器
的应用程序接口地址和分布式管理系统中元数据库的元数据库地址,将组件的当前运行状
态和分布式管理系统的元数据从后台传输出来,用户可以通过web UI、API、命令行工具等
入口直观的观察到组件在什么时间发生了故障,何时从故障中恢复,以及恢复过程的完整
输出信息,实现自愈流程可见性,避免了现有的自愈流程黑盒性。且直接通过应用程序接口
进行进程任务重启,可以兼容分布式管理系统原有的故障自愈技术,达到了跨版本的通用
故障自愈能力,保持了原有的使用体验。且无需对分布式管理服务器本身做任何修改或者
重启,避免了对运行于分布式管理系统之上的服务集成代码做任何修改,实现了服务集成
代码无侵入和更加简单高效的故障自愈。
些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且
仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连
续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者
可能是有利的。
设备和存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之
处参见方法实施例的部分说明即可。
存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。