状态切换方法和装置与流程

文档序号:17355436发布日期:2019-04-09 21:36阅读:146来源:国知局
状态切换方法和装置与流程

本发明涉及通信技术领域,具体而言,涉及一种状态切换方法和装置。



背景技术:

现有的冗余备份系统中的各服务器是基于vrrp协议(virtualrouterredundancyprotocol,虚拟路由冗余协议)来实现服务器高可用方案,进而避免单点故障,如一旦主服务器出现故障或宕机现象时,需要备用服务器切换至主服务状态以接管虚拟ip(internetprotocol,网际协议)并继续向客户端提供服务,但现有的服务器状态检测和切换过程过长,导致无法满足一些更高时间精度的服务或者业务切换需求。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种基于组播同步方式实现的状态切换方法和装置,以改善上述问题。

一方面,本发明较佳实施例还提供一种状态切换方法,应用于第一服务器,该第一服务器能够与多个第二服务器之间互相通信,所述状态切换方法包括:

接收各所述第二服务器发送的组播报文;

针对每个组播报文,从所述组播报文中提取发送该组播报文的第二服务器的优先级;

分别将自身的优先级与提取到的各所述组播报文中的优先级进行比对,并在比对结果满足状态切换条件时进行状态切换。

进一步地,所述第一服务器中预设有用于与提取到的第二服务器的优先级进行一一比对的本地优先级;所述分别将自身的优先级与提取到的各所述组播报文中的优先级进行比对的步骤,包括:

分别判断提取到的各所述组播报文中的优先级是否大于所述本地优先级;

若所述组播报文中包含的优先级大于所述本地优先级,则基于所述组播报文中包含的优先级对所述本地优先级进行更新,以使得更新后的本地优先级为提取到的各所述组播报文中的优先级的最大值;

将自身的优先级与更新后的本地优先级进行比对。

进一步地,当所述第一服务器为处于备用状态的备用服务器时,在比对结果满足状态切换条件时进行状态切换的步骤,包括:

当比对结果为自身的优先级大于提取到的各所述第二服务器的优先级时,判定所述比对结果满足状态切换条件以从当前备用状态切换为主服务状态,并获取虚拟ip以继续为客户端提供服务。

进一步地,在从当前备用状态切换为主服务状态后,所述状态切换方法还包括:

检测预设应用是否处于运行状态或预设应用的运行状态是否正常,若所述预设应用未处于运行状态或运行状态异常,则重启所述预设应用以确保该预设应用的运行状态正常。

进一步地,所述方法还包括:

在启动或重启时,读取初始配置文件;

根据所述初始配置文件进行状态初始化以进入备用状态,并在处于备用状态时执行接收多个所述第二服务器发送的组播报文的步骤。

进一步地,当所述第一服务器为处于主服务状态的主服务器时,所述在比对结果满足状态切换条件时进行状态切换的步骤,包括:

当比对结果为自身的优先级小于提取到的所述第二服务器中的优先级时,则从当前主服务状态切换为备用状态,并删除虚拟ip以停止为客户端提供服务。

进一步地,在接收各所述第二服务器发送的组播报文的同时,所述状态切换方法还包括:

按照预设时间间隔向各所述第二服务器发送组播报文。

另一方面,本发明较佳实施例提供一种状态切换装置,应用于第一服务器,该第一服务器能够与多个第二服务器之间能够互相通信,所述状态切换装置包括:

报文接收模块,用于接收各所述第二服务器发送的组播报文;

信息提取模块,用于针对每个组播报文,从所述组播报文中提取发送该组播报文的第二服务器的优先级;

状态切换模块,用于将自身的优先级与所述组播报文中的优先级进行比对,并在比对结果满足状态切换条件时进行状态切换。

进一步地,当所述第一服务器为处于备用状态的备用服务器时,所述状态切换模块包括:

第一切换单元,用于在比对结果为自身的优先级大于各所述第二服务器的优先级时,判定所述比对结果满足状态切换条件以从当前备用状态切换为主服务状态,并获取虚拟ip以继续为客户端提供服务。

