一种不停服升级服务器的方法、装置及存储介质与流程

文档序号:17210486发布日期:2019-03-27 10:44阅读:328来源:国知局
一种不停服升级服务器的方法、装置及存储介质与流程

本发明主要涉及声纹识别技术处理领域,具体涉及一种不停服升级服务器的方法、装置及存储介质。



背景技术:

服务器版本升级是所有包含网站、游戏等系统在内的最常见的事务之一,但绝大多数的版本升级都需要停服,一旦停服,则线上玩家需要强行下线,线下玩家想进入系统却进不去,那么这就会对用户体验造成极大的负面影响,甚至会导致大量客户流失。



技术实现要素:

本发明所要解决的技术问题是针对现有技术的不足,提供一种不停服升级服务器的方法、装置及存储介质。

本发明解决上述技术问题的技术方案如下:一种不停服升级服务器的方法,包括如下步骤:

接收待上线服务器发送的上线请求,所述上线请求中携带待上线服务器上线信息;

根据接收到的在线服务器发送的心跳报文确定待下线服务器;

根据所述待上线服务器上线信息进行待上线服务器和待下线服务器的上下线更替处理;

在更替过程中若接收到待处理任务,根据所述待处理任务检测所述待下线服务器和待上线服务器当前的状态,得到服务器更替信息,并根据所述服务器更替信息确定将所述待处理任务分配至所述待下线服务器或待上线服务器中处理。

本发明解决上述技术问题的另一技术方案如下:一种不停服升级服务器的装置,包括:

接收模块,用于接收待上线服务器发送的上线请求,所述上线请求中携带待上线服务器上线信息;

更替处理模块,用于根据接收到的在线服务器发送的心跳报文确定待下线服务器,并根据所述待上线服务器上线信息进行待上线服务器和待下线服务器的上下线更替处理;

任务分配模块,用于在更替过程中若接收到待处理任务,根据所述待处理任务检测所述待下线服务器和待上线服务器当前的状态,得到服务器更替信息,并根据所述服务器更替信息确定将所述待处理任务分配至所述待下线服务器或待上线服务器中处理。

本发明解决上述技术问题的另一技术方案如下:一种不停服升级服务器的装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如所述的不停服升级服务器的方法。

本发明解决上述技术问题的另一技术方案如下:一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如所述的不停服升级服务器的方法。

本发明的有益效果是:进行服务器更替升级时,服务器并不需要停服,也不需要给用户做任何提示和处理,用户对此升级过程完全透明,没有任何感知,实现了服务器不停服平滑升级,将升级工作带来的负面影响降到来了最低点,极大的提升了用户体验,提升了用户留存率。

附图说明

图1为本发明一实施例提供的不停服升级服务器方法的方法流程图;

图2为本发明一实施例提供的不停服升级服务器装置的模块框图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

图1为本发明一实施例提供的不停服升级服务器方法的方法流程图;

如图1所示,一种不停服升级服务器的方法,包括如下步骤:

接收待上线服务器发送的上线请求,所述上线请求中携带待上线服务器上线信息;

根据接收到的在线服务器发送的心跳报文确定待下线服务器;

根据所述待上线服务器上线信息进行待上线服务器和待下线服务器的上下线更替处理;

在更替过程中若接收到待处理任务,根据所述待处理任务检测所述待下线服务器和待上线服务器当前的状态,得到服务器更替信息,并根据所述服务器更替信息确定将所述待处理任务分配至所述待下线服务器或待上线服务器中处理。

上述实施例中,进行服务器更替升级时,服务器并不需要停服,也不需要给用户做任何提示和处理,用户对此升级过程完全透明,没有任何感知,实现了服务器不停服平滑升级,将升级工作带来的负面影响降到来了最低点,极大的提升了用户体验,提升了用户留存率。

可选地,作为本发明的一个实施例,所述服务器更替信息包括:

状态一:待下线服务器在线且待上线服务器未上线;

状态二:待下线服务器和待上线服务器同时在线;

状态三:待上线服务器在线且待下线服务器已锁定或已下线;

所述根据服务器更替信息确定将所述待处理任务分配至所述待下线服务器或待上线服务器中处理,包括:

当所述服务器更替信息为状态一时,将所述待处理任务分配至所述待下线服务器中处理;

当所述服务器更替信息为状态二时,将所述待处理任务以轮询的方式分配至所述待下线服务器或待上线服务器中处理;

