买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种节点软件的升级方法、装置和计算机可读存储介质_郑州云海信息技术有限公司_201811003468.0 

申请/专利权人:郑州云海信息技术有限公司

申请日:2018-08-30

公开(公告)日:2023-01-24

公开(公告)号:CN109101260B

主分类号:G06F8/65

分类号:G06F8/65

优先权:

专利状态码:有效-授权

法律状态:2023.01.24#授权;2019.01.22#实质审查的生效;2018.12.28#公开

摘要:本发明实施例公开了一种节点软件的升级方法、装置和计算机可读存储介质,管理节点可以发送信息获取指令,以获取各节点的软件部署信息;在软件部署信息中包括有应用程序类型;调用预先设定的节点分组规则,并依据软件部署信息,对各节点进行分组,得到多个节点组,以保证对一个节点组中的各节点进行软件的升级时,剩余的其它节点可以涵盖所有的应用程序类型。管理节点可以向目标节点组中的各节点下发软件升级指令,以便于目标节点组中各节点完成软件的升级任务。在该技术方案中,可以对各节点进行自动化的分组,避免了在节点软件升级之前繁琐的人工规划,极大节省了人力资源,提升了软件升级的部署效率。

主权项:1.一种节点软件的升级方法,其特征在于,包括:发送信息获取指令,以获取各节点的软件部署信息;其中,在所述软件部署信息中包括有应用程序类型;调用预先设定的节点分组规则,并依据所述软件部署信息,对各所述节点进行分组,以得到多个节点组;其中,所述预先设定的节点分组规则为根据各所述节点的升级顺序分组或根据所述应用程序类型分组;向目标节点组中的各节点下发软件升级指令,以便于所述目标节点组中各节点完成软件的升级任务;其中,所述目标节点组为所有所述节点组中的任意一组节点组;除所述目标节点组之外的其它节点组涵盖有所有的应用程序类型,以保证所述目标节点组执行软件的升级任务时业务的不中断;并且,所述调用预先设定的节点分组规则,并依据所述软件部署信息,对各所述节点进行分组,以得到多个节点组包括:S201:选取目标节点作为待升级节点,与所述目标节点相邻的下一个节点作为候选节点;其中,所述目标节点为所有未分组节点中的一个节点;所述候选节点为所述未分组节点中的节点;S202:根据各所述软件部署信息,统计所有所述待升级节点和所述候选节点所包含的第一应用程序类型集,以及所有所述节点中除所述待升级节点和所述候选节点之外的其它节点所包含的第二应用程序类型集;S203:判断所述第一应用程序类型集是否包含于所述第二应用程序类型集;若是,则执行S204;若否,则执行S205;S204:将所述候选节点作为待升级节点,将与所述候选节点相邻的下一个未分组节点作为新的候选节点,并返回所述S202;S205:将所有所述待升级节点作为一个节点组,并执行S206;S206:判断是否完成了对所有节点的分组处理;若是,则结束节点分组操作;若否,则返回所述S201;或,所述调用预先设定的节点分组规则,并依据所述软件部署信息,对各所述节点进行分组,以得到多个节点组包括:S301:根据各节点所对应的软件部署信息,统计各应用程序类型所对应的节点;S302:将所有已分组的节点作为候选节点,并从第一应用程序类型所对应的所有未分组节点中选取一个节点作为候选节点,将所有未分组节点中除所述候选节点之外的其它节点作为待升级节点;并将所有所述应用程序类型中除所述第一应用程序类型之外的其它应用程序类型作为候选类型集;其中,所述第一应用程序类型为所述应用程序类型中的任意一种应用程序类型;S303:从所述候选类型集中选取一个应用程序类型作为第二应用程序类型,并判断所有所述候选节点是否包含有第二应用程序类型;若否,则执行S304;若是,则执行S305;S304:从所述待升级节点中删除一个包含有所述第二应用程序类型的目标节点,将所述目标节点作为候选节点,并执行S305;S305:将所述第二应用程序类型从所述候选类型集中删除,并判断所述候选类型集是否为空;若是,则执行S306;若否,则返回所述S303;S306:将所有所述待升级节点作为一个节点组,并判断是否完成了对所有节点的分组处理;若是,则结束节点分组操作;若否,则返回所述S302。