进一步地,当所述第一服务器为处于主服务状态的主服务器时,所述状态切换模块还包括:

第二切换单元,用于在比对结果为自身的优先级小于所述第二服务器中的优先级时,则从当前主服务状态切换为备用状态,并删除虚拟ip以停止为客户端提供服务。

与现有技术相比,本发明实施例提供一种状态切换方法和装置,其中,本发明基于组播同步的方式进行服务器状态检测和信息同步,进而实现服务器的工作状态切换,如备用服务器在主服务器出现故障或宕机时的切换为主服务状态等,能够大幅缩减服务器进行状态切换时的切换时间,满足超高时间精度的服务或者业务的切换需求,提高了冗余备份系统运行过程中的可靠性和稳定性。

另外,本发明还在服务器由备用状态切换为主服务状态后进行业务检测,能够有效避免由于状态切换导致的业务运行终止或异常的现象发生,有效确保了业务运行的可靠性,提高用户体验。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

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

图1为现有的冗余备份系统与客户端之间的数据交互场景示意图。

图2为本发明实施例给出的冗余备份系统的方框结构示意图。

图3为图2中所示的第一服务器的方框结构示意图。

图4为本发明实施例提供的状态切换方法的流程示意图。

图5为图3中所示的步骤s13的子流程示意图。

图6为本发明实施例提供的状态切换装置的方框结构示意图。

图标:10-第一服务器;100-状态切换装置;110-报文接收模块;120-信息提取模块;130-状态切换模块;200-存储器;300-存储控制器;400-处理器;20-第二服务器;30-冗余备份系统。

具体实施方式

如图1所示,为现有技术中的冗余备份系统和客户端(client)之间的数据交互场景示意图,该冗余备份系统可包括主服务器(master)和备用服务器(backup),且该主服务器和备用服务器中运行有基于vrrp协议实现的keepalived应用,以用于避免单点故障。

在图1中所示的数据交互场景中,对于客户端而言,可通过虚拟ip(vip,virtualip)地址登录冗余备份系统进行服务访问或者业务使用,且只要冗余备份系统中只要有一个服务器能够正常运行就可保证相应服务或业务的正常运行。而对于冗余备份系统而言,该冗余备份系统对外表现为一个vip,即在冗余备份系统的实际运行过程中,处于主服务状态的主服务器拥有该vip以对所述客户端提供服务。实际工作时,在现有的冗余备份系统中,处于主服务状态的主服务器会周期性发送vrrp通告给处于备用状态的备用服务器,一旦处于备用状态的服务器收不到vrrp通告,则需要备用服务器切换为主服务状态并接管vip,以继续为客户端提供服务,从而保证对外服务的正常运行。具体地,下面对现有技术中冗余备份系统中的主服务器和备用服务器的工作过程进行简要说明。

(1)主服务器

a.主服务器中设置有用于进行定时通告的定时器;

b.主服务器基于vrrp虚拟mac(mediaaccesscontroladdress,局域网地址)响应路由器ip地址的arp(addressresolutionprotocol,地址解析协议)请求,以及转发目的mac是vrrp虚拟mac的数据包。其中,如果主服务器是虚拟ip的拥有者,将接受目的地址是虚拟路由器ip的数据包,否则丢弃。

e.当主服务器检测到shutdown事件时(如设备故障等)删除定时器,并发送优先权级为0的通告包给其他服务器,同时进入初始化状态。或者当主服务器中的定时器超时,发送vrrp通告给其他服务器。

另外,由于现有的冗余备份系统中只有主服务器进行通告信息的发送,因此,如果主服务器收到vrrp通告时,当接收到的vrrp通告中包含的优先级为0,那么直接忽略接收到的vrrp通告,并继续发送自身生成的vrrp通告信息;当接收到的vrrp通告中包含的优先级高于本机,或与本机相等且实际ip地址大于本地实际ip,那么判定冗余备份系统中存在其他正在运行的主服务器,那么当前主服务器需要复位定时器,并转入backup状态。

(2)备用服务器

a.备用服务器中设置有主机超时定时器。

