节点宕机接管方法和装置、节点集群系统与流程

文档序号:14490704研发日期:2016年阅读:303来源:国知局
技术简介:
本专利针对节点宕机后任务恢复效率低、易产生混乱的问题,提出基于分布式缓存与锁机制的解决方案。通过在节点宕机时,由其他节点获取宕机信息并判断分布式缓存中是否存在对应锁,若无锁则创建锁以独占任务恢复权,再从缓存中获取任务并接管,利用缓存的高读取效率提升恢复速度,结合锁机制避免多节点并发恢复导致的混乱,从而提高系统稳定性与任务恢复效率。
关键词:分布式缓存,节点宕机恢复

本发明涉及数据处理领域,尤其涉及一种节点宕机接管方法和装置、节点集群系统。



背景技术:

分布式应用往往部署在由多个节点构成的集群上。当其中一个节点宕机时,其他节点需要对在宕机节点上执行的任务进行接管,例如,清除宕机节点的记录、在正常工作的节点上重启任务等。

现有的方式中,所有节点的任务存储到数据库中,进行持久化。当节点宕机时,其它节点为了对宕机节点的任务进行接管,一般是由专门用于处理宕机的根节点对宕机节点的数据进行恢复。

但是,在这样的方法中,节点将会向存储任务的该数据库发送多个查询请求,任务的恢复过程受数据库过多的影响。



技术实现要素:

本发明实施例提供了一种节点宕机接管方法和装置、节点集群系统,用于提高恢复宕机节点的任务的速度和稳定性。

为了解决上述技术问题,本发明实施例提供了以下技术方案:

一种节点宕机接管方法,所述方法包括:

第二节点获取第一节点的宕机信息;

所述第二节点判断分布式缓存是否存在与第一任务对应的锁,其中所述第一任务由所述第一节点正常工作时存储到所述分布式缓存;

若所述分布式缓存未存在与所述第一任务对应的锁,则所述第二节点利用所述分布式缓存形成锁;

所述第二节点从所述分布式缓存中获取所述第一节点的所述第一任务;

所述第二节点接管所述第一任务。

为了解决上述技术问题,本发明实施例还提供了以下技术方案:

一种节点宕机接管装置,所述装置包括:

宕机信息获取单元,用于获取第一节点的宕机信息;

判断单元,用于判断分布式缓存是否存在与第一任务对应的锁,其中所述第一任务由所述第一节点正常工作时存储到所述分布式缓存;

成锁单元,用于若所述分布式缓存未存在与所述第一任务对应的锁,则所述第二节点利用所述分布式缓存形成锁;

任务获取单元,用于从所述分布式缓存中获取所述第一节点的所述第一任务;

接管单元,用于接管所述第一任务。

为了解决上述技术问题,本发明实施例还提供了以下技术方案:

一种节点集群系统,所述节点集群系统包括至少三个节点,所述节点包括节点宕机接管装置,

其中,所述节点宕机接管装置,为如上所述的节点宕机接管装置。

从以上技术方案可以看出,本发明实施例具有以下优点:

第二节点获取第一节点的宕机信息后,若分布式缓存未存在与第一任务对应的锁,则第二节点利用分布式缓存形成锁,以使获取到第一节点的宕机信息的第三节点在检测到分布式缓存存在第二节点形成的锁后,不对第一任务进行恢复;其中第一任务由第一节点正常工作时存储到分布式缓存,然后,第二节点从分布式缓存中获取第一节点的第一任务,并接管第一任务。这样,因分布式缓存具有能够提升指令和数据读取速度的特性,且能处理大量的数据,从而恢复宕机节点的任务的速度得到了提高,分布式缓存配合节点集群,使得多个节点可从分布式缓存中获取宕机节点的任务,以对该任务进行恢复,并通过锁来控制其中一个节点恢复宕机节点的任务,从而即可提高任务恢复过程的稳定性,也避免了节点集群恢复任务时产生的混乱。

附图说明