全文数据:一种节点软件的升级方法、装置和计算机可读存储介质技术领域本发明涉及分布式软件系统技术领域,特别是涉及一种节点软件的升级方法、装置和计算机可读存储介质。背景技术分布式软件系统DistributedSoftwareSystems,DSS是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。根据分布式软件系统所执行的任务,可以将分布式软件系统划分成多个类型的应用程序。每个类型的应用程序负责执行相对应的子任务,同一个类型的应用程序可以同时配置在多个节点上。所有类型的应用程序构成一个完整的服务体系,以保证分布式软件系统向外提供的业务不中断。若当处于运行状态的所有节点中缺乏某个或某些类型的应用程序时,则会导致分布式软件系统向外提供的业务出现中断。如图1所示,分布式软件系统包括有3种类型的应用程序,分别为应用程序1、应用程序2和应用程序3,其中,应用程序1同时部署在4台计算节点上的虚拟机中;应用程序2同时部署在第1台和第3台计算节点上的虚拟机中;应用程序3同时部署在第2台和第4台计算节点上的虚拟机中。为保障分布式软件系统向外提供的服务不中断,需保证每种类型的应用程序所在的至少一台虚拟机处于运行状态。但是在实际应用场景中,计算节点需要至少一次重启才能完成软件的升级流程,计算节点的重启会导致虚拟机关机,从而导致该虚拟机上的业务出现中断。传统方式中,在对节点软件进行升级时,为保证分布式软件系统向外提供的业务不中断,需要人工精细规划每批次升级的主机列表,即将各节点进行分组,按照分组顺序批量对节点进行软件升级,该过程需要耗费大量的人力,导致节点软件升级的部署效率较低。可见,如何在保证业务不中断的前提下提升软件升级的部署效率,是本领域技术人员亟待解决的问题。发明内容本发明实施例的目的是提供一种节点软件的升级方法、装置和计算机可读存储介质,可以在保证业务不中断的前提下提升软件升级的部署效率。为解决上述技术问题,本发明实施例提供一种节点软件的升级方法,包括:发送信息获取指令,以获取各节点的软件部署信息;其中,在所述软件部署信息中包括有应用程序类型;调用预先设定的节点分组规则,并依据所述软件部署信息,对各所述节点进行分组,以得到多个节点组;向目标节点组中的各节点下发软件升级指令,以便于所述目标节点组中各节点完成软件的升级任务;其中,所述目标节点组为所有所述节点组中的任意一组节点组;除所述目标节点组之外的其它节点组涵盖有所有的应用程序类型,以保证所述目标节点组执行软件的升级任务时业务的不中断。可选的,所述调用预先设定的节点分组规则,并依据所述软件部署信息,对各所述节点进行分组,以得到多个节点组包括:S201:选取目标节点作为待升级节点,与所述目标节点相邻的下一个节点作为候选节点;其中,所述目标节点为所有未分组节点中的一个节点;所述候选节点为所述未分组节点中的节点;S202:根据各所述软件部署信息,统计所有所述待升级节点和所述候选节点所包含的第一应用程序类型集,以及所有所述节点中除所述待升级节点和所述候选节点之外的其它节点所包含的第二应用程序类型集;S203:判断所述第一应用程序类型集是否包含于所述第二应用程序类型集;若是,则执行S204;若否,则执行S205;S204:将所述候选节点作为待升级节点,将与所述候选节点相邻的下一个未分组节点作为新的候选节点,并返回所述S202;S205:将所有所述待升级节点作为一个节点组,并执行S206;S206:判断是否完成了对所有节点的分组处理;若是,则结束节点分组操作;若否,则返回所述S201。可选的,所述调用预先设定的节点分组规则,并依据所述软件部署信息,对各所述节点进行分组,以得到多个节点组包括:S301:根据各节点所对应的软件部署信息,统计各应用程序类型所对应的节点;S302:将所有已分组的节点作为候选节点,并从第一应用程序类型所对应的所有未分组节点中选取一个节点作为候选节点,将所有未分组节点中除所述候选节点之外的其它节点作为待升级节点;并将所有所述应用程序类型中除所述第一应用程序类型之外的其它应用程序类型作为候选类型集;其中,所述第一应用程序类型为所述应用程序类型中的任意一种应用程序类型;S303:从所述候选类型集中选取一个应用程序类型作为第二应用程序类型,并判断所有所述候选节点是否包含有第二应用程序类型;若否,则执行S304;若是,则执行S305;S304:从所述待升级节点中删除一个包含有所述第二应用程序类型的目标节点,将所述目标节点作为候选节点,并执行S305;S305:将所述第二应用程序类型从所述候选类型集中删除,并判断所述候选应用程序类型集是否为空;若是,则执行所述S306;若否,则返回所述S303;S306:将所有所述待升级节点作为一个节点组,并判断是否完成了对所有节点的分组处理;若是,则结束节点分组操作;若否,则返回所述S302。可选的,在所述向目标节点组中的各节点下发软件升级指令之后还包括:判断在预设时间内是否接收到所述目标节点组中各节点反馈的升级结果;当存在未反馈升级结果的节点时,则向所述未反馈升级结果的节点重新发送软件升级指令。可选的,还包括:统计向所述未反馈升级结果的节点发送软件升级指令的次数;当所述次数超过限定值时,则停止向未反馈升级结果的节点发送软件升级指令,并进行报警提示。本发明实施例还提供了一种节点软件的升级装置,包括获取单元、分组单元和发送单元;所述获取单元,用于发送信息获取指令,以获取各节点的软件部署信息;其中,在所述软件部署信息中包括有应用程序类型;所述分组单元,用于调用预先设定的节点分组规则,并依据所述软件部署信息,对各所述节点进行分组,以得到多个节点组;所述发送单元,用于向目标节点组中的各节点下发软件升级指令,以便于所述目标节点组中各节点完成软件的升级任务;其中,所述目标节点组为所有所述节点组中的任意一组节点组;除所述目标节点组之外的其它节点组涵盖有所有的应用程序类型,以保证所述目标节点组执行软件的升级任务时业务的不中断。可选的,所述分组单元包括选取子单元、统计子单元、第一判断子单元、第一作为子单元、第二作为子单元和第二判断子单元;所述选取子单元,用于选取目标节点作为待升级节点,与所述目标节点相邻的下一个节点作为候选节点;其中,所述目标节点为所有未分组节点中的一个节点;所述候选节点为所述未分组节点中的节点;所述统计子单元,用于根据各所述软件部署信息,统计所有所述待升级节点和所述候选节点所包含的第一应用程序类型集,以及所有所述节点中除所述待升级节点和所述候选节点之外的其它节点所包含的第二应用程序类型集;所述第一判断子单元,用于判断所述第一应用程序类型集是否包含于所述第二应用程序类型集;若是,则触发所述第一作为子单元;若否,则触发所述第二作为子单元;所述第一作为子单元,用于将所述候选节点作为待升级节点,将与所述候选节点相邻的下一个未分组节点作为新的候选节点,并返回所述统计子单元;所述第二作为子单元,用于将所有所述待升级节点作为一个节点组,并触发所述第二判断子单元,用于;所述第二判断子单元,用于判断是否完成了对所有节点的分组处理;若是,则结束节点分组操作;若否,则返回所述选取子单元。可选的,所述分组单元包括统计子单元、选取子单元、第一判断子单元、第一删除子单元、第二删除子单元、第二判断子单元、作为子单元和第三判断子单元;所述统计子单元,用于根据各节点所对应的软件部署信息,统计各应用程序类型所对应的节点;所述选取子单元,用于将所有已分组的节点作为候选节点,并从第一应用程序类型所对应的所有未分组节点中选取一个节点作为候选节点,将所有未分组节点中除所述候选节点之外的其它节点作为待升级节点;并将所有所述应用程序类型中除所述第一应用程序类型之外的其它应用程序类型作为候选类型集;其中,所述第一应用程序类型为所述应用程序类型中的任意一种应用程序类型;所述第一判断子单元,用于从所述候选类型集中选取一个应用程序类型作为第二应用程序类型,并判断所有所述候选节点是否包含有第二应用程序类型;若否,则触发所述第一删除子单元;若是,则触发所述第二删除子单元;所述第一删除子单元,用于从所述待升级节点中删除一个包含有所述第二应用程序类型的目标节点,将所述目标节点作为候选节点,并触发所述第二删除子单元;所述第二删除子单元,用于将所述第二应用程序类型从所述候选类型集中删除,并触发所述第二判断子单元;所述第二判断子单元,用于判断所述候选应用程序类型集是否为空;若是,则触发所述作为子单元;若否,则返回所述第一判断子单元;所述作为子单元,用于将所有所述待升级节点作为一个节点组,并触发所述第三判断子单元;所述第三判断子单元,用于判断是否完成了对所有节点的分组处理;若是,则结束节点分组操作;若否,则返回所述选取子单元。可选的,还包括判断单元;所述判断单元,用于在所述发送单元向目标节点组中的各节点下发软件升级指令之后,判断在预设时间内是否接收到所述目标节点组中各节点反馈的升级结果;所述发送单元还用于当存在未反馈升级结果的节点时,向所述未反馈升级结果的节点重新发送软件升级指令。可选的,还包括统计单元和提示单元;所述统计单元,用于统计向所述未反馈升级结果的节点发送软件升级指令的次数;所述提示单元,用于当所述次数超过限定值时,则停止向未反馈升级结果的节点发送软件升级指令,并进行报警提示。本发明实施例还提供了一种节点软件的升级装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序以实现如上述节点软件的升级方法的步骤。本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述节点软件的升级方法的步骤。由上述技术方案可以看出,管理节点可以发送信息获取指令,以获取各节点的软件部署信息;其中,在软件部署信息中包括有应用程序类型;调用预先设定的节点分组规则,并依据软件部署信息,对各所述节点进行分组,以得到多个节点组;节点分组规则以业务不中断为原则,对一个节点组中的各节点进行软件的升级时,剩余的其它节点可以涵盖所有的应用程序类型,从而可以保证该节点组执行软件的升级任务时业务的不中断。管理节点完成对节点的分组后,可以向一个节点组即目标节点组中的各节点下发软件升级指令,以便于目标节点组中各节点完成软件的升级任务,参照目标节点组的处理方式,可以依次对各节点组完成软件的升级任务。在该技术方案中,管理节点根据各节点上部署的应用程序类型和节点分组规则,可以对各节点进行自动化的分组,避免了在节点软件升级之前繁琐的人工规划,极大节省了人力资源,提升了软件升级的部署效率。附图说明为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种分布式软件系统的部署架构的示意图;图2为本发明实施例提供的一种节点软件的升级方法的流程图;图3为本发明实施例提供的一种基于节点的升级顺序的节点分组方法的流程图;图4为本发明实施例提供的一种基于应用程序的类型的节点分组方法的流程图;图5为本发明实施例提供的一种节点软件的升级装置的结构示意图;图6为本发明实施例提供的一种节点软件的升级装置的硬件结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。接下来,详细介绍本发明实施例所提供的一种节点软件的升级方法。图2为本发明实施例提供的一种节点软件的升级方法的流程图,该方法包括:S101:发送信息获取指令,以获取各节点的软件部署信息。其中,在软件部署信息中包括有应用程序类型。在分布式软件系统中包括有一个管理节点和多个计算节点,管理节点用于对各计算节点进行监管。在本发明实施例中,可以在管理节点上设置分组功能,用于将各计算节点进行分组。为了方便描述,在本发明实施例中,将各计算节点简称为节点。在对各节点进行分组之前,首先需要获知各节点上软件部署情况,即节点上部署有哪些类型的应用程序。在实际应用场景中,负载均衡器可以检测相应类型的应用程序部署在哪些节点的虚拟机上。因此,在具体实现中,管理节点可以向各负载均衡器发送信息获取指令,相应的,各负载均衡器可以将软件部署信息反馈给管理节点。结合图1所示的分布式软件系统,管理节点可以向3个负载均衡器均发送信息获取指令,各负载均衡器可以将软件部署信息反馈给管理节点。负载均衡器1反馈的软件部署信息可以包括节点1-节点4部署有应用程序1,负载均衡器2反馈的软件部署信息可以包括节点1和节点3上部署有应用程序2,负载均衡器3反馈的软件部署信息可以包括节点2和节点4上部署有应用程序3,管理节点依据获取的各软件部署信息,可以获知节点1部署有应用程序1和应用程序2;节点2部署有应用程序1和应用程序3;节点3部署有应用程序1和应用程序2;节点4部署有应用程序1和应用程序3。S102:调用预先设定的节点分组规则,并依据软件部署信息,对各节点进行分组,以得到多个节点组。在本发明实施例中,可以预先选定一个存储空间,用于存储节点分组规则。当管理节点获取到各节点的软件部署信息后,可以从该存储空间中调用节点分组规则,从而对各节点进行分组。节点分组规则是以业务不中断为原则,只要能够保证对一个节点组中的各节点进行软件的升级时,剩余的其它节点可以涵盖所有的应用程序类型即可。由此可以保证对一个节点组执行软件的升级任务时业务的不中断。S103:向目标节点组中的各节点下发软件升级指令,以便于目标节点组中各节点完成软件的升级任务。其中,目标节点组可以是所有节点组中的任意一组节点组。参照目标节点组的处理方式,可以依次对各节点组完成软件的升级任务。依据S102的分组方式,除目标节点组之外的其它节点组涵盖有所有的应用程序类型,从而可以保证目标节点组执行软件的升级任务时业务的不中断。其中,S102中提及的节点分组规则的具体形式可以有多种,在本发明实施例中,将以两种形式的节点分组规则为例,对节点的分组过程展开介绍。其中,第一种形式的节点分组规则可以是基于节点的升级顺序进行分组,其具体流程如图3所示。图3为本发明实施例提供的一种基于节点的升级顺序的节点分组方法的流程图,该方法包括:S201:选取目标节点作为待升级节点,与目标节点相邻的下一个节点作为候选节点。其中,目标节点为所有未分组节点中的一个节点;候选节点为未分组节点中的节点。在实际应用中,分布式软件系统中包含的节点数量较多,为了区别不同的节点,可以对各节点设置节点编号,例如,分布式软件系统中包含有4个节点,可以依次编号为1-4。在具体实现中,可以依据节点的编号顺序,选取相邻的节点。在对节点进行分组时,为了实现对节点的有序分组,防止遗漏节点,可以依据节点的编号顺序,依次对各节点进行分组处理。在初始状态下,各节点均未进行分组,可以将编号为1的节点即节点1作为待升级节点,与其相邻的下一个节点即编号为2的节点即节点2作为候选节点。S202:根据各软件部署信息,统计所有待升级节点和候选节点所包含的第一应用程序类型集,以及所有节点中除待升级节点和候选节点之外的其它节点所包含的第二应用程序类型集。第一应用程序类型集即为待升级节点和候选节点上部署的应用程序类型的集合;第二应用程序类型集即为除了待升级节点和候选节点之外的其它节点上部署的应用程序类型的集合。以图1所示的分布式软件系统为例,在初始状态下,节点1为待升级节点,节点2为候选节点。其中,节点1上部署有应用程序1和应用程序2,节点2上部署有应用程序1和应用程序3,相应的,第一应用程序类型集包括应用程序1、应用程序2和应用程序3;除节点1和节点2之外节点包括节点3和节点4。其中,节点3上部署有应用程序1和应用程序2,节点4上部署有应用程序1和应用程序3,相应的,第二应用程序类型集包括应用程序1、应用程序2和应用程序3。S203:判断第一应用程序类型集是否包含于第二应用程序类型集。当第一应用程序类型集包含于第二应用程序类型集时,则说明将待升级节点和候选节点作为一个节点组时,除待升级节点和候选节点之外的其它节点涵盖有所有的应用程序类型,对该节点组执行软件的升级任务时,则可以保证业务的不中断,因此,当第一应用程序类型集包含于第二应用程序类型集时,则执行S204。当第一应用程序类型集不包含于第二应用程序类型集时,则说明将待升级节点和候选节点作为一个节点组时,除待升级节点和候选节点之外的其它节点无法涵盖所有的应用程序类型,对该节点组执行软件的升级任务时,则可能导致业务的中断,因此,当第一应用程序类型集不包含于第二应用程序类型集时,则执行S205。S204:将候选节点作为待升级节点,将与候选节点相邻的下一个未分组节点作为新的候选节点,并返回S202。当第一应用程序类型集包含于第二应用程序类型集时,则可以将候选节点作为待升级节点,将与候选节点相邻的下一个未分组节点作为新的候选节点,并返回S202,以便于对新的候选节点和所有的待升级节点是否能够作为一个节点组进行判断。结合上述S202的举例,当节点1为待升级节点,节点2为候选节点符合S203的条件时,此时则可以将节点2作为待升级节点,与节点2相邻的下一个未分组的节点即节点3作为新的候选节点,此时,待升级节点包括节点1和节点2,候选节点为节点3。需要说明的是,当候选节点为最后一个未分组节点时,不存在与候选节点相邻的下一个未分组节点,此时,则可以执行S205。S205:将所有待升级节点作为一个节点组,并执行S206。当第一应用程序类型集不包含于第二应用程序类型集时,则说明在保证业务不中断的前提下,不能将候选节点和待升级节点作为同一个节点组,此时,则可以将所有待升级节点作为一个节点组。S206:判断是否完成了对所有节点的分组处理。当分布式软件系统中的各节点都有其对应的分组时,则说明已经完成了节点的分组处理,则可以结束节点分组操作。轮询一次S201-S206的操作,可以获取到一个节点组。当分布式软件系统中的存在未分组的节点时,则可以返回S201,按照S201-S206的操作对未分组的节点进行分组处理,直至对所有的节点完成分组处理后,则可以结束节点分组操作。结合图1所示的分布式软件系统,在初始状态下,可以将节点1作为待升级节点,将节点2作为候选节点,相应的应用程序类型集符合S203的判断条件,此时,则可以将节点2划分为待升级节点,节点3作为候选节点,相应的此时第一应用程序类型集包括应用程序1、应用程序2和应用程序3,第二应用程序类型集包括应用程序1和应用程序3,其不符合S203的判断条件,因此依据S205的操作,可以将节点1和节点2作为一个节点组。相应的,此时未分组的节点包括节点3和节点4,依照S201-S206的操作,可以获知节点3和节点4满足S203的判断条件,此时,可以将节点3和节点4作为另一个节点组。第二种形式的节点分组规则可以是基于应用程序的类型进行分组,其具体流程如图4所示。图4为本发明实施例提供的一种基于应用程序的类型的节点分组方法的流程图,该方法包括:S301:根据各节点所对应的软件部署信息,统计各应用程序类型所对应的节点。以图1所示的分布式软件系统为例,应用程序1对应的节点包括节点1-节点4,应用程序2对应的节点包括节点1和节点3,应用程序3对应的节点包括节点2和节点4。S302:将所有已分组的节点作为候选节点,并从第一应用程序类型所对应的所有未分组节点中选取一个节点作为候选节点,将所有未分组节点中除候选节点之外的其它节点作为待升级节点;并将所有应用程序类型中除第一应用程序类型之外的其它应用程序类型作为候选类型集。其中,第一应用程序类型为应用程序类型中的任意一种应用程序类型。结合图1所示的分布式软件系统,在初始状态下,可以将应用程序1作为第一应用程序类型,相应的,候选类型集包括应用程序2和应用程序3。第一应用程序类型对应的所有未分组节点包括节点1-节点4,例如可以选取节点4作为候选节点,相应的,节点1-节点3均作为待升级节点。S303:从候选类型集中选取一个应用程序类型作为第二应用程序类型,并判断所有候选节点是否包含有第二应用程序类型。初始状态下,候选类型集中包含的应用程序类型往往有多个,以应用程序1作为第一应用程序类型为例,候选类型集中包括有应用程序2和应用程序3,例如可以选取应用程序2作为第二应用程序类型。当候选节点中不包含第二应用程序类型时,则说明对待升级节点执行软件的升级任务时,第二应用程序类型对应的子业务流程会出现中断,为了保证节点执行软件升级的任务时业务的不中断,此时需要对待升级节点中包含的节点进行删减,即可以执行S304。当候选节点中包含有第二应用程序类型时,则说明对待升级节点执行软件的升级任务时,第二应用程序类型对应的子业务流程不会出现中断,此时则可以执行S305。S304:从待升级节点中删除一个包含有第二应用程序类型的目标节点,将目标节点作为候选节点,并执行S305。当所有候选节点不包含第二应用程序类型,可以从待升级节点中选取出一个包含第二应用程序类型的节点,将该节点由待升级节点转换为候选节点,此时,可以保证所有候选节点中可以涵盖第二应用程序类型。结合上述S303的举例,候选节点即节点4不包含应用程序2,而待升级节点中节点1和节点3均包含有应用程序2,以节点3为例,为了保证所有候选节点可以涵盖应用程序2,则可以将节点3从待升级节点中移除,并将节点3作为候选节点,此时,待升级节点中包含节点1和节点2,候选节点包括节点3和节点4。S305:将第二应用程序类型从候选类型集中删除,并判断候选应用程序类型集是否为空。当所有候选节点涵盖有第二应用程序类型时,则可以将第二应用程序类型从候选类型集中删除。当候选应用程序类型集为空时,则说明所有候选节点已经涵盖了所有的应用程序类型,此时可以执行S306。当候选应用程序类型集不为空时,则需要对所有候选节点是否涵盖了所有的应用程序类型进行判断,即可以返回S303。S306:将所有待升级节点作为一个节点组,并判断是否完成了对所有节点的分组处理。当分布式软件系统中的各节点都有其对应的分组时,则说明已经完成了节点的分组处理,则可以结束节点分组操作。轮询一次S302-S306的操作,可以获取到一个节点组。当分布式软件系统中的存在未分组的节点时,则可以返回S302,按照S302-S306的操作对未分组的节点进行分组处理,直至对所有的节点完成分组处理后,则可以结束节点分组操作。结合图1所示的分布式软件系统,在初始状态下,可以将节点4作为候选节点,节点1-节点3作为待升级节点,应用程序1作为第一应用程序类型,应用程序2作为第二应用程序类型,由于候选节点不包含第二应用程序类型,此时,则可以将包含应用程序2的节点3从待升级节点中移除,并将节点3作为候选节点。此时,候选类型集中还包括应用程序1,由于所有候选节点涵盖有应用程序1,所以可以当前的待升级节点即节点1和节点2作为一个节点组。相应的,此时未分组的节点包括节点3和节点4,依照S302-S306的操作,可以获知节点3和节点4满足S303的判断条件,此时,可以将节点3和节点4作为另一个节点组。需要说明的是,在本发明实施例中,可以在对所有的节点完成分组处理后,再依次对各节点组进行软件的升级;也可以在计算出一个节点组后,则先对该组进行升级,并同时对未分组的节点执行分组处理。由上述技术方案可以看出,管理节点可以发送信息获取指令,以获取各节点的软件部署信息;其中,在软件部署信息中包括有应用程序类型;调用预先设定的节点分组规则,并依据软件部署信息,对各所述节点进行分组,以得到多个节点组;节点分组规则以业务不中断为原则,对一个节点组中的各节点进行软件的升级时,剩余的其它节点可以涵盖所有的应用程序类型,从而可以保证该节点组执行软件的升级任务时业务的不中断。管理节点完成对节点的分组后,可以向一个节点组即目标节点组中的各节点下发软件升级指令,以便于目标节点组中各节点完成软件的升级任务,参照目标节点组的处理方式,可以依次对各节点组完成软件的升级任务。在该技术方案中,管理节点根据各节点上部署的应用程序类型和节点分组规则,可以对各节点进行自动化的分组,避免了在节点软件升级之前繁琐的人工规划,极大节省了人力资源,提升了软件升级的部署效率。在对各节点组执行软件的升级任务时,需要等待当前节点组完成软件的升级任务之后,才对下一个节点组执行软件的升级任务。考虑到在实际应用中,可以会出现节点组中节点软件升级失败的情况发生。其中,导致节点软件升级失败的原因可能是节点自身出现故障,也可能是节点未接收到软件升级指令。针对于节点软件升级失败的情况,在具体实现中,可以设置判断机制。具体的,可以在向目标节点组中的各节点下发软件升级指令之后,判断在预设时间内是否接收到目标节点组中各节点反馈的升级结果。预设时间的取值可以依据实际需求进行设定,在此不做限定。当在预设时间内接收到目标节点组中各节点反馈的升级结果时,则说明该节点组完成了软件的升级任务。当存在未反馈升级结果的节点时,则可以向未反馈升级结果的节点重新发送软件升级指令。通过重新发送软件升级指令,可以有效的降低由于指令接收失败导致节点软件升级任务失败的情况发生,从而有效的保证节点软件升级任务的顺利执行,提升了分布式软件系统的性能。针对于节点软件升级失败的情况,当节点自身出现故障时,在节点故障未解决之前,向该节点多次发送软件升级指令都属于无用的操作。因此,在本发明实施例中,可以统计向未反馈升级结果的节点发送软件升级指令的次数;当次数超过限定值时,则停止向未反馈升级结果的节点发送软件升级指令,并进行报警提示。限定值的取值可以依据实际需求进行设定,例如,可以将限定值设置为3次,当向某个节点发送了3次软件升级指令后,仍未收到该节点反馈的升级结果,则说明该节点可能出现了故障,此时可以停止向未反馈升级结果的节点发送软件升级指令,并进行报警提示。其中,报警提示的方式可以有多种,可以通过显示屏展示该节点的相关信息,例如,节点的编号等;也可以播放音频,以起到警示的作用。通过设置提示机制,可以当节点出现故障时,及时提醒用户进行故障的检修和处理,并且可以有效的避免不断地向故障节点发送软件升级指令。图5为本发明实施例提供的一种节点软件的升级装置的结构示意图,包括获取单元51、分组单元52和发送单元53;获取单元51,用于发送信息获取指令,以获取各节点的软件部署信息;其中,在软件部署信息中包括有应用程序类型;分组单元52,用于调用预先设定的节点分组规则,并依据软件部署信息,对各节点进行分组,以得到多个节点组;发送单元53,用于向目标节点组中的各节点下发软件升级指令,以便于目标节点组中各节点完成软件的升级任务;其中,目标节点组为所有节点组中的任意一组节点组;除目标节点组之外的其它节点组涵盖有所有的应用程序类型,以保证目标节点组执行软件的升级任务时业务的不中断。可选的,分组单元包括选取子单元、统计子单元、第一判断子单元、第一作为子单元、第二作为子单元和第二判断子单元;选取子单元,用于选取目标节点作为待升级节点,与目标节点相邻的下一个节点作为候选节点;其中,目标节点为所有未分组节点中的一个节点;候选节点为未分组节点中的节点;统计子单元,用于根据各软件部署信息,统计所有待升级节点和候选节点所包含的第一应用程序类型集,以及所有节点中除待升级节点和候选节点之外的其它节点所包含的第二应用程序类型集;第一判断子单元,用于判断第一应用程序类型集是否包含于第二应用程序类型集;若是,则触发第一作为子单元;若否,则触发第二作为子单元;第一作为子单元,用于将候选节点作为待升级节点,将与候选节点相邻的下一个未分组节点作为新的候选节点,并返回统计子单元;第二作为子单元,用于将所有待升级节点作为一个节点组,并触发第二判断子单元,用于;第二判断子单元,用于判断是否完成了对所有节点的分组处理;若是,则结束节点分组操作;若否,则返回选取子单元。可选的,分组单元包括统计子单元、选取子单元、第一判断子单元、第一删除子单元、第二删除子单元、第二判断子单元、作为子单元和第三判断子单元;统计子单元,用于根据各节点所对应的软件部署信息,统计各应用程序类型所对应的节点;选取子单元,用于将所有已分组的节点作为候选节点,并从第一应用程序类型所对应的所有未分组节点中选取一个节点作为候选节点,将所有未分组节点中除候选节点之外的其它节点作为待升级节点;并将所有应用程序类型中除第一应用程序类型之外的其它应用程序类型作为候选类型集;其中,第一应用程序类型为应用程序类型中的任意一种应用程序类型;第一判断子单元,用于从候选类型集中选取一个应用程序类型作为第二应用程序类型,并判断所有候选节点是否包含有第二应用程序类型;若否,则触发第一删除子单元;若是,则触发第二删除子单元;第一删除子单元,用于从待升级节点中删除一个包含有第二应用程序类型的目标节点,将目标节点作为候选节点,并触发第二删除子单元;第二删除子单元,用于将第二应用程序类型从候选类型集中删除,并触发第二判断子单元;第二判断子单元,用于判断候选应用程序类型集是否为空;若是,则触发作为子单元;若否,则返回第一判断子单元;作为子单元,用于将所有待升级节点作为一个节点组,并触发第三判断子单元;第三判断子单元,用于判断是否完成了对所有节点的分组处理;若是,则结束节点分组操作;若否,则返回选取子单元。可选的,还包括判断单元;判断单元,用于在发送单元向目标节点组中的各节点下发软件升级指令之后,判断在预设时间内是否接收到目标节点组中各节点反馈的升级结果;所述发送单元还用于当存在未反馈升级结果的节点时,向未反馈升级结果的节点重新发送软件升级指令。可选的,还包括统计单元和提示单元;统计单元,用于统计向未反馈升级结果的节点发送软件升级指令的次数;提示单元,用于当次数超过限定值时,则停止向未反馈升级结果的节点发送软件升级指令,并进行报警提示。图5所对应实施例中特征的说明可以参见图2-图4所对应实施例的相关说明,这里不再一一赘述。由上述技术方案可以看出,管理节点可以发送信息获取指令,以获取各节点的软件部署信息;其中,在软件部署信息中包括有应用程序类型;调用预先设定的节点分组规则,并依据软件部署信息,对各所述节点进行分组,以得到多个节点组;节点分组规则以业务不中断为原则,对一个节点组中的各节点进行软件的升级时,剩余的其它节点可以涵盖所有的应用程序类型,从而可以保证该节点组执行软件的升级任务时业务的不中断。管理节点完成对节点的分组后,可以向一个节点组即目标节点组中的各节点下发软件升级指令,以便于目标节点组中各节点完成软件的升级任务,参照目标节点组的处理方式,可以依次对各节点组完成软件的升级任务。在该技术方案中,管理节点根据各节点上部署的应用程序类型和节点分组规则,可以对各节点进行自动化的分组,避免了在节点软件升级之前繁琐的人工规划,极大节省了人力资源,提升了软件升级的部署效率。图6为本发明实施例提供的一种节点软件的升级装置60的硬件结构示意图,包括:存储器61,用于存储计算机程序;处理器62,用于执行计算机程序以实现如上述节点软件的升级方法的步骤。本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述节点软件的升级方法的步骤。以上对本发明实施例所提供的一种节点软件的升级方法、装置和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器RAM、内存、只读存储器ROM、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