b.备用服务器不能响应针对虚拟路由器ip的arp请求信息,且需要丢弃所有目的mac地址是虚拟路由器的mac地址的数据包。

d.当备用服务器收到shutdown的事件时,判定主服务器故障或宕机,删除主机超时定时器,转初始化状态。

e.备用服务器检测到主机超时定时器超时时,发送vrrp通告,广播arp地址信息,并切换至master状态。

f.当备用服务器接收到vrrp通告时,且优先权为0,表示进入master选举;其中,判断接收到的vrrp通告中的优先级是否高于本机,如果接收到vrrp通告中的优先级高于本机,则承认master有效,并复位主机超时定时器,如果接收到vrrp通告中的优先级低于本机,则丢弃该vrrp通告包。

由上可以看出,在现有冗余备份系统中,只有主服务器会向其他服务器发送通告信息,以使得处于备用状态的服务器根据接收到的通告信息判断是否进行主服务器资格选举状态或是否需要进行状态切换等,导致在主服务器出现故障或宕机现象时,主服务器和备用服务器之间的检测切换的切换时间过长,因此,无法满足一些更高时间精度的服务或者业务切换需求。对此,本发明实施例提供一种基于组播同步实现的状态切换方法和装置,以解决上述问题。

具体地,为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

如图2所示,为本发明实施例提供的冗余备份系统30,该冗余备份系统30对外表现为一个虚拟ip,但可包括第一服务器10和多个第二服务器20,其中,当所述第一服务器10为处于备用状态的备用服务器时,多个所述第二服务器20中既包括处于备用状态的备用服务器,又包括处于主服务状态的主服务器;当所述第一服务器10为处于主服务状态的主服务器时,多个所述第二服务器20中均为处于备用状态的备用服务器。可以理解的是,所述第一服务器10、各所述第二服务器20中运行有基于vrrp协议实现的keepalived应用,且相互之间可基于组播通信进行信息同步。

可选地,如图3所示,所述第一服务器10包括状态切换装置100、存储器200、存储控制器300以及处理器400。其中,所述存储器200、存储控制器300、处理器400各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件之间通过一条或多条通讯总线或信号线实现电性连接。所述状态切换装置100包括至少一个可以软件或固件的形式存储于所述存储器200中或固化在所述第一服务器10中的操作系统中的软件功能模块。所述处理器400在所述存储控制器300的控制下访问所述存储器200,以用于执行所述存储器200中存储的可执行模块,例如所述状态切换装置100所包括的软件功能模块及计算机程序等。

可以理解,图3所示的结构仅为示意,所述第一服务器10还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。另外,所述第一服务器10可以是但不限于智能手机、个人电脑(personalcomputer,pc)、平板电脑、个人数字助理(personaldigitalassistant,pda)、移动上网设备(mobileinternetdevice,mid)、云服务器、小型机等。

进一步地,如图4所示,为本发明实施例提供的状态切换方法的流程示意图,该状态切换方法应用于上述的第一服务器10,下面将结合图4对所述状态切换方法的具体步骤和流程进行详细阐述。应理解的是,本实施例中给出的状态切换方法不以下面所述的步骤和流程的顺序为限制。

步骤s11,接收各所述第二服务器20发送的组播报文;

步骤s12,针对每个组播报文,从所述组播报文中提取发送该组播报文的第二服务器20的优先级;

步骤s13,分别将自身的优先级与提取到的各所述组播报文中的优先级进行比对,并在比对结果满足状态切换条件时进行状态切换。

上述步骤s11-步骤s13中给出的状态切换方法,是基于组播同步技术实现的状态切换,从而大幅缩减从备用状态切换为主服务状态或从主服务状态切换为备用状态的切换时间,能够满足超高时间精度的服务或者业务运行时的服务器状态切换需求,提高了冗余备份系统30运行过程中的可靠性和稳定性,满足用户体验。