图1为本发明一实施例提供的一种节点宕机接管方法所涉及的使用场景图;

图2为本发明另一实施例提供的一种节点宕机接管方法的方法流程图;

图3为本发明另一实施例提供的一种节点宕机接管方法的方法流程图;

图4为本发明另一实施例提供的一种节点宕机接管装置的结构示意图;

图5为本发明另一实施例提供的一种节点集群系统的结构示意图。

具体实施方式

本发明实施例提供了一种节点宕机接管方法和装置、节点集群系统,用于提高恢复宕机节点的任务的速度和稳定性。

图1为本发明实施例提供的一种节点宕机接管方法所涉及的使用场景图。如图1所示,该使用场景包括多个节点,这些节点组合为akka集群,其中图1示出了其中三个节点,第一节点101、第二节点102和第三节点103。该使用场景还包括分布式缓存104,节点在执行任务时,实时将该任务存储到该分布式缓存中。在节点宕机后,其它节点将从该分布式缓存中读取并接管宕机节点的任务。

其中,akka集群的环境为:在分布式环境中,集群中各个节点间能够相互发送消息,并获得节点创建与关闭的信息。

分布式为:由多个节点组成集群环境。

第二节点102通过akka的消息订阅方式获取第一节点101的宕机信息后,若分布式缓存104未存在第一任务对应的锁,则第二节点利用分布式缓存形成锁,以使获取到第一节点101的宕机信息的第三节点103在检测到分布式缓存存在第二节点形成的锁后,不对第一任务进行恢复;其中第一任务由第一节点正常工作时存储到分布式缓存,然后,第二节点从分布式缓存中获取第一节点的第一任务,并接管第一任务。其中,第一节点、第二节点和第三节点属于akka集群的节点,akka的消息订阅方式为:当akka集群检测到第一节点的宕机信息时,向第二节点发送第一节点的宕机信息。这样,因分布式缓存具有能够提升指令和数据读取速度的特性,且能处理大量的数据,从而恢复宕机节点的任务的速度得到了提高,分布式缓存配合akka集群,使得多个节点可从分布式缓存中获取宕机节点的任务,以对该任务进行恢复,并通过锁来控制其中一个节点恢复宕机节点的任务,从而即可提高任务恢复过程的稳定性,也避免了akka集群恢复任务时产生的混乱。

图2为本发明实施例提供的一种节点宕机接管方法的方法流程图,该方法应用于多个节点组成的akka集群环境中,结合图一所示的使用场景和以上内容,参见图2,在本发明的实施例中,该节点宕机接管方法的流程包括:

步骤201:第二节点获取第一节点的宕机信息;

步骤202:第二节点判断分布式缓存是否存在与第一任务对应的锁,其中第一任务由第一节点正常工作时存储到分布式缓存;

步骤203:若分布式缓存未存在与第一任务对应的锁,则第二节点利用分布式缓存形成锁;

步骤204:第二节点从分布式缓存中获取第一节点的第一任务;

步骤205:第二节点接管第一任务。

可选地,

第二节点获取第一节点的宕机信息,包括:

第二节点通过akka的消息订阅方式获取第一节点的宕机信息;

akka的消息订阅方式为:

当akka集群检测到第一节点的宕机信息时,向第二节点发送第一节点的宕机信息。

可选地,

第二节点接管第一任务,包括:

第二节点在本地根据第一任务创建第二任务;

第二节点将第二任务存储到分布式缓存;

或者,

第二节点将第一任务分发给第三节点,以使第三节点根据第一任务创建第三任务后,将第三任务存储到分布式缓存。

可选地,

第二节点接管第一任务之后,方法还包括:

第二节点从分布式缓存中删除第一任务。

可选地,

第二节点判断分布式缓存是否存在与第一任务对应的锁之后,该方法还包括:

若分布式缓存存在锁,则第二节点不恢复第一任务,其中锁由第三节点利用分布式缓存形成;

在第三节点恢复第一任务时,当第二节点获取到第三节点的宕机信息时,第二节点执行判断分布式缓存是否存在与第一任务对应的锁的步骤。

