用于在服务器集群中切换服务器的方法和装置与流程

文档序号:13984294阅读:518来源:国知局
用于在服务器集群中切换服务器的方法和装置与流程

本申请涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及用于在服务器集群中切换服务器用于在服务器集群中切换服务器的方法和装置。



背景技术:

目前,对于安全性和稳定性要求较高的控制系统中配置有多个服务器或控制器,大多系统中的控制器或服务器采用主备冗余的方式,或重启异常退出的控制器或服务器的方式解决系统的安全性和稳定性问题。但是,主备冗余的方式中,当主机和备用机都出现故障时,系统失去控制,系统的安全性和稳定性差。重启异常退出的控制器的方式在系统异常退出后会导致控制主机和控制节点的数据丢失,导致系统重新启动后无法正常工作。



技术实现要素:

本申请的目的在于提出一种改进的用于在服务器集群中切换服务器的方法和装置,来解决以上背景技术部分提到的技术问题。

第一方面,本申请提供了一种用于在服务器集群中切换服务器的方法,所述服务器集群包括至少一个用于实现同一服务的服务器,所述方法包括:检测所述服务器集群中处于待机状态的服务器的数目;响应于检测到处于待机状态的服务器的数目小于预定数目,则在所述服务器集群中启用至少一个服务器,使处于待机状态的服务器的数目达到预定数目;对所述服务器集群中用来提供服务的主服务器进行监测;响应于监测到所述主服务器发生异常,则从处于待机状态的服务器中选择服务器作为主服务器继续提供所述服务。

在一些实施例中,所述检测所述服务器集群中处于待机状态的服务器的数目,包括:获取所述服务器集群中各个服务器的状态信息;根据所述各个服务器的状态信息,确定各个服务器是否处于待机状态;统计并确定处于待机状态的服务器的数目。

在一些实施例中,所述状态信息包括心跳信息;以及所述根据所述各个服务器的状态信息,确定各个服务器是否处于待机状态,包括:向所述服务器集群中每个服务器发送心跳信息的检测命令;根据在设定的时间段内是否收到所述服务器的心跳信息确定所述服务器是否处于待机状态。

在一些实施例中,所述响应于检测到处于待机状态的服务器的数目小于所述预定数目,则在所述服务器集群中启用至少一个服务器,使处于待机状态的服务器的数目达到所述预定数目,包括:根据处于待机状态的服务器的数目与预定数目的差值,在所述服务器集群中启动至少一个服务器,使所述服务器集群中处于待机状态的服务器的数目为所述预定数目;获取所述至少一个服务器中的每个服务器的信息在预设的注册信息表中依次注册所启动的每个服务器的信息作为该服务器的注册信息。

在一些实施例中,所述响应于监测到所述主服务器发生异常,则从处于待机状态的服务器中选择服务器作为主服务器继续提供所述服务,包括:从所述注册信息表中提取所述处于待机状态的服务器的注册信息,其中,所述注册信息包括所述处于待机状态的服务器的编号信息;根据编号信息中编号的大小,从所述处于待机状态的服务器中选取出一个服务器作为主服务器继续提供所述服务。

在一些实施例中,所述从所述处于待机状态的服务器中选取出一个服务器作为主服务器继续提供所述服务,包括:建立从所选取出的服务器到预设的数据存储区域的通信连接;将所述预设的数据存储区域的数据备份到所述从所选取出的服务器中;建立从所选取出的服务器到服务节点的通信连接,所述服务节点是与所述主服务器进行交互并受所述主服务器控制的设备;将所述从所选取出的服务器作为主服务器继续提供所述服务。

第二方面,本申请提供了一种用于在服务器集群中切换服务器的装置,所述服务器集群包括至少一个用于实现同一服务的服务器,所述装置包括:检测单元,配置用于检测所述服务器集群中处于待机状态的服务器的数目;启动单元,配置用于响应于检测到处于待机状态的服务器的数目小于预定数目,则在所述服务器集群中启用至少一个服务器,使处于待机状态的服务器的数目达到所述预定数目;监测单元,配置用于对所述服务器集群中用来提供服务的主服务器进行监测;切换单元,配置用于响应于监测到所述主服务器发生异常,则从处于待机状态的服务器中选择服务器作为主服务器继续提供所述服务。

