设备切换方法、装置、电子设备和存储介质与流程

文档序号:26405789发布日期:2021-08-24 16:20阅读:85来源:国知局
设备切换方法、装置、电子设备和存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种设备切换方法、一种设备切换装置、一种电子设备和一种存储介质。



背景技术:

在分布式主从架构的系统中,通常存在一台主机设备和多台从机设备,许多职责都由主机设备来完成,从机设备只需配合执行主机设备的指令即可,因此主机设备对于系统而言是不可或缺的。由于高可用的要求,当主机设备发生故障或者其所在的网络环境发生故障时,必须有一台从机设备升级为主机设备,以使得系统仍然能够正常运作。

一种切换方式是:主机设备和从机设备之间相互监控,在从机设备发现主机设备发生异常时,各个从机设备发起选择本设备作为待切换主机的投票并通知其他从机设备,率先得到足够票数的从机设备升级成为主机设备,其余从机设备成为该主机设备的从机设备。

采用这种方式,由于在主机设备发生异常时需要进行投票,若仅配置两个从机设备,若其中一个从机设备发生异常,则剩余的一个正常的从机设备无法获得足够的投票,导致正常的从机设备无法切换为主机设备,系统稳定性差。因此,对于一个主机设备,需要为主机设备配置至少三台从机设备,产生了设备资源的浪费。



技术实现要素:

本申请实施例提供了一种设备切换方法,以减少设备资源的浪费。

相应的,本申请实施例还提供了一种设备切换装置、一种电子设备和一种存储介质,用以保证上述系统的实现及应用。

为了解决上述问题,本申请实施例公开了一种设备切换方法,包括:接收设备的心跳信息,依据所述心跳信息确定设备状态,其中,所述设备包括主设备和从设备;在检测到主设备的设备状态为异常的情况下,按照优先级信息从设备状态为正常的从设备中选取备选设备;向所述备选设备发送置主指令,以使所述备选设备切换为主设备。

为了解决上述问题,本申请实施例公开了一种设备切换方法,应用于从设备,包括:向监控设备发送心跳信息,所述监控设备用于依据所述心跳信息确定设备状态;在主设备发生故障的情况下,接收至少一个监控设备发送的置主指令;根据至少一个置主指令,切换运行状态为主设备的运行状态。

为了解决上述问题,本申请实施例公开了一种设备切换方法,应用于主设备,包括:向监控设备发送心跳信息,所述监控设备用于根据所述心跳信息确定设备状态;在所述主设备的设备状态为异常的情况下,接收所述监控设备发送的置从指令;根据所述置从指令,将设备运行状态切换为从设备的运行状态。

为了解决上述问题,本申请实施例公开了一种设备切换装置,包括:信息接收模块,用于接收设备的心跳信息,依据所述心跳信息确定设备状态,其中,所述设备包括主设备和从设备;从设备选取模块,用于在检测到主设备的设备状态为异常的情况下,按照优先级信息从设备状态为正常的从设备中选取备选设备;置主处理模块,用于向所述备选设备发送置主指令,以使所述备选设备切换为主设备。

为了解决上述问题,本申请实施例公开了一种设备切换装置,包括:从设备信息输出模块,用于向监控设备发送心跳信息,所述监控设备用于依据所述心跳信息确定设备状态;置主信息接收模块,用于在主设备发生故障的情况下,接收至少一个监控设备发送的置主指令;置主切换模块,用于根据至少一个置主指令,切换运行状态为主设备的运行状态。

为了解决上述问题,本申请实施例公开了一种设备切换装置,包括:主设备信息输出模块,用于向监控设备发送心跳信息,所述监控设备用于根据所述心跳信息确定设备状态;置从信息接收模块,用于在所述主设备的设备状态为异常的情况下,接收所述监控设备发送的置从指令;置从切换模块,用于根据所述置从指令,将设备运行状态切换为从设备的运行状态。

为了解决上述问题,本申请实施例公开了一种电子设备,包括:处理器;和存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如上述一个或多个实施例所述的方法。

为了解决上述问题,本申请实施例公开了一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如上述一个或多个实施例所述的方法。