权利要求:1.一种节点软件的升级方法,其特征在于,包括:发送信息获取指令,以获取各节点的软件部署信息;其中,在所述软件部署信息中包括有应用程序类型;调用预先设定的节点分组规则,并依据所述软件部署信息,对各所述节点进行分组,以得到多个节点组;向目标节点组中的各节点下发软件升级指令,以便于所述目标节点组中各节点完成软件的升级任务;其中,所述目标节点组为所有所述节点组中的任意一组节点组;除所述目标节点组之外的其它节点组涵盖有所有的应用程序类型,以保证所述目标节点组执行软件的升级任务时业务的不中断。2.根据权利要求1所述的方法,其特征在于,所述调用预先设定的节点分组规则,并依据所述软件部署信息,对各所述节点进行分组,以得到多个节点组包括:S201:选取目标节点作为待升级节点,与所述目标节点相邻的下一个节点作为候选节点;其中,所述目标节点为所有未分组节点中的一个节点;所述候选节点为所述未分组节点中的节点;S202:根据各所述软件部署信息,统计所有所述待升级节点和所述候选节点所包含的第一应用程序类型集,以及所有所述节点中除所述待升级节点和所述候选节点之外的其它节点所包含的第二应用程序类型集;S203:判断所述第一应用程序类型集是否包含于所述第二应用程序类型集;若是,则执行S204;若否,则执行S205;S204:将所述候选节点作为待升级节点,将与所述候选节点相邻的下一个未分组节点作为新的候选节点,并返回所述S202;S205:将所有所述待升级节点作为一个节点组,并执行S206;S206:判断是否完成了对所有节点的分组处理;若是,则结束节点分组操作;若否,则返回所述S201。3.根据权利要求1所述的方法,其特征在于,所述调用预先设定的节点分组规则,并依据所述软件部署信息,对各所述节点进行分组,以得到多个节点组包括:S301:根据各节点所对应的软件部署信息,统计各应用程序类型所对应的节点;S302:将所有已分组的节点作为候选节点,并从第一应用程序类型所对应的所有未分组节点中选取一个节点作为候选节点,将所有未分组节点中除所述候选节点之外的其它节点作为待升级节点;并将所有所述应用程序类型中除所述第一应用程序类型之外的其它应用程序类型作为候选类型集;其中,所述第一应用程序类型为所述应用程序类型中的任意一种应用程序类型;S303:从所述候选类型集中选取一个应用程序类型作为第二应用程序类型,并判断所有所述候选节点是否包含有第二应用程序类型;若否,则执行S304;若是,则执行S305;S304:从所述待升级节点中删除一个包含有所述第二应用程序类型的目标节点,将所述目标节点作为候选节点,并执行S305;S305:将所述第二应用程序类型从所述候选类型集中删除,并判断所述候选应用程序类型集是否为空;若是,则执行所述S306;若否,则返回所述S303;S306:将所有所述待升级节点作为一个节点组,并判断是否完成了对所有节点的分组处理;若是,则结束节点分组操作;若否,则返回所述S302。4.根据权利要求1所述的方法,其特征在于,在所述向目标节点组中的各节点下发软件升级指令之后还包括:判断在预设时间内是否接收到所述目标节点组中各节点反馈的升级结果;当存在未反馈升级结果的节点时,则向所述未反馈升级结果的节点重新发送软件升级指令。5.根据权利要求4所述的方法,其特征在于,还包括:统计向所述未反馈升级结果的节点发送软件升级指令的次数;当所述次数超过限定值时,则停止向未反馈升级结果的节点发送软件升级指令,并进行报警提示。6.一种节点软件的升级装置,其特征在于,包括获取单元、分组单元和发送单元;所述获取单元,用于发送信息获取指令,以获取各节点的软件部署信息;其中,在所述软件部署信息中包括有应用程序类型;所述分组单元,用于调用预先设定的节点分组规则,并依据所述软件部署信息,对各所述节点进行分组,以得到多个节点组;所述发送单元,用于向目标节点组中的各节点下发软件升级指令,以便于所述目标节点组中各节点完成软件的升级任务;其中,所述目标节点组为所有所述节点组中的任意一组节点组;除所述目标节点组之外的其它节点组涵盖有所有的应用程序类型,以保证所述目标节点组执行软件的升级任务时业务的不中断。7.根据权利要求6所述的装置,其特征在于,所述分组单元包括选取子单元、统计子单元、第一判断子单元、第一作为子单元、第二作为子单元和第二判断子单元;所述选取子单元,用于选取目标节点作为待升级节点,与所述目标节点相邻的下一个节点作为候选节点;其中,所述目标节点为所有未分组节点中的一个节点;所述候选节点为所述未分组节点中的节点;所述统计子单元,用于根据各所述软件部署信息,统计所有所述待升级节点和所述候选节点所包含的第一应用程序类型集,以及所有所述节点中除所述待升级节点和所述候选节点之外的其它节点所包含的第二应用程序类型集;所述第一判断子单元,用于判断所述第一应用程序类型集是否包含于所述第二应用程序类型集;若是,则触发所述第一作为子单元;若否,则触发所述第二作为子单元;所述第一作为子单元,用于将所述候选节点作为待升级节点,将与所述候选节点相邻的下一个未分组节点作为新的候选节点,并返回所述统计子单元;所述第二作为子单元,用于将所有所述待升级节点作为一个节点组,并触发所述第二判断子单元,用于;所述第二判断子单元,用于判断是否完成了对所有节点的分组处理;若是,则结束节点分组操作;若否,则返回所述选取子单元。8.根据权利要求6所述的装置,其特征在于,所述分组单元包括统计子单元、选取子单元、第一判断子单元、第一删除子单元、第二删除子单元、第二判断子单元、作为子单元和第三判断子单元;所述统计子单元,用于根据各节点所对应的软件部署信息,统计各应用程序类型所对应的节点;所述选取子单元,用于将所有已分组的节点作为候选节点,并从第一应用程序类型所对应的所有未分组节点中选取一个节点作为候选节点,将所有未分组节点中除所述候选节点之外的其它节点作为待升级节点;并将所有所述应用程序类型中除所述第一应用程序类型之外的其它应用程序类型作为候选类型集;其中,所述第一应用程序类型为所述应用程序类型中的任意一种应用程序类型;所述第一判断子单元,用于从所述候选类型集中选取一个应用程序类型作为第二应用程序类型,并判断所有所述候选节点是否包含有第二应用程序类型;若否,则触发所述第一删除子单元;若是,则触发所述第二删除子单元;所述第一删除子单元,用于从所述待升级节点中删除一个包含有所述第二应用程序类型的目标节点,将所述目标节点作为候选节点,并触发所述第二删除子单元;所述第二删除子单元,用于将所述第二应用程序类型从所述候选类型集中删除,并触发所述第二判断子单元;所述第二判断子单元,用于判断所述候选应用程序类型集是否为空;若是,则触发所述作为子单元;若否,则返回所述第一判断子单元;所述作为子单元,用于将所有所述待升级节点作为一个节点组,并触发所述第三判断子单元;所述第三判断子单元,用于判断是否完成了对所有节点的分组处理;若是,则结束节点分组操作;若否,则返回所述选取子单元。9.一种节点软件的升级装置,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序以实现如权利要求1至5任意一项所述节点软件的升级方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述节点软件的升级方法的步骤。

百度查询: 郑州云海信息技术有限公司 一种节点软件的升级方法、装置和计算机可读存储介质

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。