可选地,

第二节点利用分布式缓存形成锁之后,该方法还包括:

获取到第一节点的宕机信息的第三节点检测分布式缓存是否存在与第一任务对应的锁;

若分布式缓存存在与第一任务对应的锁,则第三节点不对第一任务进行恢复。

可选地,

在第二节点恢复第一任务时,第三节点通过akka的消息订阅方式获取第二节点的宕机信息,其中节点形成的锁在节点宕机时解除;

第三节点判断分布式缓存是否存在与第一任务对应的锁;

若分布式缓存未存在锁,则第三节点利用分布式缓存形成锁;

第三节点从分布式缓存中获取第一节点的第一任务;

第三节点接管第一任务。

综上所述,第二节点方式获取第一节点的宕机信息后,若分布式缓存未存在与第一任务对应的锁,则第二节点利用分布式缓存形成锁,以使获取到第一节点的宕机信息的第三节点在检测到分布式缓存存在第二节点形成的锁后,不对第一任务进行恢复;其中第一任务由第一节点正常工作时存储到分布式缓存,然后,第二节点从分布式缓存中获取第一节点的第一任务,并接管第一任务。这样,因分布式缓存具有能够提升指令和数据读取速度的特性,且能处理大量的数据,从而恢复宕机节点的任务的速度得到了提高,分布式缓存配合节点集群,使得多个节点可从分布式缓存中获取宕机节点的任务,以对该任务进行恢复,并通过锁来控制其中一个节点恢复宕机节点的任务,从而即可提高任务恢复过程的稳定性,也避免了节点集群恢复任务时产生的混乱。

图3为本发明实施例提供的一种节点宕机接管方法的方法流程图,该方法应用于多个节点组成的akka集群环境中,结合图一所示的使用场景和以上内容,参见图3,在本发明的实施例中,该节点宕机接管方法的流程包括:

步骤301:第一节点正常工作,并将第一任务存储到分布式缓存。

在本发明实施例中,akka集群包括第一节点、第二节点和第三节点,即第一节点、第二节点和第三节点属于akka集群的节点。

当然在有的实施例中akka集群可以包括更多的节点。

第一节点正常工作时,执行第一任务,并实时将第一任务存储到分布式缓存。

例如,第一节点执行任务workeractor1和任务workeractor2,其中,workeractor1为清楚数据库的a数据,workeractor2为从数据库中查询b信息。此时,第一节点正常工作,第一节点实时将workeractor1和workeractor2的信息存储到分布式缓存中,并持久化。

步骤302:第一节点宕机,停止对第一任务的工作。

在第一节点发生宕机时,第一节点停止对第一任务的工作。

其中,宕机也称为停机,指节点不能正常工作。

步骤303:当akka集群检测到第一节点的宕机信息时,akka集群向第二节点发送第一节点的宕机信息。

因第一节点、第二节点和第三节点构成akka集群的环境,在该akka的分布环境中,集群中各个节点间能够相互发送消息,并获得节点创建与关闭的信息。

从而,当akka集群检测到第一节点的宕机信息时,向第二节点和第三节点发送第一节点的宕机信息。此即为akka的消息订阅方式,即当akka集群检测到第一节点的宕机信息时,向第二节点发送第一节点的宕机信息。第二节点和第三节点通过akka的消息订阅方式获取第一节点的宕机信息

具体来说,akka的消息订阅方式的原理是:akka集群的各个节点构成一个抽象的akka集群系统,这个akka系统通过节点间定期发送心跳,即发送检测信号,获取各个节点的运行状态。第二节点向akka集群系统订阅整个个系统的运行状态,也就是当akka系统的任意一个节点的状态变化,如启动、关闭等。当第一节点关闭时,akka集群系统能够获得这个消息,并发送给第二节点。

当然在有的实施例中,akka集群系统可将第一节点的宕机信息发送给akka集群的各个节点。