与现有技术相比,本申请实施例包括以下优点:从设备和主设备向监控设备发送心跳信息,监控设备根据心跳信息确定设备状态是否发生异常。在主设备发生异常的情况下,监控设备按照从设备的优先级,简单快速的从正常的从设备中确定备选设备。之后监控设备向备选设备发送置主指令,备选设备响应于置主指令切换为主设备,以提供服务。本申请实施例可以针对于包括任意数量的从设备的设备切换系统进行主从切换,能够节省从设备的设备资源。并且监控设备之间无需复杂的协同方式,监控设备的增减更简单。

附图说明

图1是本申请一个实施例的设备切换系统的结构示意图;

图2是本申请另一个实施例的设备切换系统的结构示意图;

图3是本申请一个实施例的设备切换方法的流程图;

图4是本申请另一个实施例的设备切换方法的流程图;

图5是本申请再一个实施例的设备切换方法的流程图;

图6是本申请再一个实施例的设备切换方法的流程图;

图7是本申请再一个实施例的设备切换方法的流程图;

图8是本申请一个实施例的设备切换装置的结构示意图;

图9是本申请另一个实施例的设备切换装置的结构示意图;

图10是本申请再一个实施例的设备切换装置的结构示意图;

图11是本申请一个实施例的示例性装置的结构示意图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

本申请实施例可以应用包括一台主设备和多台从设备的设备集群的场景,如分布式架构的系统,还可以应用于一个主设备和一个从设备(或称备份设备)的场景中,如应用在关键机器的热备份场景中,关键机器的热备份场景可以包括:主、从读写分离的数据库集群,一主一从的虚拟服务器、虚拟服务器(virtualserver)负载均衡、基于虚拟机、基于容器、cdn(contentdeliverynetwork,内容分发网络)流量等调度系统中计算调度策略的关键机器的热备份。下面以将设备切换系统应用在一个主设备和多个从设备的场景中为例,对设备切换系统进行描述。

本申请提供了一种设备切换系统,如图1所示,设备切换系统包括主设备(master)、从设备(slave)和监控设备。主设备用于提供服务;从设备用于配合主设备提供服务。监控设备还可以称为哨兵、监控哨兵等。监控设备用于对主设备和从设备的运行状态进行监控,可以看作系统中的哨兵,监控其他设备的运行,因此监控设备可收集主设备和从设备的心跳信息,确定主设备和从设备的设备状态,监控设备还可在主设备异常时,按照从设备的优先级从正常从设备中确定备选设备。其中,心跳消息是一种周期性重复发送的消息,用以通知接收设备(如本示例的监控设备)发送源(如本示例的主设备、从设备)正常运行,因此当心跳信息出现异常,通常可能是设备出现异常。

监控设备在确定备选设备之后,向备选设备发送置主指令。备选设备响应于置主指令,将设备运行状态切换为主设备的运行状态。之后切换后的主设备向监控设备返回心跳信息,监控设备根据切换后的主设备的心跳信息,向切换前的主设备发送置从指令。切换前的主设备响应于置从指令,将设备运行状态切换为从设备的运行状态。

本申请实施例中,监控设备在监测到主设备异常的情况下,监控设备按照从设备的优先级信息,能够更加便捷的确定备选设备,并向备选设备发送置主指令,使从设备切换为主设备。本申请实施例可以针对于包括任意数量的从设备的设备切换系统进行设备的切换,能够节省从设备的设备资源。并且监控设备无需配置复杂的协作方式,监控设备的增、减更加简单。

具体的,如图1所示,监控设备在步骤102中,接收设备的心跳信息,依据心跳信息确定设备状态,其中,设备包括主设备和从设备。心跳信息可以包括设备标识和时间戳。设备标识可以为表征设备为主设备的主机标识或表征设备为从设备的从机标识。在一个可选的示例中,主设备和从设备可以周期性的向监控设备主动发送心跳信息。另一个可选的示例中,主设备和从设备可以根据监控设备周期性发送的征集指令,向监控设备发送心跳信息。具体的,接收设备的心跳信息的步骤,包括:监控设备向设备发送征集指令,并接收征集指令对应的心跳信息。监控设备可以定时向主设备和从设备发送征集指令,主设备和从设备响应于征集指令,向监控设备发送心跳信息。

