一种主备切换方法、装置及通信设备与流程

文档序号:16880042发布日期:2019-02-15 22:02阅读:327来源:国知局
一种主备切换方法、装置及通信设备与流程

本发明涉及大数据技术领域,具体而言,涉及一种主备切换方法、装置及通信设备。



背景技术:

hiveserver2(hs2)是一种hive数据连接的可选服务,允许客户端可以使用各种编程语言向hive提交请求并检索结果。

在传统的基于hiveha(highavailability,高可用性)的故障转移处理方式中,通过zookeeper(分布式应用程序协调服务)实现ha:在hive集群中,每个正常运行的hs2实例(也可称为hs2节点)将自己的信息注册到zookeeper,当某个hs2实例宕机(故障),zookeeper上的该hs2实例注册信息也将会丢失。当客户端使用的hs2实例故障时,会重新请求hs2实例,此时,zookeeper就会从注册的hs2实例(即正常的hs2实例)中随机选择一个返回给客户端,从而实现故障转移。



技术实现要素:

为解决上述问题,本发明实施例提供一种主备切换方法、装置及通信设备。

第一方面,本发明实施例提供了一种主备切换方法,应用于大数据集群中的任一hs2服务器,所述大数据集群包括至少一个虚拟路由组,每个虚拟路由组包括一个主hs2服务器和至少一个备hs2服务器,所述虚拟路由组配置有虚拟ip,所述方法包括:所述hs2服务器的第一子线程获取组内其它hs2服务器的运行状态信息;所述hs2服务器的第二子线程获取所述hs2服务器自身的运行状态信息;所述hs2服务器的主线程根据所述hs2服务器自身的运行状态信息和组内其它hs2服务器的运行状态信息:在确定所述hs2服务器由备状态切换为主状态时,所述主线程建立所述hs2服务器的mac地址与所述虚拟ip的绑定关系;在确定所述hs2服务器由主状态切换为备状态时,所述主线程删除所述hs2服务器的mac地址与所述虚拟ip的绑定关系。

可选地,所述hs2服务器的第一子线程获取组内其它hs2服务器的运行状态信息,包括:所述hs2服务器的第一子线程在预设时间间隔内接收到组内其它hs2服务器所发送的vrrp心跳包时,确定所述组内其它hs2服务器的运行状态为正常;在预设时间间隔内未接收到组内其它hs2服务器所发送的vrrp心跳包时,确定所述组内其它hs2服务器的运行状态为异常。

可选地,所述hs2服务器的第二子线程获取所述hs2服务器自身的运行状态信息,包括:所述hs2服务器的第二子线程获取所述hs2服务器自身的网卡状态或者hs2服务器进程的状态作为所述hs2服务器的运行状态信息。

可选地,所述确定所述hs2服务器由备状态切换为主状态,包括:若所述hs2服务器处于备状态且运行状态正常,组内主hs2服务器状态异常,所述hs2服务器的优先级高于组内其它运行状态为正常的hs2服务器的优先级时,确定所述hs2服务器由备状态切换为主状态。

可选地,所述确定所述hs2服务器由主状态切换为备状态,包括:所述hs2服务器处于主状态且运行状态异常时,确定所述hs2服务器由主状态切换为备状态;或者,若所述hs2服务器处于主状态且运行状态正常,组内至少一个运行状态为正常的其他备hs2服务器的优先级高于所述hs2服务器时,确定所述hs2服务器由主状态切换为备状态。

可选地,所述方法还包括:所述hs2服务器的第三子线程发送vrrp心跳包给组内的其它hs2服务器,以使组内的其它hs2服务器根据所述vrrp心跳包获取所述hs2服务器的运行状态信息。

可选地,所述方法还包括:在确定所述hs2服务器由备状态切换为主状态时,发送arp广播报文,所述arp广播报文包括所述hs2服务器的mac地址与所述虚拟ip;接收客户端返回的arp响应报文,所述arp响应报文包括所述客户端的mac地址。