步骤304:第二节点判断分布式缓存是否存在与第一任务对应的锁,若分布式缓存未存在与第一任务对应的锁,则执行步骤305,若分布式缓存存在与第一任务对应的锁,则执行步骤306。

第二节点通过akka的消息订阅方式获取第一节点的宕机信息后,第二节点检测分布式缓存是否存在与第一任务对应的锁。

获取到宕机信息的节点都有机会执行对第一任务的恢复操作。为了避免多个节点都执行对宕机节点的任务的恢复操作,从而产生任务的混乱,及集群的功能冗余,在本发明实施例的方法中,让先获取到宕机信息的节点执行任务恢复的操作,具体的实现方法是通过锁来确定先获取到宕机信息的节点。

即每个获取到宕机信息的节点都检测分布式缓存中是否存在与宕机节点的任务对应的锁,若某一个节点未检测到有这样的锁,则表明该节点先获取到宕机信息,可执行对宕机节点的任务的恢复操作。为了使得后获取到宕机信息的节点不执行对宕机节点的任务的恢复操作,该先获取到宕机信息的节点在分布式缓存中形成一分布式锁,从而后获取到宕机信息的节点在分布式缓存中检测到与宕机节点的任务对应的锁,从而不执行对宕机节点的任务的恢复操作。

例如,第二节点在获取到第一节点的宕机信息后,第二节点判断分布式缓存是否存在与第一任务对应的锁;若分布式缓存未存在锁,则执行步骤305;若分布式缓存存在锁,则执行步骤306。

步骤305:第二节点利用分布式缓存形成锁。

第二节点未在分布式缓存中检测到与第一任务对应的锁,则表示第二节点是先获取到该宕机信息的节点,第二节点执行对第一任务的恢复操作,为了让其它节点不执行对第一任务的恢复操作,第二节点利用分布式缓存形成锁,以使获取到第一节点的宕机信息的第三节点在检测到分布式缓存存在第二节点形成的锁后,不对第一任务进行恢复。从而,分布式锁保证了宕机恢复过程完整。

即,在本发明实施例的方法中,第二节点利用分布式缓存形成锁之后,获取到第一节点的宕机信息的第三节点检测分布式缓存是否存在与第一任务对应的锁;若分布式缓存存在与第一任务对应的锁,则第三节点不对第一任务进行恢复。

其中,本发明实施例的锁为分布式锁,分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。

步骤306:第二节点不恢复第一任务。

当第二节点判断分布式缓存存在与第一任务对应的锁之后,表示有其它节点先获取到宕机信息,为了避免多个节点恢复第一任务造成混乱和功能冗余,从而第二节点不恢复第一任务。

例如,在第三节点先获取到第一节点的宕机信息时,第三节点在分布式缓存中检测不到与第一任务对应的锁,第三节点利用分布式缓存形成锁,第二节点检测到该锁后,第二节点停止对第一任务的恢复。

在有的实施例中,在第三节点恢复第一任务时,第三节点可能会宕机,为了任务恢复过程的稳定性,在第三节点恢复第一任务时,若第三节点发生宕机,则akka集群中的其它节点获取到第三节点的宕机信息。当第二节点获取到第三节点的宕机信息时,第三节点宕机,第三节点在分布式缓存形成的锁解除,第二节点执行判断分布式缓存是否存在与第一任务对应的锁的步骤。若分布式缓存未存在该锁,则第二节点为先获取到第三节点宕机信息的节点,从而第二节点执行步骤305,第二节点代替第三节点恢复第一任务,否则第二节点执行步骤306。

步骤307:第二节点从分布式缓存中获取第一节点的第一任务;

第二节点先获取到第一节点的宕机信息,从而第二节点利用分布式缓存形成锁后,第二节点执行对第一任务的恢复操作。其中恢复操作包括从分布式缓存中获取第一节点的第一任务和接管第一任务。

因第一任务由第一节点正常工作时存储到分布式缓存,分布式缓存具有能够提升指令和数据读取速度的特性,且能处理大量的数据,从而恢复宕机节点的任务的速度得到了提高。