在一个可选的示例中,对于主设备和从设备来说,可以依据心跳信息中的时间戳和当前时间之间的差值来确定主设备状态,具体的,监控设备从设备的心跳信息中获取时间戳,并确定时间戳与当前时间的差值;当差值小于时长阈值时,确定设备的设备状态为正常;当差值大于或等于时长阈值时,确定设备的设备状态为异常。

在一个可选的示例中,为了更加准确地确定主设备是否发生了异常,还可以向主设备发送测试指令,来测试主设备是否发生了异常。具体的,设备切换方法,还包括:在确定主设备对应的差值大于或等于时长阈值之后,向主设备发送测试指令;若在预设时长内未接收到所述测试指令对应的反馈信息,确定所述主设备的设备状态为异常。向主设备发送测试指令。主设备响应于测试指令,向监控设备返回对应的反馈信息,测试指令可以为置主指令,反馈信息可以为设备切换为主设备是否成功的反馈。若监控设备在预设时长内接收到反馈信息,确定主设备的设备状态为正常。若监控设备在预设时长内未接收到反馈信息,则确定主设备的设备状态为异常。对于从设备来说,也可以采用向从设备发送测试指令的方式确定从设备是否异常,此处不再赘述。本实施例通过向主设备发送测试指令,来进一步确定主设备是否发生异常,能够提升异常判断结果的准确性。

现有技术中也有一些多个监控设备来监控系统中主、从设备运行的方式,但这种方式中,多个监控设备会同时对系统中的主、从设备进行监控,当任一监测设备发现主设备存在异常时,该监测设备需要征集其他监测设备对主设备的状态判断信息,通过投票的方式来判断主设备是否存在异常,并且对于切换为主设备的从设备,也需要投票才能选取,这种采用多个监控设备相互协作的方式,监控设备设计复杂,异常确定以及设备切换过程也比较复杂,且通常需要设备三个及以上的监测子设备,还会造成设备资源的浪费。

而本申请实施例的方式,可以降低监控设备的复杂度,监控设备在步骤104中,在检测到主设备的设备状态为异常的情况下,按照优先级信息从设备状态为正常的从设备中选取备选设备。优先级等级从高到低可以包括:第一级、第二级、第三级、第n级。对于多个从设备,可以对每个从设备设置一个优先级等级,每个从设备的优先级等级不同。若主设备的设备状态为异常,则监控设备确定设备状态为正常的从设备,并从中选择优先级信息最高的从设备作为备选设备。监控设备可以设置一个,也可以设置多个(如图2所示),对于多个监控设备的情况,从设备的优先级信息在每个监控设备中均相同,则在确定备选设备时,每个监控设备的结果均相同,无需不同的监控设备之间相互协作来确定备选设备,能够更加简单方便的确定备选设备。降低了监控设备的复杂度,便于监控设备的增加和减少。另外,对于多个监控设备的情况,从设备可以响应于一个监控设备的置主指令,完成设备的运行状态的切换;还可以接收多个监控设备的置主指令后进行投票,按照投票结果进行状态切换。

在确定了备选设备之后,监控设备在步骤106中向所述备选设备发送置主指令,以使所述备选设备切换为主设备。监控设备向备选设备发送置主指令,备选设备响应于置主指令,将设备的运行状态切换为主设备的运行状态,切换后的主设备为用户提供服务。

下面结合一个实施例具体的介绍设备切换方法,该方法应用于监控设备,如图3所示,设备切换方法包括以下步骤:

步骤302、确定主设备发生异常。可以先确定主设备最新的心跳信息中的时间戳与当前时间的差值,之后根据差值是否大于或等于时长阈值来确定主设备的设备状态是否为异常。

步骤304、发送测试指令至主设备,测试指令可以为置主指令,主设备接收到置主指令后,向监控设备返回反馈信息。

步骤306、判断在预设时长内是否收到反馈信息。若监控设备在预设时长内接收到反馈信息,则表示主设备的设备状态为正常,结束执行。若监控设备在预设时长内未接收到反馈信息,则执行步骤308、