在一些实施例中,所述检测单元包括:获取模块,配置用于获取所述服务器集群中各个服务器的状态信息;判断模块,配置用于根据所述各个服务器的状态信息,确定各个服务器是否处于待机状态;确定模块,配置用于统计并确定处于待机状态的服务器的数目。

在一些实施例中,所述状态信息包括心跳信息;以及所述判断模块进一步配置用于:向所述服务器集群中每个服务器发送心跳信息的检测命令;根据在设定的时间段内是否收到所述服务器的心跳信息确定所述服务器是否处于待机状态。

在一些实施例中,所述启动单元进一步配置用于:根据处于待机状态的服务器的数目与所述预定数目的差值,在所述服务器集群中启动至少一个服务器,使所述服务器集群中处于待机状态的服务器的数目为所述预定数目;获取所述至少一个服务器中的每个服务器的信息;在预设的注册信息表中依次注册所启动的每个服务器的信息作为每个服务器的注册信息。

在一些实施例中,所述切换单元进一步配置用于:从所述注册信息表中提取所述处于待机状态的服务器的注册信息,其中,所述注册信息包括所述处于待机状态的服务器的编号信息;根据编号信息中编号的大小,从所述处于待机状态的服务器中选取出一个服务器作为主服务器继续提供所述服务。

在一些实施例中,所述切换单元包括:第一通信连接模块,配置用于建立从所选取出的服务器到预设的数据存储区域的通信连接;数据读取模块,配置用于将所述预设的数据存储区域的数据备份到所选取出的服务器中;第二通信连接模块,配置用于建立从所选取出的服务器到服务节点的通信连接,所述服务节点是与所述主服务器进行交互并受所述主服务器控制的设备;切换服务模块,配置用于将所选取出的服务器作为主服务器继续提供所述服务。

本申请提供的用于在服务器集群中切换服务器的方法和装置,通过判断服务器集群中服务器的状态确定主服务器是否异常,如果异常,从服务器集群中正常的服务器中选取出新的主服务器用于替换异常的主服务器,并从预设的数据存储区域下载该数据存储区域备份的数据,使新的主服务器的数据恢复到被替换主服务器在正常状态时的数据,解决了系统运行中主服务器异常退出或重启所产生的主服务器数据丢失的问题。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请可以应用于其中的示例性系统架构图;

图2是根据本申请的用于在服务器集群中切换服务器的方法的一个实施例的流程图;

图3是根据本申请的用于在服务器集群中切换服务器的方法的一个应用场景的示意图;

图4是根据本申请的用于在服务器集群中切换服务器的方法的又一个实施例的流程图;

图5是根据本申请的用于在服务器集群中切换服务器的装置的一个实施例的结构示意图;

图6是适于用来实现本申请实施例的管理控制机的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用本申请的用于在服务器集群中切换服务器的方法或用于在服务器集群中切换服务器的装置的实施例的示例性系统架构100。

如图1所示,系统架构100可以包括管理控制机101、主服务器102、备用服务器103、服务节点104和服务节点105。

管理控制机101可以是提供管理和控制服务的服务器,例如对主服务器102、备用服务器103、服务节点104和服务节点105的状态进行测试,根据测试结果,切换主服务器,并更新上述主服务器102、备用服务器103、服务节点104和服务节点105的数据。

服务节点104和服务节点105是系统底层控制节点,实现一个具体的控制服务,例如,上述服务节点104和服务节点105可以是用于获取传感器的数据的处理程序节点、还可以是感知计算程序节点。

主服务器102用于将上述管理控制机101与上述服务节点104和服务节点105连接,并且实现对上述服务节点104和服务节点105的控制。

备用服务器103作为主服务器102的备用机,备用服务器103在主服务器102正常工作时处于待机状态,当上述主服务器出现故障或异常等问题时,能够自动的从备用的服务器中选出一个服务器作为新的主服务器替换原有的主服务器。

需要说明的是,本申请实施例所提供的用于在服务器集群中切换服务器的方法一般由管理控制机101执行,相应地,用于在服务器集群中切换服务器的装置一般设置于管理控制机101中。