详细地,在步骤s11和步骤s12中,所述组播报文中可以包含但不限于服务器自身的工作状态信息、优先级信息等。其中,所述服务器优先级信息中的优先级高低代表了在处于主服务状态的服务器故障时,对应服务器成为主服务器的概率大小。根据实际需求,本发明在基于组播通信实现各服务器之间的信息同步的同时,还能够基于组播报文灵活配置1+n(n≥1)台备用服务器同时提供服务,有效增加了冗余备份系统30工作过程中的可靠性和稳定性。

另外需要注意的是,所述第一服务器10在接收各所述第二服务器20发送的组播报文的同时,可按照预设时间间隔向各所述第二服务器20发送组播报文,以同步自身的当前状态。其中,所述预设时间间隔可以为但不限于1ms等。

进一步地,在步骤s13中,所述第一服务器10分别将自身的优先级与提取到的各所述组播报文中的优先级进行比对的方式有多种,例如,针对接收到的各组播报文,所述第一服务器10可以将提取到的组播报文中的服务器优先级与自身的优先级进行一一比对。又例如,如图5所示,当所述第一服务器10中预设有用于与提取到的第二服务器20的优先级进行一一比对的本地优先级时,所述第一服务器10分别将自身的优先级与提取到的各所述组播报文中的优先级进行比对的过程可通过步骤s130-步骤s132实现,具体如下。

步骤s130,分别判断提取到的各所述组播报文中的优先级是否大于所述本地优先级;

步骤s131,若所述组播报文中包含的优先级大于所述本地优先级,则基于所述组播报文中包含的优先级对所述本地优先级进行更新,以使得更新后的本地优先级为提取到的各所述组播报文中的优先级的最大值;

步骤s132,将自身的优先级与更新后的本地优先级进行比对。

在上述步骤s130和步骤s132中,对于接收到的各所述第二服务器20发送的组播报文,所述第一服务器10通过将提取到的各组播报文中的优先级依次与本地优先级进行一一比对,并在提取到的组播报文中的优先级大于本地优先级时,将本地优先级更新为提取到的组播报文中的优先级,重复执行比对操作,使得该本地优先级能够表征截止当前时间,向所述第一服务器10发送组播报文的各第二服务器20中优先级最高的服务器的优先级。那么,所述第一服务器10在将自身的优先级与本地优先级进行比对后,若自身优先级大于本地优先级,即可判定自身的优先级是当前冗余备份系统30中处于备用状态的服务器中的最高优先级。

进一步地,根据所述第一服务器10的工作状态的不同,步骤s13中给出的在比对结果满足状态切换条件时进行状态切换的过程存在不同。

例如,当所述第一服务器10为处于备用状态的备用服务器时,那么所述在比对结果满足状态切换条件时进行状态切换步骤包括:当比对结果为自身的优先级大于提取到的各所述第二服务器20的优先级时,判定所述比对结果满足状态切换条件并从当前备用状态切换为主服务状态,同时获取虚拟ip以继续为客户端提供服务。

又例如,当所述第一服务器10为处于主服务状态的主服务器时,所述在比对结果满足状态切换条件时进行状态切换的步骤包括:当比对结果为自身的优先级小于提取到的所述第二服务器20的优先级时,判定所述比对结果满足状态切换条件并从当前主服务状态切换为备用状态,同时删除虚拟ip以停止为客户端提供服务。

进一步地,在第一服务器10从备用状态切换为主服务状态后,为了避免其他备用服务器还在进行主服务器资格的竞争,从而导致冗余备份系统30的工作压力增加,因此,在进行状态切换后,需要以组播报文的方式向其他服务器抛出自身的当前状态为主服务状态或备用状态的信号,尤其是在从备用状态切换为主服务状态时。

进一步地,根据实际需求,为了有效避免由于状态切换导致的业务运行终止或异常的现象发生,有效确保业务运行的可靠性,提高用户体验。本实施例中,在第一服务器10从备用状态切换为主服务状态后还需要进行业务检测,例如,所述第一服务器10检测预设应用是否处于运行状态或预设应用的运行状态是否正常,若所述预设应用未处于运行状态或运行状态异常,则重启所述预设应用以确保该预设应用的运行状态正常。其中,所述预设应用可根据实际需求进行灵活设定,本实施例在此不做限制。