步骤308、判断是否存在正常的从设备。若存在,则按照从设备的优先级信息确定备选设备,并执行步骤310。若不存在,则结束执行。

步骤310、发送置主指令至备选设备。备选设备接收到置主指令后,响应于置主指令将设备的运行状态切换为主设备的运行状态,备选设备向监控设备返回反馈信息。

步骤312、判断在预设时长内是否接收到备选设备的反馈信息。若接收到反馈信息,则结束执行。若未接收到反馈信息,则执行步骤308,以将下一个优先级的从设备切换为主设备。

本实施例中,在主设备发生异常的情况下,首先向主设备发送测试指令确认主设备是否发生异常。并在确定主设备的设备状态为异常的情况下,按照从设备的优先级,能够更加简单快速的从正常的从设备中确定备选设备。之后向备选设备发送置主指令,备选设备响应于置主指令切换为主设备,以提供服务。本申请实施例可以针对于包括任意数量的从设备的设备切换系统进行主从切换,能够节省从设备的设备资源。并且监控设备之间无需复杂的协同方式,监控设备的增减更简单。

在将备选设备切换为主设备之后,此时设备切换系统中包括切换前的主设备和切换后的主设备两个主设备。为了将切换前的主设备(发生异常的主设备)切换为从设备,在一个可选的示例中,心跳监测装置接收切换后的主设备的心跳信息,向切换前的主设备发送置从指令,以使切换前的主设备切换为从设备。主设备的心跳信息包括主机标识和时间戳,监控设备接收到切换后的主设备的心跳信息之后,监控设备中同时存在两个主设备的主机标识,此时可以根据后接收的主机标识向先接收的主机标识对应的主设备发送置从指令,该主设备接收置从指令后,根据置从指令将设备的运行状态切换为从设备的运行状态。

由于主设备与监控设备之间存在传输时长,所以监控设备在向切换前的主设备发送置从指令之后,还可能接收到切换前的主设备在接收到置从指令之前发送的心跳信息。监控设备在接收到该心跳信息之后,会根据该心跳信息将由从设备切换来的主设备再次切换为从设备。为了避免监控设备由于接收到切换前的主设备的心跳信息产生错误切换的问题,在一个可选的示例中,监控设备还用于根据切换后的主设备的心跳信息,将切换前的主设备的心跳信息中的主机标识忽略。具体的,监控设备可以根据切换后的主设备的心跳信息生成标识忽略指令。并根据该标识忽略指令,忽略切换前的主设备的主机标识。进而避免将切换后的主设备再次切换为从设备的问题,保证了系统的正常运行。

下面结合一个实施例具体的描述发生异常的主设备切换为从设备的流程,如图4所示,该流程包括以下步骤:

步骤402、接收到第二个主机标识。在将备选设备切换为主设备之后,备选设备向监控设备返回心跳信息,该心跳信息包括主机标识和时间戳,该时间戳用于确定切换后的主机设备是否发生异常。在发生异常的主设备切换为从设备之前,监控设备中存在有发生异常的主设备的主机标识。因此,在接收到第二个主机标识的情况下,监控设备中存在两个主机标识。

步骤404、判断监控设备中是否存在标识忽略指令。若不存在,则执行步骤406。若存在,则执行步骤408。

步骤406、向第一个主机标识对应的主设备发送置从指令,并生成标识忽略指令。发生异常的主设备根据置从指令切换为从设备的运行状态。

步骤408、监控设备根据标识忽略指令忽略发生异常的主设备的心跳信息中的主机标识,仅记录时间戳。

本实施例中,在将备选设备切换为主设备之后,对于发生异常的主设备,发送置从指令,使其切换为从设备。并且通过标识忽略指令忽略发生异常的主设备的主机指令,能够避免了切换后的主设备再次切换为从设备的问题,保证了系统的正常运行。

上述各实施例,以一个主设备和多个从设备的应用场景为例进行描述,实际处理中,本申请实施例还可应用于一个主设备和一个从设备。