第二方面,本发明实施例提供一种主备切换装置,应用于大数据集群中的任一hs2服务器,所述大数据集群包括至少一个虚拟路由组,每个虚拟路由组包括一个主hs2服务器和至少一个备hs2服务器,所述虚拟路由组配置有虚拟ip,所述装置包括:第一接收模块,用于所述hs2服务器的第一子线程获取组内其它hs2服务器的运行状态信息;状态监测模块,用于所述hs2服务器的第二子线程获取所述hs2服务器自身的运行状态信息;状态切换模块,用于所述hs2服务器的主线程根据所述hs2服务器自身的运行状态信息和组内其它hs2服务器的运行状态信息:在确定所述hs2服务器由备状态切换为主状态时,所述主线程建立所述hs2服务器的mac地址与所述虚拟ip的绑定关系;在确定所述hs2服务器由主状态切换为备状态时,所述主线程删除所述hs2服务器的mac地址与所述虚拟ip的绑定关系。

可选地,所述第一接收模块,还用于:所述hs2服务器的第一子线程在预设时间间隔内接收到组内其它hs2服务器所发送的vrrp心跳包时,确定所述组内其它hs2服务器的运行状态为正常;在预设时间间隔内未接收到组内其它hs2服务器所发送的vrrp心跳包时,确定所述组内其它hs2服务器的运行状态为异常。

可选地,所述状态监测模块,还用于:所述hs2服务器的第二子线程获取所述hs2服务器自身的网卡状态或者hs2服务器进程的状态作为所述hs2服务器的运行状态信息。

可选地,所述状态切换模块,还用于:若所述hs2服务器处于备状态且运行状态正常,组内主hs2服务器状态异常,所述hs2服务器的优先级高于组内其它运行状态为正常的hs2服务器的优先级时,确定所述hs2服务器由备状态切换为主状态。

可选地,所述状态切换模块,还用于:若所述hs2服务器处于主状态且运行状态异常时,确定所述hs2服务器由主状态切换为备状态;或者,若所述hs2服务器处于主状态且运行状态正常,组内至少一个运行状态为正常的其他备hs2服务器的优先级高于所述hs2服务器时,确定所述hs2服务器由主状态切换为备状态。

可选地,所述装置还包括:第一发送模块,用于所述hs2服务器的第三子线程发送vrrp心跳包给组内的其它hs2服务器,以使组内的其它hs2服务器根据所述vrrp心跳包获取所述hs2服务器的运行状态信息。

可选地,所述装置还包括:第二发送模块,用于在确定所述hs2服务器由备状态切换为主状态时,发送arp广播报文,所述arp广播报文包括所述hs2服务器的mac地址与所述虚拟ip;第二接收模块,用于接收客户端返回的arp响应报文,所述arp响应报文包括所述客户端的mac地址。

第三方面,本发明实施例提供一种通信设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的方法。

与现有技术相比,本发明实施例提供的一种主备切换方法、装置及通信设备带来了以下有益效果:通过hs2服务器的第一子线程获取组内其它hs2服务器的运行状态信息,hs2服务器的第二子线程获取所述hs2服务器自身的运行状态信息,hs2服务器的主线程根据所述hs2服务器自身的运行状态信息和组内其它hs2服务器的运行状态信息,在确定所述hs2服务器由备状态切换为主状态时,所述主线程建立所述hs2服务器的mac地址与所述虚拟ip的绑定关系;在确定所述hs2服务器由主状态切换为备状态时,所述主线程删除所述hs2服务器的mac地址与所述虚拟ip的绑定关系,进而使得hs2服务将不会受到单点故障的影响,从而有效解决了现有技术中hs2故障转移自动切换的技术问题,实现了在主hs2服务器出现故障时,无需人工介入,便能够自动实现hs2服务器主备切换,进一步提高了对数据可靠性和稳定性要求较高的业务的适应度,使得能够更好地适应对数据可靠性和稳定性要求较高的业务。