应该理解,图1中的管理控制机、主服务器、备用服务器、服务节点的数目仅仅是示意性的。根据实现需要,可以具有任意数目的管理控制机、主服务器、备用服务器、服务节点。

继续参考图2,示出了根据本申请的用于在服务器集群中切换服务器的方法的一个实施例的流程200。所述的用于在服务器集群中切换服务器的方法,包括以下步骤:

步骤201,检测服务器集群中处于待机状态的服务器的数目。

在本实施例中,用于在服务器集群中切换服务器的方法运行于其上的电子设备(例如图1所示的管理控制机)可以通过有线连接方式或者无线连接方式与上述主服务器、备用服务器或服务节点进行通信或数据交换。上述电子设备从与其连接的服务器集群中获取上述服务器集群中各个服务器的信息,确定处于待机状态的服务器的数目。其中,上述服务器集群包括至少一个用于实现同一服务的服务器,这里,上述同一服务是指在由上述管理控制机、服务器和服务节点构成的系统中,服务器与上述管理控制机和服务节点进行信息交互。如,获取服务器节点的信息,从管理控制机获取命令,接受上述管理控制机的控制,并且对上述服务器节点进行控制管理。

通常,上述服务器集群中的服务器包括主服务器和备用服务器,其中主服务器与上述管理控制机和上述服务节点通信连接,并且可以与上述管理控制机和上述服务节点进行数据交换。上述备用服务器作为上述主服务器的备用设备,上述备用服务器与上述主服务器同步,当上述主服务器出现故障或发生异常退出时,替换上述主服务器提供服务。上述检测服务器集群中处于待机状态的服务器的数目可以采用传感器方式检测服务器的状态信息,根据上述服务器的状态信息取得该服务器的状态;或还可以通过检测服务器端口的方法获得服务器的状态。根据服务器集群中每个服务器的状态统计确定出服务器集群中处于待机状态的服务器的数目。上述检测服务器集群中处于待机状态的服务器的数目,可以是上述电子设备发出检测服务器集群中处于待机状态的服务器的数目的请求,如,通过定时的发出检测请求以获得上述处于待机状态的服务器的数目、或通过巡回检测的方式发出检测请求以获得上述处于待机状态的服务器的数目;还可以是上述服务器集群中服务器以中断的方式,在上述服务器集群中的服务器故障或异常退出时主动向上述电子设备发送上述处于待机状态的服务器的数目。

在本实施例的一些可选的实现方式中,上述检测上述服务器集群中处于待机状态的服务器的数目,包括:获取服务器集群中各个服务器的状态信息;根据上述各个服务器的状态信息,确定各个服务器是否处于待机状态;统计并确定处于待机状态的服务器的数目。上述电子设备获取服务器集群中各个服务器的状态信息,可以是上述电子设备发起获取服务器集群中各个服务器的状态信息的请求,如,通过定时的发起获取请求获得上述服务器集群中各个服务器的状态信息、或通过巡回检查的方式发起获取请求以获得上述服务器集群中各个服务器的状态信息;还可以是上述服务器集群中的服务器以中断的方式,在上述服务器集群中服务器故障或异常退出时主动向上述电子设备发送上述服务器集群中各个服务器的状态信息。根据上述电子设备所获取的各个服务器的状态信息,确定各个服务器是否处于待机状态;统计并确定处于待机状态的服务器的数目。

在本实施例的一些可选的实现方式中,根据上述各个服务器的状态信息,确定各个服务器是否处于待机状态,包括:向上述服务器集群中每个服务器发送心跳信息的检测命令;根据在设定的时间段内是否收到上述服务器的心跳信息确定上述服务器是否处于待机状态。上述确定该服务器是否正常,具体为:向该服务器发送心跳信息的检测命令,通过判断是否在设定的时间段内收到该服务器回复的心跳信息确定该服务器是否正常,如果收到,表示上述服务器正常,处于待机状态。或者可以直接向该服务器发送心跳包,如果在设定的时间段内收到该服务器回复的心跳包,表示该服务器正常,处于待机状态。

步骤202,响应于检测到处于待机状态的服务器的数目小于预定数目,则在上述服务器集群中启用至少一个服务器,使处于待机状态的服务器的数目达到预定数目。