其中,现有的主从切换方式(如使用键值型数据库redis的主从切换算法)通常是:在设备中部署哨兵机器,从设备的哨兵机器用于对主设备的状态进行监控,在一个哨兵机器发现主设备发生故障之后,会采集其他从设备的哨兵机器对主设备的状态的判断,在足够数目的哨兵机器确定主设备的状态发生故障的情况下,将主设备下线,进行选主切换。但是采用这种方式,在集群中存在一个主设备和两个从设备的场景中,若两个从设备中的一个从设备发生故障,该从设备的哨兵机器无法输出对主设备的状态的判断结果,因此,另一个从设备无法获得两票来确定主设备发生故障,无法完成主从切换;另外,若一个从设备仅根据一票来确定主设备发生故障,将主设备下线,会导致集群稳定性差。综上,该主从切换方式需要至少三台哨兵机器,因此,该主从切换方式需要应用在一个主设备和至少三个从设备的场景中,该主从切换方式无法应用在一个主设备和一个从设备的应用场景中。

还有一些主从切换方式(如使用paxos、raft等分布式一致性集群选主算法)通常是:主设备定时向从设备发送状态信息,从设备在一段时间内未接受到状态信息的情况下,从设备发起选主投票,以获取足够票数,切换为主设备。为了使从设备获得足够票数进行切换,该主从切换方式需要至少两个从设备。因此,该主从切换方式需要应用在一个主设备和至少两个从设备的场景中,而无法应用在一个主设备和一个从设备的应用场景中。

而本申请实施例,可应用于在一个主设备和一个从设备的集群场景中,利用监控设备可以监控主设备和从设备的心跳信息,并在主设备异常的情况下,按照从设备的优先级信息,使从设备切换为主设备,以提供服务。

本申请实施例,在发现两个主机的情况下,将原主设备切换为从设备,并将原主设备的的主机标识忽略一次,可以能够避免异步时序的问题。本申请实施例的方式在设备切换过程中,无需从设备之间的投票确认主设备故障、投票选主等协作,因此,在一个主设备和一个从设备的场景中,本申请实施例的方式可以进行切换。

在上述实施例的基础上,本申请还提供一种设备切换方法,应用在监控设备,如图5所示,具体包括以下步骤:

步骤502、接收设备的心跳信息,心跳信息包括设备标识和时间戳,设备标识包括主机标识和从机标识。

步骤504、从设备的心跳信息中获取时间戳,并确定时间戳与当前时间的差值。

步骤506、在确定主设备对应的差值大于或等于时长阈值之后,向主设备发送测试指令。

步骤508、若在预设时长内未接收到测试指令对应的反馈信息,确定主设备的设备状态为异常。

步骤510、在检测到主设备的设备状态为异常的情况下,按照优先级信息从设备状态为正常的从设备中选取备选设备。

步骤512、向备选设备发送置主指令,以使备选设备切换为主设备。

步骤514、接收切换后的主设备的心跳信息,向切换前的主设备发送置从指令,生成标识忽略指令,置从指令用于使切换前的主设备切换为从设备。

步骤516、依据标识忽略指令,忽略切换前的主设备的主机标识。

本实施例中,在主设备的设备状态为异常的情况下,首先向主设备发送测试指令确认主设备是否发生异常。并在确定主设备的设备状态为异常的情况下,按照从设备的优先级,能够更加简单快速的从正常的从设备中确定备选设备。之后向备选设备发送置主指令,备选设备响应于置主指令切换为主设备,以提供服务。本实施例可以针对于包括任意数量的从设备的设备切换系统进行主从切换,能够节省从设备的设备资源。并且监控设备之间无需复杂的协同方式,监控设备的增减更简单。在将备选设备切换为主设备之后,对于发生异常的主设备,发送置从指令,使其切换为从设备。并且通过标识忽略指令忽略发生异常的主设备的主机指令,能够避免了切换后的主设备再次切换为从设备的问题,保证了系统的正常运行。

在上述实施例的基础上,本申请还提供一种设备切换方法,应用在从设备,如图6所示,具体包括以下步骤:步骤602、向监控设备发送心跳信息,监控设备用于依据心跳信息确定设备状态。步骤604、在主设备发生故障的情况下,接收至少一个监控设备发送的置主指令;步骤606、根据至少一个置主指令,切换运行状态为主设备的运行状态。