进一步地,根据实际需求,当所述冗余备份系统30中的各服务器启动或由于故障需要重启时,那么启动或重启后的各服务器默认进入备用状态,以避免与当前网络中处于主服务状态的服务器出现冲突。具体地,在此以第一服务器10为例,对于所述第一服务器10启动或重启的情况,所述状态切换方法还包括:所述第一服务器10读取初始配置文件,根据所述初始配置文件进行状态初始化以进入备用状态,并在处于备用状态时执行接收多个所述第二服务器20发送的组播报文的步骤。其中,所述初始配置文件中可预设有组播同步时间间隔、同步超时次数、虚拟ip地址信息、状态切换时抛出信号类型、状态切换时运行或者停止的服务业务名以及目录、服务或业务监测周期等信息。此外,所述第一服务器10在基于初始配置文件进行初始化的过程可以包括但不限于网络初始化、组播同步初始化、环境初始化等。在实际实施时,可通过对初始配置文件中的同步间隔的大小、同步超时次数等进行灵活配置,使得在处于主服务状态的服务器出现故障或宕机时以最快速度从处于备用状态的多个服务器中选取一台服务器切换到主服务状态,以确保冗余备份系统30的运行正常。

可以理解的是,与所述第一服务器10类似,所述冗余备份系统30中的其他服务器在启动或重启时,均可基于初始配置文件进行初始化以进入备用状态。

进一步地,如图6所示,为本发明实施例提供的状态切换装置100的方框结构示意图,所述状态切换装置100应用于所述第一服务器10,且该状态切换装置100包括报文接收模块110、信息提取模块120和状态切换模块130。

所述报文接收模块110,用于接收各所述第二服务器20发送的组播报文;本实施例中,关于所述报文接收模块110的描述具体可参考上述步骤s11的详细描述,也即,所述步骤s11可以由报文接收模块110执行,因而在此不作更多说明。

所述信息提取模块120,用于针对每个组播报文,从所述组播报文中提取发送该组播报文的第二服务器20的优先级;本实施例中,关于所述信息提取模块120的描述具体可参考上述步骤s12的详细描述,也即,所述步骤s12可以由信息提取模块120执行,因而在此不作更多说明。

所述状态切换模块130,用于将自身的优先级与所述组播报文中的优先级进行比对,并在比对结果满足状态切换条件时进行状态切换。本实施例中,关于所述状态切换模块130的描述具体可参考上述步骤s13的详细描述,也即,所述步骤s13可以由状态切换模块130执行,因而在此不作更多说明。可选地,在本实施例中,所述状态切换模块130可以包括第一切换单元和第二切换单元,所述用于在比对结果为自身的优先级大于各所述第二服务器20的优先级时,判定所述比对结果满足状态切换条件以从当前备用状态切换为主服务状态,并获取虚拟ip以继续为客户端提供服务。

所述第二切换单元,用于在比对结果为自身的优先级小于提取到的所述第二服务器20中的优先级时,判定所述比对结果满足状态切换条件并从当前主服务状态切换为备用状态,同时删除虚拟ip以停止为客户端提供服务。

另外,需要说明的是,基于本发明给出的状态切换方法和装置,可应用于安装有linux版、嵌入式linux版、windows版、wince版或dos版的第一服务器10中,从而打破现有的keepalived目前只能运行与linux环境的局限性。

综上所述,本发明实施例提供一种状态切换方法和装置,其中,本发明基于组播同步的方式进行服务器状态检测和信息同步,进而实现服务器的工作状态切换,如备用服务器在主服务器出现故障或宕机时的切换为主服务状态等,能够大幅缩减服务器进行状态切换时的切换时间,满足超高时间精度的服务或者业务的切换需求,提高了冗余备份系统30运行过程中的可靠性和稳定性。

另外,本发明还在服务器由备用状态切换为主服务状态后进行业务检测,能够有效避免由于状态切换导致的业务运行终止或异常的现象发生,有效确保了业务运行的可靠性,提高用户体验。

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

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

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的可选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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