例如,如1所示,第一节点宕机后,第二节点从分布式缓存中获取任务workeractor1,workeractor2的信息。

步骤308:第二节点接管第一任务;

第二节点获取第一任务后,执行对第一任务的接管。

其中,对第一任务的接管包括如下方式:

1)第二节点在本地根据第一任务创建第二任务后,第二节点将第二任务存储到分布式缓存。

或者,

2)第二节点将第一任务分发给第三节点,以使第三节点根据第一任务创建第三任务后,将第三任务存储到分布式缓存。

例如,如图1所示,第一节点宕机后,第二节点接管第一节点的任务,第二节点对任务workeractor1在本地进行接管,创建任务workeractor3,并将该任务workeractor3实时存储在分布式缓存中。而第二节点将任务workeractor2分发给第三节点,由第三节点根据该任务创建任务workeractor4,并将该任务workeractor4存储在分布式缓存中。

步骤309:第二节点从分布式缓存中删除第一任务。

在第二节点完成对宕机的第一节点的第一任务的接管后,第二节点从分布式缓存中删除该第一任务,以清除分布式缓存中不需用到的数据。当然,在有的实施例中,可以不执行步骤309。

例如,当第二节点顺利完成任务接管后,删除分布式缓存中的任务workeractor1,workeractor2的信息。这样,任务workeractor3,workeractor4完全替代原任务workeractor1,workeractor2。

在有的实施例中,为了提高本发明实施例的方法执行任务恢复的稳定性,在akka集群中,不存在专门用于处理宕机的根节点,而是所有的节点都可以处理宕机恢复。

例如,在第二节点恢复第一任务时,即第二节点在从分布式缓存获取第一任务或接管第一任务或接管第一任务时,第二节点发生宕机,此时akka集群检测出第二节点发送宕机。其中节点形成的锁在节点宕机时解除,第二节点在宕机后,会解除分布式缓存上的第二节点形成的锁。

第三节点通过akka的消息订阅方式获取第二节点的宕机信息,第三节点判断分布式缓存是否存在与第一任务对应的锁;

若分布式缓存未存在该锁,则第三节点利用分布式缓存形成锁,这表示第三节点是先获取到第二节点宕机信息的节点,从而第三节点可接替第二节点恢复第一任务。第三节点先在分布式缓存中形成锁,防止其它节点恢复第一任务,然后,第三节点从分布式缓存中获取第一节点的第一任务;第三节点接管第一任务。即第三节点在本地重建第一任务或将该第一任务发送给其它正常的节点,由其它节点重建第一任务,并将重建的任务缓存在分布式缓存中。第三节点接管第一任务成功后,第三节点可将第一任务从分布式缓存中删除。若第三节点检测到分布式缓存存在与第一任务对应的锁,则第三节点不对第一任务进行恢复。

综上所述,第二节点通过akka的消息订阅方式获取第一节点的宕机信息后,若分布式缓存未存在与第一任务对应的锁,则第二节点利用分布式缓存形成锁,以使获取到第一节点的宕机信息的第三节点在检测到分布式缓存存在第二节点形成的锁后,不对第一任务进行恢复;其中第一任务由第一节点正常工作时存储到分布式缓存,然后,第二节点从分布式缓存中获取第一节点的第一任务,并接管第一任务。其中,第一节点、第二节点和第三节点属于akka集群的节点,akka的消息订阅方式为:当akka集群检测到第一节点的宕机信息时,向第二节点发送第一节点的宕机信息。这样,因分布式缓存具有能够提升指令和数据读取速度的特性,且能处理大量的动态数据,从而恢复宕机节点的任务的速度得到了提高,分布式缓存配合akka集群,使得多个节点可从分布式缓存中获取宕机节点的任务,以对该任务进行恢复,并通过锁来控制其中一个节点恢复宕机节点的任务,从而即可提高任务恢复过程的稳定性,也避免了akka集群恢复任务时产生的混乱。