在本实施例中,将上述步骤201中检测所获取的处于待机状态的服务器的数目与预定数目比较。这里,预定数目是预先设置的数目,为自然数。上述预定数目可以根据上述服务器集群中提供服务的主服务器的数目以及备用的服务器的数目而设置。这里,当上述服务器集群中处于待机状态的服务器的数目小于预定数目,则,上述服务器集群中存在至少一个异常或故障的服务器,为保障能够及时替换故障或异常退出的主服务器,需要保证处于待机状态的服务器的数量为预定数目。上述在服务器集群中启动至少一个服务器使上述被启动的服务器的状态处于待机状态,在主服务器异常或退出时可以提供服务。

步骤203,对上述服务器集群中用来提供服务的主服务器进行监测。

在本实施例中,对上述服务器集群中用来提供服务的主服务器进行监测。其中,上述用来提供服务的主服务器可以是预先设置的,还可以是根据一定的规则从上述服务器集群中处于待机状态的服务器中选出的服务器。通过获取上述主服务的状态信息,监测上述主服务器的状态。

步骤204,响应于监测到上述主服务器发生异常,则从处于待机状态的服务器中选择服务器作为主服务器继续提供上述服务。

在本实施例中,基于步骤203中对主服务器的监测的结果,当上述电子设备监测到上述主服务器发生异常,从处于待机状态的服务器中选择服务器作为主服务器继续提供上述服务。这里,上述主服务异常包括以下任意一项:主服务器退出、主服务器与管理控制机通信不正常、主服务器宕机。这里,从处于待机状态的服务器中选择服务器作为主服务器继续提供上述服务可以是获得上述主服务器的备份数据,使切换后的主服务器的数据恢复到正常状态时的数据。其中,上述备份数据是上述主服务器异常状态之前的运行数据及状态数据,

继续参见图3,图3是根据本实施例的用于在服务器集群中切换服务器的方法的应用场景的一个示意图。在图3的应用场景中,上述电子设备(图1中的管理控制机)可以是zookeeperlocalcluster(分布式应用程序协调服务集群),上述zookeeperlocalcluster与系统中服务器连接,这里,服务器是rosmaster(robotoperatingsystermmaster,机器人操作系统服务器),包括有主rosmaster和从rosmaster,其中,主rosmaster提供服务,控制与其连接的检测设备、控制设备或通信设备,并将数据备份在上述zookeeperlocalcluster中预设的数据存储区域;从rosmaster作为主rosmaster的备用设备与上述主rosmaster同步,从上述zookeeperlocalcluster预设的数据存储区域读取备份数据。上述电子设备判断上述rosmaster的状态是否正常,从而获取上述服务器集群中处于待机状态的(正常的)服务器的数目,并与预先设置的预定数目比较,这里,如果上述服务器集群中正常的服务器的数目小于上述预定数目,则表明在上述服务器集群中存在异常的或故障的rosmaster,需要启动rosmaster作为备用。上述电子设备启动至少一个rosmaster,使上述服务器集群中处于待机状态(可以正常使用)的rosmaster的数量为预定数目。然后从处于待机状态的rosmaster中选出编号最小的rosmaster作为主rosmaster,上述选出的主rosmaster从预设的数据存储区域下载备份数据,使上述主rosmaster的数据恢复之前正常状态时候的数据,并使用选出的主rosmaster替换上述异常的或故障的主rosmaster。图3中还示出了rosnod(机器人操作系统服务节点),其中,rosnod可以是ros系统中的服务节点,可以是与上述主rosmaster连接的检测设备、控制设备或通信设备。

本申请的上述实施例提供的方法通过判断服务器集群中主服务器是否异常,如果异常,从服务器集群中处于待机状态的服务器中选取出主服务器用于替换异常的主服务器,解决了系统运行中异常退出或重启所产生的主服务器数据的丢失问题。

进一步参考图4,其示出了用于在服务器集群中切换服务器的方法的又一个实施例的流程400。该用于在服务器集群中切换服务器的方法的流程400,包括以下步骤:

步骤401,检测服务器集群中处于待机状态的服务器的数目。