本实施例中,从设备和主设备向监控设备发送心跳信息,监控设备根据心跳信息确定设备状态是否发生异常。在主设备的设备状态为异常的情况下,监控设备按照从设备的优先级,简单快速的从正常的从设备中确定备选设备。之后监控设备向备选设备发送置主指令,备选设备响应于置主指令切换为主设备,以提供服务。本申请实施例可以针对于包括任意数量的从设备的设备切换系统进行主从切换,能够节省从设备的设备资源。并且监控设备之间无需复杂的协同方式,监控设备的增减更简单。

可选的,作为一个实施例,根据至少一个置主指令,切换运行状态为主设备的运行状态的步骤,包括:根据至少三个置主指令进行投票,以根据投票结果,切换运行状态为主设备的运行状态。对于存在多个监控设备的情况,可以按照多个监控设备的置主指令进行投票,来得到投票结果,并在投票结果满足预设标准的情况下,将设备的运行状态切换为主设备的运行状态。

可选的,作为一个实施例,设备切换方法还包括:在完成状态切换后,向监控设备发送心跳信息,所述监控设备根据切换后的心跳信息向切换前的主设备发送置从指令,以使切换前的主设备切换为从设备。

在将一个从设备切换为主设备之后,切换后的主设备向监控设备发送心跳信息,监控设备根据切换后的主设备的心跳信息和发生异常的主设备的心跳信息,向发生异常的主设备发送置从指令。主设备响应于置从指令将设备的运行状态切换为从设备的运行状态。

在上述实施例的基础上,本申请还提供一种设备切换方法,应用在主设备,如图7所示,具体包括以下步骤:

步骤702、向监控设备发送心跳信息,监控设备用于根据心跳信息确定设备状态。

步骤704、在主设备的设备状态为异常的情况下,接收监控设备发送的置从指令。

步骤706、根据置从指令,将设备运行状态切换为从设备的运行状态。

本实施例中,从设备和主设备向监控设备发送心跳信息,监控设备根据心跳信息确定设备状态是否发生异常。在主设备发生异常的情况下,监控设备向发生异常的主设备发送置从指令。发生异常的主设备响应于置从指令,将设备的运行状态切换为从设备的运行状态。使发生异常的主设备不为用户提供服务。

可选的,作为一个实施例,设备切换方法还包括:在接收所述置从指令前,接收所述监控设备的测试信息;根据所述测试信息,在预设时长内向所述监控设备返回反馈信息。

监控设备在确认主设备发生异常之前,可以向主设备发送测试信息来测试主设备是否发生异常。若主设备正常,则主设备根据测试信息,能够在预设时长内向监控设备返回反馈信息。若监控设备在预设时长内未接收到反馈信息,则确认主设备发生异常。通过测试主设备是否在预设时长内返回反馈信息,能够更准确地确定主设备是否发生异常。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。

在上述实施例的基础上,本实施例还提供了一种设备切换装置,如图8所示,具体可以包括如下模块:

信息接收模块802,用于接收设备的心跳信息,依据所述心跳信息确定设备状态,其中,所述设备包括主设备和从设备。

从设备选取模块804,用于在检测到主设备的设备状态为异常的情况下,按照优先级信息从设备状态为正常的从设备中选取备选设备。

置主处理模块806,用于向所述备选设备发送置主指令,以使所述备选设备切换为主设备。

综上,从设备和主设备向监控设备发送心跳信息,监控设备根据心跳信息确定设备状态是否发生异常。在主设备的设备状态为异常的情况下,监控设备按照从设备的优先级,简单快速的从正常的从设备中确定备选设备。之后监控设备向备选设备发送置主指令,备选设备响应于置主指令切换为主设备,以提供服务。本申请实施例可以针对于包括任意数量的从设备的设备切换系统进行主从切换,能够节省从设备的设备资源。并且监控设备之间无需复杂的协同方式,监控设备的增减更简单。

在上述实施例的基础上,本实施例还提供了一种设备切换装置,具体可以包括如下模块:

信息接收模块,用于接收设备的心跳信息,所述心跳信息包括设备标识和时间戳,设备标识包括主机标识和从机标识;

差值确定子模块,用于从所述设备的心跳信息中获取时间戳,并确定时间戳与当前时间的差值。

正常判断子模块,当所述差值小于时长阈值时,确定所述设备的设备状态为正常。

测试指令输出子模块,用于在确定主设备对应的差值大于或等于时长阈值之后,向主设备发送测试指令。

异常判断子模块,若在预设时长内未接收到测试指令对应的反馈信息,用于确定主设备的设备状态为异常。

从设备选取模块,用于在检测到主设备的设备状态为异常的情况下,按照优先级信息从设备状态为正常的从设备中选取备选设备;

置主处理模块,用于向备选设备发送置主指令,以使备选设备切换为主设备。

置从处理模块,用于接收切换后的主设备的心跳信息,向切换前的主设备发送置从指令,生成标识忽略指令,置从指令用于使切换前的主设备切换为从设备。

标识忽略模块,用于依据标识忽略指令,忽略切换前的主设备的主机标识。

本实施例中,在主设备发生异常的情况下,首先向主设备发送测试指令确认主设备是否发生异常。并在确定主设备的设备状态为异常的情况下,按照从设备的优先级,能够更加简单快速的从正常的从设备中确定备选设备。之后向备选设备发送置主指令,备选设备响应于置主指令切换为主设备,以提供服务。本申请实施例可以针对于包括任意数量的从设备的设备切换系统进行主从切换,能够节省从设备的设备资源。并且监控设备之间无需复杂的协同方式,监控设备的增减更简单。在将备选设备切换为主设备之后,对于发生异常的主设备,发送置从指令,使其切换为从设备。并且通过标识忽略指令忽略发生异常的主设备的主机指令,能够避免了切换后的主设备再次切换为从设备的问题,保证了系统的正常运行。

可选的,作为一个实施例,信息接收模块,具体包括:

信息征集子模块,用于向所述设备发送征集指令;

信息接收子模块,用于接收征集指令对应的心跳信息。

在上述实施例的基础上,本实施例还提供了一种设备切换装置,如图9所示,具体可以包括如下模块:

从设备信息输出模块902,用于向监控设备发送心跳信息,所述监控设备用于依据所述心跳信息确定设备状态;

置主信息接收模块904,用于在主设备发生故障的情况下,接收至少一个监控设备发送的置主指令;

置主切换模块906,用于根据至少一个置主指令,切换运行状态为主设备的运行状态。

综上,从设备和主设备向监控设备发送心跳信息,监控设备根据心跳信息确定设备状态是否为异常。在主设备发生异常的情况下,监控设备按照从设备的优先级,简单快速的从正常的从设备中确定备选设备。之后监控设备向备选设备发送置主指令,备选设备响应于置主指令切换为主设备,以提供服务。本申请实施例可以针对于包括任意数量的从设备的设备切换系统进行主从切换,能够节省从设备的设备资源。并且监控设备之间无需复杂的协同方式,监控设备的增减更简单。

可选的,作为一个实施例,所述置主切换模块906,包括:

投票置主子模块,用于根据至少三个置主指令进行投票,以根据投票结果,切换运行状态为主设备的运行状态。

可选的,作为一个实施例,装置还包括:

信息发送模块,用于在完成状态切换后,向所述监控设备发送心跳信息,所述监控设备根据切换后的心跳信息向切换前的主设备发送置从指令,以使切换前的主设备切换为从设备。

在上述实施例的基础上,本实施例还提供了一种设备切换装置,如图10所示,具体可以包括如下模块:

主设备信息输出模块1002,用于向监控设备发送心跳信息,所述监控设备用于根据所述心跳信息确定设备状态;

置从信息接收模块1004,用于在所述主设备的设备状态为异常的情况下,接收所述监控设备发送的置从指令;

置从切换模块1006,用于根据所述置从指令,将设备运行状态切换为从设备的运行状态。