图4为本发明实施例提供的一种节点宕机接管装置的结构示意图,该装置集成在节点上,该节点属于akka集群,该akka集群包括至少三个节点,结合图一所示的使用场景和以上内容,参见图4,在本发明的实施例中,该节点宕机接管装置包括:

宕机信息获取单元401,用于获取第一节点的宕机信息;

判断单元402,用于判断分布式缓存是否存在与第一任务对应的锁,其中第一任务由第一节点正常工作时存储到分布式缓存;

成锁单元403,用于若分布式缓存未存在与第一任务对应的锁,则利用分布式缓存形成锁;

任务获取单元404,用于从分布式缓存中获取第一节点的第一任务;

接管单元405,用于接管第一任务;

可选地,

宕机信息获取单元401,还用于通过akka的消息订阅方式获取第一节点的宕机信息;

akka的消息订阅方式为:

当akka集群检测到第一节点的宕机信息时,向第二节点发送第一节点的宕机信息。

可选地,

接管单元405,包括:

创建模块406,用于在本地根据第一任务创建第二任务;

存储模块407,用于将第二任务存储到分布式缓存;

或者,

接管单元405,还用于将第一任务分发给第三节点,以使第三节点根据第一任务创建第三任务后,将第三任务存储到分布式缓存。

可选地,

装置还包括:

删除单元408,用于从分布式缓存中删除第一任务。

可选地,

任务获取单元404,还用于若分布式缓存存在锁,则不恢复第一任务,其中锁由第三节点利用分布式缓存形成;

在第三节点恢复第一任务时,当宕机信息获取单元401获取到第三节点的宕机信息时,判断单元402执行判断分布式缓存是否存在与第一任务对应的锁的步骤。

综上所述,宕机信息获取单元401获取第一节点的宕机信息后,若分布式缓存未存在第一任务对应的锁,则成锁单元403利用分布式缓存形成锁,以使获取到第一节点的宕机信息的第三节点在检测到分布式缓存存在第二节点形成的锁后,不对第一任务进行恢复;其中第一任务由第一节点正常工作时存储到分布式缓存,然后,任务获取单元404从分布式缓存中获取第一节点的第一任务,接管单元405接管第一任务。这样,因分布式缓存具有能够提升指令和数据读取速度的特性,且能处理大量的动态数据,从而恢复宕机节点的任务的速度得到了提高,分布式缓存配合节点集群,使得多个节点可从分布式缓存中获取宕机节点的任务,以对该任务进行恢复,并通过锁来控制其中一个节点恢复宕机节点的任务,从而即可提高任务恢复过程的稳定性,也避免了节点集群恢复任务时产生的混乱。

图5为本发明实施例提供的一种节点集群系统的结构示意图,该节点集群系统包括至少三个节点,结合图一所示的使用场景和以上内容,参见图5,在本发明的实施例中,该节点集群系统500的节点包括节点宕机接管装置,

其中,该节点宕机接管装置,如上述图4所示实施例中示出的节点宕机接管装置。详见上述示例性实施例,此处不再赘述。

综上所述,第二节点获取第一节点的宕机信息后,若分布式缓存未存在第一任务对应的锁,则第二节点利用分布式缓存形成锁,以使获取到第一节点的宕机信息的第三节点在检测到分布式缓存存在第二节点形成的锁后,不对第一任务进行恢复;其中第一任务由第一节点正常工作时存储到分布式缓存,然后,第二节点从分布式缓存中获取第一节点的第一任务,并接管第一任务。这样,因分布式缓存具有能够提升指令和数据读取速度的特性,且能处理大量的动态数据,从而恢复宕机节点的任务的速度得到了提高,分布式缓存配合节点集群,使得多个节点可从分布式缓存中获取宕机节点的任务,以对该任务进行恢复,并通过锁来控制其中一个节点恢复宕机节点的任务,从而即可提高任务恢复过程的稳定性,也避免了节点集群恢复任务时产生的混乱。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!