在本实施例中,用于在服务器集群中切换服务器的方法运行于其上的电子设备(例如图1所示的管理控制机)可以通过有线连接方式或者无线连接方式与上述主服务器、备用服务器或服务节点进行通信或数据交换。上述电子设备从与其连接的服务器集群中获取上述服务器集群中各个服务器的信息,确定处于待机状态的服务器的数目。其中,上述服务器集群是包括至少一个用于实现同一服务的服务器。

步骤402,响应于检测到处于待机状态的服务器的数目小于预定数目,则在上述服务器集群中启用至少一个服务器,使处于待机状态的服务器的数目达到预定数目。

在本实施例中,将上述步骤401中检测所获取的处于待机状态的服务器的数目与预定数目比较。这里,预定数目是预先设置的数目,为自然数。这里,当上述服务器集群中处于待机状态的服务器的数目小于预定数目,则,上述服务器集群中存在至少一个异常或故障的服务器,为保障能够及时替换故障或异常退出的主服务器,需要保证服务器集群中处于待机状态的服务器的数量为预定数目。上述启动至少一个服务器,可以根据处于待机状态的服务器的数目与预定数目的差值确定出启动服务器的数目,

步骤403,在预设的注册信息表中依次注册所启动的至少一个服务器中的每个服务器的信息。