本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例提供的一种主备切换方法的网络拓扑图;

图2为本发明实施例提供的一种主备切换方法的流程图;

图3为本发明实施例提供的一种主备切换装置的结构框图;

图4示出了一种可应用于本发明实施例中的通信设备的结构框图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

在传统的通过zookeeper(分布式应用程序协调服务)实现ha的故障转移处理方式中,故障转移是通过zookeeper监控机制来实现,然而zookeeper在大数据集群中监控的服务众多,本身机制实现复杂度较高,状态切换和反应灵敏度都会大大折扣。

另外,zookeeper对于网络隔离(指把两个或两个以上可路由的网络(如:tcp/ip)通过不可路由的协议(如:ipx/spx、netbeui等)进行数据交换而达到隔离目的)极度敏感,会导致zookeeper对于网络的任何波动都会做出很大反应。而实际应用场景中,网络常常是会出现隔离等不完整状态,并且一旦出现网络隔离,zookeeper就要发起选举流程。zookeeper的选举流程通常耗时30到120秒,期间zookeeper由于没有master,都是不可用的。对于网络里面偶尔出现的,比如半秒一秒的网络隔离,zookeeper会由于选举过程,把不可用时间放大几十倍。另外,因为zookeeper的选举时间过长,将导致客户端上保存的zookeeper的master信息不一致。若要保持数据一致性,唯一的方法是“先kill掉老master,再在zookeeper上更新master信息”。但是在是否要“kill掉老”master这个问题上,程序是无法完全自动决定的(因为网络隔离的时候zookeeper已经不可用了)。因此,在此情况下必须要人工介入。

另外,一旦工作中的hs2实例出现单点故障,为了保证hive继续进行数据存储和查询服务,不得不人工在客户端重新使用!connect命令来连接hive。

因此,对于数据可靠性和稳定性要求较高的业务(比如hs2),使用zookeeper来提供高可靠性(ha)并不是一个很好的选择。为此,本发明实施例提供了如下的主备切换方法,以保证hs2的高可靠性。

本发明提供的实施例通过vrrp(virtualrouterredundancyprotocol,虚拟路由冗余协议)心跳监测机制来进行hs2的故障切换(即在发生故障是,实现主备切换)。本发明提供的方法应用于大数据集群中的任一hs2实例,所述大数据集群包括至少一个虚拟路由组,每个虚拟路由组包括一个主hs2实例和至少一个备hs2实例,所述虚拟路由组配置有虚拟ip。hs2实例部署在服务器上,为了使后续描述清楚,将hs2实例称为hs2服务器。

请参照图1,图1为本发明实施例提供的hs2-ha业务的网络拓扑图。其中,对多个hs2服务器进行分组(称为vrrp分组),每个vrrp分组包括一个主hs2服务器以及至少一个备hs2服务器,每个所述vrrp分组配置有一个虚拟ip。

其中,主hs2服务器用于与客户端通信,具体地,每个虚拟路由组均配置有一个虚拟ip(internetprotocol,互联网协议)地址,所述主hs2服务器与所述虚拟ip关联(例如,将所述主hs2服务器的物理地址与所述虚拟ip进行绑定),以使所述主hs2服务器能够通过所述虚拟ip与多个客户端通信连接。

可选地,虚拟ip可以是每个vrrp分组内本网段空闲的ip地址,即为每个vrrp分组分配设置一个本网段空闲的ip地址作为虚拟ip,以实现与多个客户端的通信连接。

可选地,可以通过自动将所述多个hs2服务器分成至少一个虚拟路由组。例如,可以通过随机从多个hs2服务器选择小于或等于hs2服务器总数个hs2服务器作为虚拟路由组,或者是按照hs2服务器的处理能力或排序等方式进行自动分组。