当所述服务器更替信息为状态三时,将所述待处理任务分配至所述待上线服务器中处理。

上述实施例中,能够针对不同的升级状态进行任务分配,防止任务漏处理的情况,更替过程中服务器并不需要停服,用户对此升级过程没有任何感知,实现了服务器不停服平滑升级。

可选地,作为本发明的一个实施例,所述根据所述待上线服务器上线信息进行待上线服务器和待下线服务器的上下线更替处理,包括:

从所述待上线服务器上线信息获取待上线服务器ip信息和预设锁定时间,并根据所述预设锁定时间进行计时;

当计时到达所述预设锁定时间时,向所述待下线服务器发送锁定指令,以便所述待下线服务器完成当前的处理任务;

接收所述待下线服务器发送的已锁定信息以及定时发送多个心跳信息,并在接收到任一心跳信息时进行计时,当到达预设心跳时间时未接收到新的心跳信息,则确定所述待下线服务器已下线。

应理解的,待下线服务器的锁定状态为该服务器可正常处理当前未处理完的任务,而不再接收新的处理任务;

上述实施例中,“确定所述待下线服务器已下线”具体为,待下线服务器会定期发送一个心跳消息,表示待下线服务器当前是健康存在的,对待下线服务器设置一个心跳计数器,具体地,可设置计数器默认值,例如计数器默认值是8,在接收到心跳信息时计数器减1,当计数器减到0的时候,就认为该服务器已经没有心跳,即到达预设心跳时间即80秒时没有接收到待下线服务器发送的心跳消息,则认为其已下线。

上述实施例中,锁定待下线服务器的请求入口,即新请求不会再发往待下线服务器,但在锁定前进入待下线服务器的请求还会继续处理,当待下线服务器锁定时仍可正常处理当前未处理完的任务,防止由于版本升级而造成的用户数据丢失。

可选地,作为本发明的一个实施例,当确定所述待下线服务器已下线时,还包括步骤:

生成删除待下线服务器信息指令,并将所述删除待下线服务器信息的指令向多个已注册服务器进行广播,以便所述多个已注册服务器将待下线服务器信息在各自的服务器列表中剔除。

可选地,作为本发明的一个实施例,接收到待上线服务器发送的上线请求时,还包括步骤:

生成增加待上线服务器上线信息指令,并将所述增加待上线服务器上线信息的指令向多个已注册服务器进行广播,以便所述多个已注册服务器在各自的服务器列表中记录所述待上线服务器上线信息。

具体地,所述待上线服务器上线信息包括待上线服务器基本信息:服务器类型、ip地址和端口信息。

上述实施例中,能够及时通知其他的已注册服务器升级服务器信息,防止业务处理流程错误,增强了系统的稳定性。

可选地,作为本发明的另一个实施例,如图2所示,一种不停服升级服务器的装置,包括:

接收模块,用于接收待上线服务器发送的上线请求,所述上线请求中携带待上线服务器上线信息;

更替处理模块,用于根据接收到的在线服务器发送的心跳报文确定待下线服务器,并根据所述待上线服务器上线信息进行待上线服务器和待下线服务器的上下线更替处理;

任务分配模块,用于在更替过程中若接收到待处理任务,根据所述待处理任务检测所述待下线服务器和待上线服务器当前的状态,得到服务器更替信息,并根据所述服务器更替信息确定将所述待处理任务分配至所述待下线服务器或待上线服务器中处理。

具体地,所述更替处理模块包括中心服务器(center),其用于管理各个已注册服务器,中心服务器是整个服务器集群的核心,它起到将所有服务器联接在一起的功能,进行待下线服务器(gameservera)和待上线服务器(gameserverb)之间的更替处理;

应理解地,在线服务器每10秒会给中心服务器发送keepalive心跳报文,中心服务器收到这个keepalive心跳报文后,会将这个服务器的计时器重置,如果某服务器下线(或掉线),则该已下线的服务器不会给中心服务器发送keepalive心跳报文,也就意味着,中心服务器不会重置该服务器的计时器,一旦计时器超时,就发现了下线的服务器;

中心服务器(center)中也保存有服务器列表,服务器列表存储各个已注册服务器的信息,当接收到上线请求时,从所述上线请求中获取待上线服务器信息进行存储,并向已注册服务器进行广播,使已注册服务器中的服务器列表与中心服务器(center)的服务器列表中的内容保持一致;