在本实施例中,基于上述步骤402中在服务器集群中启动至少一个服务器,使该服务器集群中处于待机状态的服务器数目为预定数目。启动一个服务器后,该服务器处于待机状态,获取该服务器的信息。在上述电子设备存储区域预设的注册信息表中依次注册上述至少一个服务器中的每个服务器的信息,并将上述注册后的信息作为该服务器的注册信息。上述预设信息注册表是预先设置的用于标识上述服务器集群中每个服务器的区别信息的注册表。上述注册信息表中的每个服务器的信息包括:可以标识服务器的编号信息、地址信息、端口信息、通信链路信息、tcp(transmissioncontrolprotocol传输控制协议、udp(userdatagramprotocol,用户数据报协议)、输入、输出等信息。

步骤404,对上述服务器集群中用来提供服务的主服务器进行监测。

在本实施例中,对上述服务器集群中用来提供服务的主服务器进行监测。其中,上述用来提供服务的主服务器可以是预先设置的,还可以是根据一定的规则从上述服务器集群中处于待机状态的服务器中选出的服务器。通过获取上述主服务的状态信息,监测上述主服务器的状态。

步骤405,响应于监测到上述主服务器发生异常,则从处于待机状态的服务器中选择服务器作为主服务器继续提供上述服务。

在本实施例中,基于步骤404中对主服务器的监测的结果,当上述电子设备监测到上述主服务器发生异常,从处于待机状态的服务器中选择服务器作为主服务器继续提供上述服务。其中,上述主服务异常包括以下任意一项:主服务器退出、主服务器与管理控制机通信不正常、主服务器宕机。

在本实施例的一些可选的实现方式中,上述响应于监测到主服务器发生异常,则从处于待机状态的服务器中选择服务器作为主服务器继续提供上述服务,包括:从上述注册信息表中提取上述处于待机状态的服务器的注册信息,其中,上述注册信息包括上述处于待机状态的服务器的编号信息;根据上述编号信息中编号的大小,从上述处于待机状态的服务器中选取出一个服务器作为主服务器继续提供上述服务,如,可以将编号最小的服务器确定为备用主服务器。这里,监测到正在服务的主服务器异常时,上述电子设备依次获取上述服务器集群中各个服务器的编号信息,根据上述编号信息从上述处于待处理状态的服务器中选取出一个服务器作为备用主服务器。

在本实施例的一些可选的实现方式中,将从上述处于待机状态的服务器中选取出的服务器作为主服务器继续提供上述服务,还包括:建立上述所选取出的服务器与上述预设的数据存储区域的通信连接;将上述预设的数据存储区域的数据备份到上述所选取出的服务器中;建立上述所选取出的服务器与服务节点的通信连接,上述服务节点是与上述主服务器进行交互并受上述主服务器控制的设备;将上述所选取出的服务器作为主服务器继续提供上述服务。这里,上述电子设备预先设置数据存储区域,将与上述主服务器相关的数据备份到上述数据存储区域。其中,与上述主服务器相关的数据可以是上述主服务器的本身的状态数据、可以是上述主服务器从与其通信连接的设备交互所获取的数据、可以是上述主服务器运算后的数据;还可以是与上述主服务器进行通信连接的设备的数据、或该设备运算后的数据。上述电子设备将上述在预设的数据存储区域所备份的与主服务器相关的数据下载到上述所选取出的服务器,使所选取出的服务器读取备份数据,恢复到上述被替换的主服务器在故障或异常的前一时刻的正常的状态。然后,将该所选取出的服务器作为上述服务器集群的主服务器提供服务。这里,将该所选取出的服务器作为上述服务器集群的主服务器提供服务是切换上述主服务器,使用所选取出的服务器作为主服务器替换上述异常的或故障的主服务器提供服务。建立主服务器与上述预设的数据存储区域、服务节点的通信连接可以是上述主服务器通过网路或其他任意的连接方式与上述预设的数据存储区域或服务节点之间进行信息交互。

从图4中可以看出,与图2对应的实施例相比,本实施例中的用于在服务器集群中切换服务器的方法的流程400突出了注册上述启动后的服务器的信息。由此,本实施例描述的方案可以全面的根据上述注册信息对服务器及与服务器相连接的服务节点设备的故障切换或重启,从而可以使由上述服务器集群和服务节点正常的系统更加安全可靠。

进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于在服务器集群中切换服务器的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图5所示,本实施例所述的用于在服务器集群中切换服务器的装置500包括:检测单元501、启动单元502、监测单元503和切换单元504,其中,服务器集群包括至少一个用于实现同一服务的服务器。检测单元501配置用于检测上述服务器集群中处于待机状态的服务器的数目;启动单元502配置用于响应于检测到处于待机状态的服务器的数目小于预定数目,则在上述服务器集群中启用至少一个服务器,使处于待机状态的服务器的数目达到预定数目;监测单元503配置用于对上述服务器集群中用来提供服务的主服务器进行监测;切换单元504配置用于响应于监测到上述主服务器发生异常,则从处于待机状态的服务器中选择服务器作为主服务器继续提供上述服务。

在本实施例中,用于在服务器集群中切换服务器的装置500的检测单元501从与其连接的服务器集群中获取上述服务器集群中各个服务器的状态信息,确定处于待机状态的服务器的数目。

在本实施例中,将上述检测单元501经过检测所获取的处于待机状态的服务器的数目与预定数目比较。这里,预定数目是预先设置的数目,为自然数。上述预定数目可以根据上述服务器集群中提供服务的主服务器的数目以及备用的服务器的数目而设置。这里,当上述服务器集群中处于待机状态的服务器的数目小于预定数目,启动单元502启动至少一个服务器,使上述处于待机状态的服务器的数目为预定数目。

在本实施例中,上述监测单元503对上述服务器集群中用来提供服务的主服务器进行监测。其中,上述用来提供服务的主服务器可以是预先设置的,还可以是根据一定的规则从上述服务器集群中处于待机状态的服务器中选出的服务器。通过获取上述主服务的状态信息,监测上述主服务器的状态。

在本实施例中,基于上述监测单元503中对主服务器的监测的结果,当上述监测单元503监测到上述主服务器发生异常,从处于待机状态的服务器中选择服务器作为主服务器继续提供上述服务。这里,上述主服务异常包括以下至少一项:主服务器退出、主服务器与管理控制机通信不正常、主服务器宕机。

在本实施例的一些可选的实现方式中,上述检测单元501包括:获取模块、判断模块和确定模块。其中,获取模块配置用于获取服务器集群中各个服务器的状态信息;判断模块,配置用于根据上述各个服务器的状态信息,确定各个服务器是否处于待机状态;确定模块配置用于统计并确定处于待机状态的服务器的数目。上述获取模块获取服务器集群中各个服务器的状态信息,可以是上述获取模块发起获取服务器集群中各个服务器的状态信息的请求,如,可以通过定时发起获取请求以获得上述服务器集群中各个服务器的状态信息、或通过巡回检查的方式发起获取请求以获得上述服务器集群中各个服务器的状态信息;还可以是上述服务器集群中的服务器以中断的方式,在上述服务器集群中服务器故障或异常退出时主动向上述电子设备发送上述服务器集群中各个服务器的状态信息。

在本实施例的一些可选的实现方式中,上述判断模块进一步配置用于:向上述服务器集群中每个服务器发送心跳信息的检测命令;根据在设定的时间段内是否收到上述服务器的心跳信息确定该服务器是否处于待机状态。其中,上述获取模块所获取的状态信息包括心跳信息。可以是通过向该服务器发送心跳包判断。如果在设定的时间段内收到该服务器回复的心跳包,表示该服务器正常,处于待机状态。

在本实施例的一些可选的实现方式中,上述启动单元进一步配置用于:根据处于待机状态的服务器的数目与预定数目的差值,在上述服务器集群中启动至少一个服务器,使上述服务器集群中处于待机状态的服务器的数目为预定数目;获取所启动的至少一个服务器中的每个服务器的信息,在预设的注册信息表中依次注册上述每个服务器的信息。上述预设信息注册表是预先设置的用于标识上述服务器集群中每个服务器的区别信息的注册表。上述注册信息表中的每个服务器信息:包括可以标识服务器的编号信息、地址信息、端口信息、通信链路信息、tcp(transmissioncontrolprotocol传输控制协议、udp(userdatagramprotocol,用户数据报协议)、输入、输出等信息。

在本实施例的一些可选的实现方式中,上述切换单元504进一步配置用于:从上述注册信息表中提取上述处于待机状态的服务器的注册信息,其中,上述注册信息包括上述处于待机状态的服务器的编号信息;根据上述编号信息中编号的大小,从上述处于待机状态的服务器中选取出一个服务器作为主服务器继续提供上述服务。

在本实施例的一些可选的实现方式中,上述切换单元504包括:第一通信连接模块、数据读取模块、第二通信连接模块和切换服务模块。其中,第一通信连接模块配置用于建立从所选取出的服务器到上述预设的数据存储区域的通信连接;数据读取模块配置用于将上述预设的数据存储区域的数据备份到上述所选取出的服务器中;第二通信连接模块配置用于建立从所选取出的服务器与服务节点的通信连接,上述服务节点是与上述主服务器进行交互并受上述主服务器控制的设备;切换服务模块配置用于使上述从所选取出的服务器作为主服务器继续提供上述服务。上述电子设备可以预先设置数据存储区域将与上述主服务器相关的数据备份到上述数据存储区域。其中,与上述主服务器相关的数据可以是上述主服务器的本身的状态数据、可以是上述主服务器从与其通信连接的设备交互所获取的数据、可以是上述主服务器运算后的数据;还可以是与上述主服务器进行通信连接的设备的数据、或该设备运算后的数据。建立主服务器与上述预设的数据存储区域、服务节点的通信连接可以是上述主服务器通过网路或其他任意的连接方式与上述预设的数据存储区域或服务节点之间进行信息交互。

本申请的上述实施例提供的装置通过判断服务器集群中正常服务器的数目确定主服务器是否异常,如果异常,从服务器集群中处于待机状态的服务器中选取出服务器作为主服务器用于替换异常的主服务器,解决了系统运行中异常退出或重启所产生的主服务器数据的丢失问题。

下面参考图6,其示出了适于用来实现本申请实施例管理控制机的计算机系统600的结构示意图。

如图6所示,计算机系统600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有系统600操作所需的各种程序和数据。cpu601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。

以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。

特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(cpu)601执行时,执行本申请的方法中限定的上述功能。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括检测单元、启动单元、监测单元和切换单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,检测单元还可以被描述为“检测服务器集群中处于待机状态的服务器的数目的单元”。

作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:检测上述服务器集群中处于待机状态的服务器的数目,上述服务器集群包括至少一个用于实现同一服务的服务器;响应于检测到处于待机状态的服务器的数目小于预定数目,则在上述服务器集群中启用至少一个服务器,使处于待机状态的服务器的数目达到预定数目;对上述服务器集群中用来提供服务的主服务器进行监测;响应于监测到上述主服务器发生异常,则从处于待机状态的服务器中选择服务器作为主服务器继续提供上述服务。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

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