在本实施例中,通过把集群划分为多个vrrp分组,每个vrrp分组通过独立选举来选举出主hs2服务器,进而能够有效避免频繁的数据查询及大数据集群内部vrrp心跳包和运行状态信息同步在一个主hs2服务器上进行流量汇聚,进而可以实现负载均衡和数据分流的技术效果。进一步地,实现了同一vrrp分组中的各hs2服务器状态的透明化和状态信息一致性的技术效果。

需要说明的是,上述仅作为举例说明,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。

作为一种应用场景,如图1所示,假设一个hive集群有n个hs2服务器,并分成了m个vrrp(virtualrouterredundancyprotocol,虚拟路由冗余协议)分组(即虚拟路由组)。假设外部有n个客户端(client)与该hive集群进行数据业务访问。客户端通过向hs2服务器发起业务请求,以预设连接方式(例如,以!connectjdbc:hive2://<vipaddress>:<port>形式进行连接,其中,<vipaddress>表示所连接vrrp分组的虚拟ip地址;<port>指hs2服务器的端口号,可在安装时进行配置,例如,默认端口可以是8080进行连接。然后通过hs2服务器通道对该hadoop集群进行数据业务的访问。hs2服务器间通过vrrp心跳包进行通信来监测各个hs2服务器的运行状态(具体地,通过交换机网口进行集群间通信来监测各个hs2服务器的运行状态)。

请参照图2,图2为本发明实施例提供的一种主备切换方法的流程图,所述方法包括如下步骤:

步骤s101:所述hs2服务器的第一子线程获取组内其它hs2服务器的运行状态信息。

其中,运行状态信息包括hs2服务器运行状态正常或运行状态异常。

作为一种实施方式,步骤s101包括:所述hs2服务器的第一子线程在预设时间间隔内接收到组内其它hs2服务器所发送的vrrp心跳包时,确定所述组内其它hs2服务器的运行状态为正常;在预设时间间隔内未接收到组内其它hs2服务器所发送的vrrp心跳包时,确定所述组内其它hs2服务器的运行状态为异常。

其中,vrrp心跳包包括但不限于hs2服务器的优先级(priority)、虚拟路由组的标识信息(或者是hs2服务器的标识信息(haid))、虚拟ip、虚拟mac、认证方式、广播间隔(adver_interval)、校验和等。

其中,预设时间间隔的设置可以根据用户需求进行设置,在此,不作具体限定。

可选地,根据广播间隔以及优先级确定预设时间间隔。预设时间间隔满足:t=(3×adver_interval+(256-priority)/256)秒。

可选地,在确定所述组内其它hs2服务器的运行状态为正常之前,还包括:根据vrrp心跳包所携带的haid判断该vrrp心跳包是否是本vrrp分组内主hs2服务器发送的心跳包,若是,则接收该vrrp心跳包;若不是,则丢弃该vrrp心跳包。从而有效避免了局域网内其它vrrp分组的vrrp心跳包对热备组造成干扰。即通过匹配haid进行同组vrrp心跳包的过滤,从而使得所得到的vrrp心跳包均为同一vrrp分组内的hs2服务器发送的。

作为一种实施场景,假设备hs2服务器s接收到主hs2服务器m发送的vrrp心跳包后,通过匹配haid或虚拟路由组的标识信息进行同组vrrp心跳包的过滤,即用于确定发送所述vrrp心跳包的所述主hs2服务器m是否与所述备hs2服务器s处于相同的vrrp分组。使得若匹配则接收该vrrp心跳包,不匹配则丢弃vrrp心跳包(即若不处于相同所述虚拟路由组,丢弃所述vrrp心跳包),避免了局域网内其它vrrp分组的vrrp心跳包对热备组造成干扰。

步骤s102:所述hs2服务器的第二子线程获取所述hs2服务器自身的运行状态信息。

作为一种实施方式,步骤s102包括:所述hs2服务器的第二子线程获取所述hs2服务器自身的网卡状态或者hs2服务器进程的状态作为所述hs2服务器的运行状态信息。即监测本hs2服务器的网卡是否故障或者hs2服务器进程是否断开,从而检测hs2服务器的运行状态信息。

步骤s103:所述hs2服务器的主线程根据所述hs2服务器自身的运行状态信息和组内其它hs2服务器的运行状态信息:在确定所述hs2服务器由备状态切换为主状态时,所述主线程建立所述hs2服务器的mac地址与所述虚拟ip的绑定关系;在确定所述hs2服务器由主状态切换为备状态时,所述主线程删除所述hs2服务器的mac地址与所述虚拟ip的绑定关系。

其中,处于主状态的hs2服务器用于通过虚拟ip与客户端进行通信。处于备状态的hs2服务器用于在处于主状态的hs2服务器出现异常或宕机时,通过预设规则(如竞选机制)来确定新的处于主状态的hs2服务器。进而使得当其中一个主状态的hs2服务器出现故障时,通过重新确定出的新的主状态的hs2服务器继续与客户端进行通信,进而使得无需人工介入,便能够自动实现切换hs2服务器的主备状态,进一步提高了对数据可靠性和稳定性要求较高的业务的适应度,使得能够更好地适应对数据可靠性和稳定性要求较高的业务。

在本实施例中,通过将主hs2服务器的物理地址(mac)与所述虚拟ip进行绑定(或关联)以形成绑定关系,从而使得客户端能够通过虚拟ip找到对应的主hs2服务器,以取消原始的主hs2服务器与虚拟ip的绑定信息或关联信息,形成新的绑定对象。

可选地,确定所述hs2服务器由备状态切换为主状态,包括:若所述hs2服务器处于备状态且运行状态正常,组内主hs2服务器状态异常,所述hs2服务器的优先级高于组内其它运行状态为正常的hs2服务器的优先级时,确定所述hs2服务器由备状态切换为主状态。例如,如果确认自身将切换为主状态时,则利用虚拟ip发送免费arp广播包,并响应客户端对虚拟ip地址的arp(addressresolutionprotocol,地址解析协议)请求(其中,响应的是热备接口的mac(mediaaccesscontrol,媒体接入控制)地址,进而实现客户端通过虚拟ip地址能够自动切换并访问主hs2服务器。

可选地,确定所述hs2服务器由备状态切换为主状态,包括:当仅收到虚拟路由组内vrrp心跳包的优先级为0、接收超时或优先级小于自身优先级,则将备hs2服务器的状态切换为主hs2状态。

可选地,确定所述hs2服务器由主状态切换为备状态,包括:若所述hs2服务器处于主状态且运行状态异常时,确定所述hs2服务器由主状态切换为备状态;或者,若所述hs2服务器处于主状态且运行状态正常,组内至少一个运行状态为正常的其他备hs2服务器的优先级高于所述hs2服务器时,确定所述hs2服务器由主状态切换为备状态。

可选地,每个hs2服务器均预先设置有优先级。

可选地,若所述hs2服务器处于主状态且运行状态正常,组内至少一个运行状态为正常的其他备hs2服务器的优先级高于所述hs2服务器时,确定所述hs2服务器由主状态切换为备状态,包括:接收所述虚拟路由组内的其他备hs2服务器根据vrrp心跳包返回的所述备hs2服务器对应的优先级;若所述主hs2服务器对应的优先级低于所述备hs2服务器的优先级,将所述主hs2服务器由主状态切换为备状态,并从预设缓冲池中删除所述主hs2服务器的所述物理地址,从而删除mac与虚拟ip的绑定关系。

继续以上述例子来说,由于每个vrrp分组均配置有一个vip(即虚拟ip),如果某个vrrp分组内的主hs2服务器发生故障时,通过选择一个优先级最高的hs2服务器的备份服务器(即备hs2服务器)来替代故障服务器,即作为新主hs2服务器,以使得所述新主hs2服务器能够通过所述虚拟ip与所述多个所述客户端通信连接。其中,由于客户终端连接时以vip进行连接,发生故障时vrrp分组内的vip不变,所以客户端仍然与vrrp分组保持连接,hs2服务将不会受到单点故障的影响,从而解决了hs2故障转移自动切换的技术问题,实现了在hs2服务器出现故障时,无需人工介入,便能够自动实现切换,进一步提高了对数据可靠性和稳定性要求较高的业务的适应度,使得能够更好地适应对数据可靠性和稳定性要求较高的业务。

在一可选的实施例中,本发明实施例提供的主备切换方法,还包括:所述hs2服务器的第三子线程发送vrrp心跳包给组内的其它hs2服务器,以使组内的其它hs2服务器根据所述vrrp心跳包获取所述hs2服务器的运行状态信息。

可选地,所述主hs2服务器的第三子线程发送vrrp心跳包至所述备hs2服务器,以通过所述vrrp心跳包的报文头中所携带的优先级来通知所述虚拟路由组内所述备hs2服务器自己处于主状态以及通知客户端所述hs2服务器为主状态。

可选地,vrrp分组内地hs2服务器的主备状态切换采用bfd(bidirectionalforwardingdetection,双向转发检测)机制,能够快速检测、监控网络中链路或者hs2服务器的连通状况,从而实现hs2服务器的主备快速切换。例如,主备切换的时间可以控制在1秒以内。

在一可选的实施例中,本发明实施例提供的主备切换方法,还包括:进行异常报警,并生成日志信息。

在当集群处于运行状态时,集群某个hs2服务器出现异常故障则会发出警告,以进行报警,并生成相应的日志信息,从而使得用户能够通过报警快速获知到当前出现了异常,并且通过日志信息可以得到具体的异常情况,便于用户进行异常的维护。

在一可选的实施例中,本发明实施例提供的主备切换方法,还包括:在确定所述hs2服务器由备状态切换为主状态时,发送arp广播报文,所述arp广播报文包括所述hs2服务器的mac地址与所述虚拟ip;接收所述客户端返回的arp响应报文,所述arp响应报文包括所述客户端的mac地址。

其中,主hs2服务器发送的arp广播报文包括虚拟ip地址和自身的mac地址。类似的,主hs2服务器还可以响应客户端发送的arp请求,将自身的mac地址发送给客户端。

客户端发送的arp请求中包含的是客户端的ip地址和mac地址。

可选地,在将所述hs2服务器由备状态切换为主状态之后,当arp缓存中的客户端mac地址过了生存期之后,还要再次广播arp请求至客户端。

本发明实施例提供的主备切换方法,通过hs2服务器的第一子线程获取组内其它hs2服务器的运行状态信息,hs2服务器的第二子线程获取所述hs2服务器自身的运行状态信息,hs2服务器的主线程根据所述hs2服务器自身的运行状态信息和组内其它hs2服务器的运行状态信息:在确定所述hs2服务器由备状态切换为主状态时,所述主线程建立所述hs2服务器的mac地址与所述虚拟ip的绑定关系;在确定所述hs2服务器由主状态切换为备状态时,所述主线程删除所述hs2服务器的mac地址与所述虚拟ip的绑定关系,使得通过,即使得客户端仍然与vrrp分组保持连接,进而使得hs2服务将不会受到单点故障的影响,从而有效解决了现有技术中hs2故障转移自动切换的技术问题,自动切换hs2服务器的主备状态,从而实现了在主hs2服务器出现故障时,无需人工介入,便能够自动实现hs2服务器的主备切换,使得该vrrp分组能够一直与客户端进行通信,进一步提高了对数据可靠性和稳定性要求较高的业务的适应度,使得能够更好地适应对数据可靠性和稳定性要求较高的业务。

请参照图3,图3为本发明提供的一种主备切换装置的结构框图,所述主备切换装置400应用于大数据集群,所述大数据集群包括至少一个虚拟路由组,每个虚拟路由组包括一个主hs2服务器和至少一个备hs2服务器,所述虚拟路由组配置有虚拟ip,主备切换装置400包括第一接收模块410、状态监测模块420和状态切换模块430。

第一接收模块410,用于所述hs2服务器的第一子线程获取组内其它hs2服务器的运行状态信息。

可选地,所述第一接收模块410,还用于:所述hs2服务器的第一子线程在预设时间间隔内接收到组内其它hs2服务器所发送的vrrp心跳包时,确定所述组内其它hs2服务器的运行状态为正常;在预设时间间隔内未接收到组内其它hs2服务器所发送的vrrp心跳包时,确定所述组内其它hs2服务器的运行状态为异常。

状态监测模块420,用于所述hs2服务器的第二子线程获取所述hs2服务器自身的运行状态信息。

可选地,所述状态监测模块420,还用于:所述hs2服务器的第二子线程获取所述hs2服务器自身的网卡状态或者hs2服务器进程的状态作为所述hs2服务器的运行状态信息。

状态切换模块430,用于所述hs2服务器的主线程根据所述hs2服务器自身的运行状态信息和组内其它hs2服务器的运行状态信息:在确定所述hs2服务器由备状态切换为主状态时,所述主线程建立所述hs2服务器的mac地址与所述虚拟ip的绑定关系。在确定所述hs2服务器由主状态切换为备状态时,所述主线程删除所述hs2服务器的mac地址与所述虚拟ip的绑定关系。

可选地,所述状态切换模块430,还用于:若所述hs2服务器处于备状态且运行状态正常,组内主hs2服务器状态异常,所述hs2服务器的优先级高于组内其它运行状态为正常的hs2服务器的优先级时,确定所述hs2服务器由备状态切换为主状态。

可选地,所述状态切换模块430,还用于:若所述hs2服务器处于主状态且运行状态异常时,确定所述hs2服务器由主状态切换为备状态;或者,若所述hs2服务器处于主状态且运行状态正常,组内至少一个运行状态为正常的其他备hs2服务器的优先级高于所述hs2服务器时,确定所述hs2服务器由主状态切换为备状态。

在一可能的实施例中,所述装置还包括:第一发送模块;

第一发送模块,用于所述hs2服务器的第三子线程发送vrrp心跳包给组内的其它hs2服务器,以使组内的其它hs2服务器根据所述vrrp心跳包获取所述hs2服务器的运行状态信息。

在一可能的实施例中,所述装置还包括:第二发送模块,用于在确定所述hs2服务器由备状态切换为主状态时,发送arp广播报文,所述arp广播报文包括所述hs2服务器的mac地址与所述虚拟ip;第二接收模块,用于接收所述客户端返回的arp响应报文,所述arp响应报文包括所述客户端的mac地址。

如图4所示,是通信设备700的示意图。所述通信设备700包括存储器702、处理器704以及存储在所述存储器702中并可在所述处理器704上运行的计算机可读取指令703。当所述计算机可读取指令703由所述处理器704执行时,运行如图2所示的所述主备切换方法,为避免重复,此处不再赘述。或者,当所述计算机可读取指令703由所述处理器704执行时,实现如图3所示的所述主备切换装置中各模块/单元的功能,为避免重复,此处不再赘述。示例性的,计算机可读取指令703可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器702中,并由处理器704执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机可读取指令703在通信设备700中的执行过程。例如,计算机可读取指令703可以被分割成如图3中的第一接收模块410、状态监测模块420和状态切换模块430,各模块的具体功能在此不一一赘述。

其中,存储器702可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器702用于存储程序,所述处理器704在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流程定义的方法可以应用于处理器704中,或者由处理器704实现。

处理器704可能是一种集成电路芯片,具有信号的处理能力。上述的处理器704可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

可以理解的是,图4所示的结构仅为通信设备700的一种结构示意图,通信设备700还可以包括比图4所示更多或更少的组件。图4中所示的各组件可以采用硬件、软件或其组合实现。

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

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

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

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

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