综上,从设备和主设备向监控设备发送心跳信息,监控设备根据心跳信息确定设备状态是否为异常。在主设备的设备状态为异常的情况下,监控设备向发生异常的主设备发送置从指令。发生异常的主设备响应于置从指令,将设备的运行状态切换为从设备的运行状态。使发生异常的主设备不为用户提供服务。

可选的,作为一个实施例,所述装置还包括:

测试信息接收模块,用于在接收所述置从指令前,接收所述监控设备的测试信息;

反馈信息输出模块,用于根据所述测试信息,在预设时长内向所述监控设备返回反馈信息。

本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本申请实施例中各方法步骤的指令(instructions)。

本申请实施例提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得电子设备执行如上述实施例中一个或多个所述的方法。本申请实施例中,所述电子设备包括服务器、终端设备等设备。

本公开的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的装置,该装置可包括服务器(集群)、终端等电子设备。图11示意性地示出了可被用于实现本申请中所述的各个实施例的示例性装置1100。

对于一个实施例,图11示出了示例性装置1100,该装置具有一个或多个处理器1102、被耦合到(一个或多个)处理器1102中的至少一个的控制模块(芯片组)1104、被耦合到控制模块1104的存储器1106、被耦合到控制模块1104的非易失性存储器(nvm)/存储设备1108、被耦合到控制模块1104的一个或多个输入/输出设备1110,以及被耦合到控制模块1104的网络接口1112。

处理器1102可包括一个或多个单核或多核处理器,处理器1102可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,装置1100能够作为本申请实施例中所述服务端、终端等设备。

在一些实施例中,装置1100可包括具有指令1114的一个或多个计算机可读介质(例如,存储器1106或nvm/存储设备1108)以及与该一个或多个计算机可读介质相合并被配置为执行指令1114以实现模块从而执行本公开中所述的动作的一个或多个处理器1102。

对于一个实施例,控制模块1104可包括任意适当的接口控制器,以向(一个或多个)处理器1102中的至少一个和/或与控制模块1104通信的任意适当的设备或组件提供任意适当的接口。

控制模块1104可包括存储器控制器模块,以向存储器1106提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。

存储器1106可被用于例如为装置1100加载和存储数据和/或指令1114。对于一个实施例,存储器1106可包括任意适当的易失性存储器,例如,适当的dram。在一些实施例中,存储器1106可包括双倍数据速率类型四同步动态随机存取存储器(ddr4sdram)。

对于一个实施例,控制模块1104可包括一个或多个输入/输出控制器,以向nvm/存储设备1108及(一个或多个)输入/输出设备1110提供接口。

例如,nvm/存储设备1108可被用于存储数据和/或指令1114。nvm/存储设备1108可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(hdd)、一个或多个光盘(cd)驱动器和/或一个或多个数字通用光盘(dvd)驱动器)。

nvm/存储设备1108可包括作为装置1100被安装在其上的设备的一部分的存储资源,或者其可被该设备访问可不必作为该设备的一部分。例如,nvm/存储设备1108可通过网络经由(一个或多个)输入/输出设备1110进行访问。

(一个或多个)输入/输出设备1110可为装置1100提供接口以与任意其他适当的设备通信,输入/输出设备1110可以包括通信组件、音频组件、传感器组件等。网络接口1112可为装置1100提供接口以通过一个或多个网络通信,装置1100可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如wifi、2g、3g、4g、5g等,或它们的组合进行无线通信。

对于一个实施例,(一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器的逻辑封装在一起以形成系统级封装(sip)。对于一个实施例,(一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(soc)。

在各个实施例中,装置1100可以但不限于是:服务器、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)等终端设备。在各个实施例中,装置1100可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,装置1100包括一个或多个摄像机、键盘、液晶显示器(lcd)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(asic)和扬声器。

其中,检测装置中可采用主控芯片作为处理器或控制模块,传感器数据、位置信息等存储到存储器或nvm/存储设备中,传感器组可作为输入/输出设备,通信接口可包括网络接口。

本申请实施例还提供了一种电子设备,包括:处理器;和存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如本申请实施例中一个或多个所述的方法。

本申请实施例还提供了一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如本申请实施例中一个或多个所述的方法。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种设备切换方法、一种设备切换装置、一种电子设备和一种存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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