所述任务分配模块包括管理控制服务器(mgrserver),其用于处理各个已注册服务器之间的业务,进行任务分配。

可选地,作为本发明的一个实施例,所述服务器更替信息包括:

状态一:待下线服务器在线且待上线服务器未上线;

状态二:待下线服务器和待上线服务器同时在线;

状态三:待上线服务器在线且待下线服务器已锁定或已下线;

所述更替处理模块,具体用于:

当所述服务器更替信息为状态一时,将所述待处理任务分配至所述待下线服务器中处理;

当所述服务器更替信息为状态二时,将所述待处理任务以轮询的方式分配至所述待下线服务器或待上线服务器中处理;

当所述服务器更替信息为状态三时,将所述待处理任务分配至所述待上线服务器中处理。

下面对“以轮询的方式分配”进行解释:

轮询是轮流的意思,假如同时有两条待处理任务x和y发送过来,那么管理控制服务器(mgrserver)先将第一条到达的消息(假设是x)发送给待下线服务器(gameservera),在待下线服务器(gameservera)处理x消息的时候(但并未处理完成),待处理任务y到达,此时管理控制服务器(mgrserver)将待处理任务y转发给待上线服务器(gameserverb)处理,对于待处理任务x和y来说,待处理任务x和y正在同时被服务器处理;管理控制服务器(mgrserver)会记录上一次发送给哪个服务器(gameserver),下次分配待处理任务时则分配给另一个服务器(gameserver)处理,即在待下线服务器(gameservera)和待上线服务器(gameserverb)之间轮询处理。

上述实施例中,能够针对不同的升级状态进行任务分配,防止任务漏处理的情况,更替过程中服务器并不需要停服,用户对此升级过程没有任何感知,实现了服务器不停服平滑升级。

可选地,作为本发明的一个实施例,所述更替处理模块,具体用于:

从所述待上线服务器上线信息获取待上线服务器ip信息和预设锁定时间,并根据所述预设锁定时间进行计时;

当计时到达所述预设锁定时间时,向所述待下线服务器发送锁定指令,以便所述待下线服务器完成当前的处理任务;

接收所述待下线服务器发送的已锁定信息以及定时发送多个心跳信息,并在接收到任一心跳信息时进行计时,当到达预设心跳时间时未接收到新的心跳信息,则确定所述待下线服务器已下线。

具体地,把计数器恢复到设置值,例如为8,心跳机制是中心服务器为了检测各个服务器健康状态的,正常在线的服务器都会定期(一般是10秒)发送一个心跳消息给中心服务器,当中心服务器收到该消息后,会将对应服务器的计数器重置为8,同时,中心服务器每10秒会将所有服务器的计数器减1,已下线的服务器不会再给中心服务器发送心跳信息,则,约8×10(计数器为8,每10秒减1)即80秒后,中心服务器对该已下线服务器的计数器由8减到0,此时中心服务器就发现了该服务器已下线。

应理解的,待下线服务器的锁定状态为该服务器可正常处理当前未处理完的任务,而不再接收新的处理任务;

上述实施例中,可根据需要设定待下线服务器的锁定时间,即何时关闭待下线服务器,当待下线服务器锁定时仍可正常处理当前未处理完的任务,防止由于版本升级而造成的用户数据丢失。

可选地,作为本发明的一个实施例,所述更替处理模块还用于:

生成删除待下线服务器信息指令,并将所述删除待下线服务器信息指令向多个已注册服务器进行广播,以便所述多个已注册服务器将待下线服务器信息在各自的服务器列表中剔除。

可选地,作为本发明的一个实施例,所述更替处理模块还用于:

生成增加待上线服务器上线信息指令,并将所述增加待上线服务器上线信息指令向多个已注册服务器进行广播,以便所述多个已注册服务器在各自的服务器列表中记录所述待上线服务器上线信息。

可选地,作为本发明的一个实施例,一种不停服升级服务器的装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如所述的不停服升级服务器的方法。

可选地,作为本发明的一个实施例,一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如所述的不停服升级服务器的方法。

本发明进行服务器更替升级时,服务器并不需要停服,也不需要给用户做任何提示和处理,用户对此升级过程完全透明,没有任何感知,实现了服务器不停服平滑升级,将升级工作带来的负面影响降到来了最低点,极大的提升了用户体验,提升了用户留存率。

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

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

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

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

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

以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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