掌桥专利:专业的专利平台
掌桥专利
首页

游戏服务器滚动更新方法、装置、电子设备及介质

文献发布时间:2023-06-19 11:49:09


游戏服务器滚动更新方法、装置、电子设备及介质

技术领域

本发明涉及服务器管理技术领域,尤其是涉及一种游戏服务器滚动更新方法、装置、电子设备及介质。

背景技术

网络游戏,又称“在线游戏”,其是指以互联网为传输媒介、以游戏服务器和用户计算机为处理终端、以游戏客户端软件为信息交互窗口在线游戏。而为了不断提升玩家的游戏体验,则需不时地更新游戏服务器,即更新相应的游戏服务。

在相关技术中,一般通过停服的方式进行游戏服务器的更新,具体可以包括以下内容:游戏服务器向客户端推送消息,以通知玩家将进行停机维护,相应地,在更新期间内,游戏服务器停止提供游戏服务并进行更新。

目前针对相关技术中游戏服务器在更新期间内由于停机而导致不能提供游戏服务的问题,尚未提出有效的解决方案。

发明内容

为了克服相关技术的不足,本发明的目的在于提供一种游戏服务器滚动更新方法、装置、电子设备及介质,其具有在更新期间内持续提供游戏服务的优点,从而提高玩家体验。

本发明的目的之一采用如下技术方案实现:

一种游戏服务器滚动更新方法,所述方法包括:

获取服务器群的余量在群运行内存上的占比,并记为群余量占比;

基于所述群余量占比对所述服务器群进行分组,得到两组以上的服务器组,其中,各个所述服务器组的组运行内存相对于所述服务器群在群运行内存上的占比均小于或等于所述群余量占比;

遍历所述服务器组执行更新步骤,对于任意所述服务器组,所述更新步骤包括:禁止玩家被分配至所述服务器组,在所述服务器组的玩家全部下线的情况下进行更新,并在更新完成后允许玩家被分配至所述服务器组。

在其中一些实施例中,所述更新步骤还包括:

接收定时信号;

响应所述定时信号判断所述服务器组的玩家是否全部下线,若是,则所述服务器组内的各个服务器分别进行更新,并禁止接收或响应下一个定时信号,若否,则等待下一个定时信号。

在其中一些实施例中,所述服务器组内的任意服务器进行更新包括:

关闭所述服务器的程序;

将所述服务器中的相应文件配合替换为预设数据库中的热更文件;

启动所述服务器的程序。

在其中一些实施例中,在所述获取服务器群在群运行内存上的余量占比之前,所述方法还包括:

判断所述服务器群是否初次更新,若是,则允许执行所述获取服务器群在群运行内存上的余量占比,若否,则禁止执行所述获取服务器群在群运行内存上的余量占比,并基于历史数据对所述服务器群进行分组,以得到两组以上的服务器组。

在其中一些实施例中,在所述遍历所述服务器组执行更新步骤之前,所述方法还包括:

查询各个所述服务器组的余量相对于所述服务器群在群运行内存上占比,并均记为组余量占比;

基于所述组余量占比对所述服务器组进行排位,所述排位顺序为遍历路线,其中,所述组余量占比与排位呈正反馈设置。

在其中一些实施例中,所述服务器组在玩家分配上的优先级与所述组余量占比呈正反馈设置。

在其中一些实施例中,各个所述服务器组均具有当前状态,所述当前状态包括:已更新和未更新,其中,已更新的服务器组在玩家分配上的优先级高于未更新的服务器组在玩家分配上的优先级。

本发明的目的之二采用如下技术方案实现:

一种游戏服务器滚动更新装置,所述装置包括:

获取模块,用于获取服务器群的余量在群运行内存上的占比,并记为群余量占比;

分组模块,用于基于所述群余量占比对所述服务器群进行分组,得到两组以上的服务器组,其中,各个所述服务器组的组运行内存相对于所述服务器群在群运行内存上的占比均小于或等于所述群余量占比;

更新模块,用于遍历所述服务器组执行更新步骤,对于任意所述服务器组,所述更新步骤包括:禁止玩家被分配至所述服务器组,在所述服务器组的玩家全部下线的情况下进行更新,并在更新完成后允许玩家被分配至所述服务器组。

本发明的目的之三在于提供执行发明目的之一的电子设备,其包括存储器和处理器,所处存储器中存储有计算机程序,所述处理器被设置为执行所述计算机程序时实现上述的方法。

本发明的目的之四在于提供存储发明目的之一的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。

相比相关技术,本发明的有益效果在于:对服务器群进行分组,以得到两组以上的服务器组,且各个服务器组的组运行内存相对于服务器群在群运行内存上的占比均小于或等于群余量占比,因此,在任意服务器组执行更新步骤的情况下,剩余的服务器组可以共同维持提供正常的游戏服务,以提高玩家体验。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是本申请实施例所示游戏服务器滚动更新方法的流程图;

图2是本申请实施例所示更新步骤的流程图;

图3是本申请实施例所示游戏服务器滚动更新方法的原理图;

图4是本申请实施例所示游戏服务器滚动更新装置的结构框图;

图5是本申请实施例所示电子设备的结构框图。

附图标记说明:41、获取模块;42、分组模块;43、更新模块。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。

实施例一

本实施例一提供了一种游戏服务器滚动更新方法,旨在解决相关技术中游戏服务器在更新期间内由于停机而导致不能提供游戏服务的问题。

图1是本申请实施例一所示游戏服务器滚动更新方法的流程图,参照图1所示,本方法可以包括步骤S101至步骤S103。

步骤S101、获取服务器群的余量在群运行内存上的占比,并记为群余量占比。可以理解,该服务器群包括一个以上的服务器,且任意服务器均需要执行同一更新步骤。值得说明的是,可以将服务器群的进程在群运行内存上占比记为群进程占比,其中,各个服务器的余量在群运行内存上占比之和等于群余量占比,各个服务器的进程在群运行内存上占比之和等于群进程占比,且群余量占比与群进程占比互补。

步骤S102、基于群余量占比对服务器群进行分组,得到两组以上的服务器组。对于任意服务器组,其满足以下公式:

步骤S103、遍历服务器组执行更新步骤。可以理解,在任意时刻,仅有一个服务器组执行更新步骤。在此值得说明的是,该步骤S103的遍历路线可以随机生成,也可以按照特定规则生成,具体在此不做限制。

对于任意服务器组,该更新步骤可以包括:禁止玩家被分配至服务器组,在服务器组的玩家全部下线的情况下进行更新,并在更新完成后允许玩家被分配至服务器组。

值得说明的是,该方法的步骤是可以基于执行设备完成的。则该执行设备可以为云服务器、监管服务器、服务器群中的任意服务器等设备,但该执行设备不限于上述类型。

综上所示,对服务器群进行分组,以得到两组以上的服务器组,且各个服务器组的组运行内存相对于服务器群在群运行内存上的占比均小于或等于群余量占比,因此,在任意服务器组执行更新步骤的情况下,剩余的服务器组可以共同维持提供正常的游戏服务,以提高玩家体验。

作为可选的实施方式,在步骤S101中,该群余量占比可以是与开始时刻对应的实际瞬时量,也可以是与开始时间段对应的实际平均量,还可以是根据历史数据得到的推测瞬时量,还可以是根据历史数据得到的推测平均量,甚至也可以是预设值,具体在此不做限制。

在此对实际瞬时量进行说明,则该步骤S101具体可以包括:执行设备在开始时刻向各个服务器发送开始信号,其中,各个服务器接收开始信号,响应开始信号生成反馈信息并发送至执行设备,该反馈信息包括相应服务器在开始时刻时进程在其运行内存上所占的内存量;执行设备接收反馈信息,并计算得到实际瞬时量,即群余量占比。该技术方案具有操作简单、效率高的优点。

在此对推测瞬时量进行说明,其中,各个服务器存储有运行表格,该运行表格建立了历史时刻与进程在其运行内存上所占的内存量之间的关联,相应地,该步骤S101可以包括:执行设备根据开始时刻确定历史相关时刻,然后基于历史相关时刻查询各个服务器的运行表格,并对得到的数据基于历史相关时刻进行汇总,并计算得到多个第一瞬时量,计算多个第一瞬时量的平均值便可以得到推测瞬时量,即群余量占比。可以理解,历史相关时刻为多个,且时刻与开始时刻相同,但是日期不同,例如:在开始时刻为周一的1点,则历史相关时刻包括:上周二的1点、上周三的1点、上周四的1点等。通过本技术方案,可以提高群余量占比的准确性,更好地规避在更新过程中满载的情况。

在此对为预设值的群余量占比进行说明,即该群余量占比固定,由工作人员进行设置,在此值得说明的是,该群余量占比通常在25%~35%,优选为30%。以便于在不影响更新的情况在尽快进入下一步骤。

可以理解,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

实施例二

本实施例二提供了一种游戏服务器滚动更新方法,本实施例二是在实施例一的基础上进行的。图2是本申请实施例所示更新步骤的流程图;图3是本申请实施例所示游戏服务器滚动更新方法的原理图。

参照图1至图3所示,对于该更新步骤,其可以包括步骤S201至步骤S207。为了便于理解区分,以下将正在执行更新步骤的服务器组记为第一服务器组。

步骤S201、禁止玩家被分配至第一服务器组。具体地,执行设备发送分配停止信号至第一服务器组,第一服务器组内的服务器均接收该分配停止信号,并响应该分配停止信号自动关闭“可分配”开关配置,且可以将执行结果反馈于执行设备,如此,玩家便不会被分配至第一服务器组。

步骤S202、接收定时信号。该定时信号可以由执行设备定时生成,例如生成频率为10min/次。

步骤S203、响应定时信号判断第一服务器组的玩家是否全部下线,若是,则执行步骤S204至步骤S207;若否,则等待下一个定时信号,并继续执行步骤S202及后序步骤。可以理解,执行设备可以直接访问第一服务器组内服务器的相关数据以获知玩家在线数量,也可以通过第一服务器组内服务器配合反馈的玩家信息以获知玩家在线数量,具体方式在此不做限制。

步骤S204、第一服务器组内的服务器关闭程序,具体可以参照现有技术,在此不做限制。

步骤S205、将服务器中的相应文件配合替换为预设数据库中的热更文件。在此值得说明的是,执行设备建立有预设数据库,工作人员只需要将热更文件按照预设格式存储于该预设数据库中即可,而第一服务器组内的服务器可以经由执行设备自动获取热更文件并进行替换,从而降低更新难度,并提高更新效率。

步骤S206、第一服务器组内的服务器启动程序。具体可以参照现有技术,在此不做限制。可以理解,在第一服务器组中,只要全部的服务器均完成上述步骤S204至步骤S206即可。

步骤S207、允许玩家被分配至服务器组。具体地,执行设备发送分配开启信号至第一服务器组,第一服务器组内的服务器均接收该分配开启信号,并相应该分配开启信号自动开启“可分配”开关配置,且可以将执行结果反馈于执行设备,如此,玩家便可以被分配至第一服务器组。

通过该技术发难,可以实现第一服务器组的更新,其具有操作简单的优点,并实现与分配相关的要求。相应地,对于在步骤S103,在获取遍历路线之后,根据遍路线先对首位的服务器组执行更新步骤,并在该服务器组完成更新步骤之后,沿遍历路线对下一个服务器执行更新步骤,如此至所有服务器组均完成更新步骤。

作为可选的实施方式,在所有服务器组均完成更新步骤的情况下,执行设备可以通过短信、钉钉、邮件方式通知相关人员,以便于相关人员及时进行相关操作。

实施例三

本实施例三提供一种游戏服务器滚动更新方法,本实施例三在实施例一和/或实施例二的基础上进行的。参照图1至图3所示,在步骤S101之前,该方法还包括分流步骤,具体地,该分流步骤包括以下步骤。

判断服务器群是否初次更新,若是,则执行步骤S101~步骤S103;若否,则执行第二分组步骤,然后执行步骤S103。可以理解,若服务器群内的服务器数量改变或任意服务器更换的情况下,均视为新的服务器群。

第二分组步骤:基于历史数据对服务器群进行分组,以得到两组以上的服务器组。在此值得说明的是,该历史数据为服务器群初次更新时的分组数据,通过第二分组步骤得到的服务器组即为步骤S103中的遍历对象。

通过本技术方案,由于在一时间段内,服务器群的群余量占比波动较小,因此,仅针对初次更新的服务器群基于群余量占比进行分组,其他均沿用初次更新的历史数据,不仅可以有效地避免满载,还可以尽快的进入步骤S103,从而提高运行效率。

作为可选的技术方案,上述存在第二分组步骤的实施例优选与群余量占比为预设值的实施例结合使用,则该群余量占比可以视为固定不变。在此值得说明的是,工作人员可以对群余量占比的预设值进行调整,相应地,群余量占比的预设值在调整后,对应的服务器群可以视为新服务器群。

作为可选的实施方式,步骤S102可以包括以下步骤。

将各个服务器的进程相对于服务器群在群运行内存上的占比均记为分进程占比,分进程占比之和等于群进程占比,可以参考步骤S101的相关说明。

各个服务器按照分进程占比进行排序,可以从大到小,也可以从小到大。

基于分组公式确定组数,其中分组公式为;W=1/B,B表示群余量占比,W表示组数。可以理解,W由1/B向上取整得到的。

按照排列顺序对服务器群进行分组。即对于任意服务器组,服务器在分进程占比上的排位相邻。在此举例说明:若B=30%,则W=4,在服务器群具有11台服务器的情况下,可以按照分进程占比将第1位~第3为的服务器归于一组,将第4位~第6为的服务器归于一组,将第7位~第9为的服务器归于一组,将第10位~第11为的服务器归于一组,以得到4组服务器组。

通过本技术方案,可以实现分组操作,可以使得各个组进程内存占比相差较大。在此值得说明的是,该实施例优选与上述推测瞬时量的相关实施例结合,以与实际的情况相适配。

作为可选的实施方式,在步骤S102之后,步骤S103之前,本方法还可以包括生成遍历路线步骤,其具体可以包括以下步骤。

查询各个服务器组的余量相对于服务器群在群运行内存上的占比,并均记为组余量占比。各个组余量占比之和等于上述群余量占比。

基于组余量占比对服务器组进行排位,排位顺序为遍历路线,其中,组余量占比与排位呈正反馈设置。在此值得说明的是,组余量占比越大,则排位越靠前,越早执行更新步骤。

通过本技术方案,由于组余量占比越大,则玩家全部下线所耗费的时间可能越短,则基于组余量占比确定遍历路线,则可以提高步骤S103的效率。

在此值得说明的是,该实施例优选与上述按照排列顺序对服务器群进行分组的相关实施例结合。由于上述按照排列顺序对服务器群进行分组的相关实施例结合在分组的过程中,便可以直接得到与组分量占比相关的遍历路线,且服务器组之间的组分量占比差距较大,以进一步地提高步骤S103的效率。

进一步地,服务器组在玩家分配上的优先级与组余量占比呈正反馈设置,即组余量占比越小,越容易被分配到玩家,以使得组余量占比较大的服务器组可以尽快实现玩家全部下线。

作为可选的实施方式,各个服务器组均具有当前状态,当前状态包括:已更新和未更新,其中,已更新的服务器组在玩家分配上的优先级高于未更新的服务器组在玩家分配上的优先级。通过本技术方案,以将玩家分配至已更新的服务器组上,从而提高整体效率。

实施例四

本实施例四提供一种游戏服务器滚动更新装置,其为上述实施例的虚拟装置结构。图4是本申请实施例四所示游戏服务器滚动更新装置的结构框图,参照图4所示,该装置包括:获取模块41、分组模块42、更新模块43。

获取模块41,用于获取服务器群的余量在群运行内存上的占比,并记为群余量占比;

分组模块42,用于基于群余量占比对服务器群进行分组,得到两组以上的服务器组,其中,各个服务器组的组运行内存相对于服务器群在群运行内存上的占比均小于或等于群余量占比;

更新模块43,用于遍历服务器组执行更新步骤,更新步骤包括:禁止玩家被分配至服务器组,在服务器组的玩家全部下线的情况下进行更新,并在更新完成后允许玩家被分配至服务器组。

需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。

实施例五

本实施例五提供了一种电子设备,图5是本申请实施例五所示电子设备的结构框图,参照图5所示,该电子设备包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行实现上述实施例中的任意一种游戏服务器滚动更新方法,具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

可选地,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

另外,结合上述实施例中的游戏服务器滚动更新方法,本申请实施例五可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种游戏服务器滚动更新方法,该方法包括:

获取服务器群的余量在群运行内存上的占比,并记为群余量占比;

基于群余量占比对服务器群进行分组,得到两组以上的服务器组,其中,各个服务器组的组运行内存相对于服务器群在群运行内存上的占比均小于或等于群余量占比;

遍历服务器组执行更新步骤,更新步骤包括:禁止玩家被分配至服务器组,在服务器组的玩家全部下线的情况下进行更新,并在更新完成后允许玩家被分配至服务器组。

如图5所示,以一个处理器为例,电子设备中的处理器、存储器、输入装置和输出装置可以通过总线或其他方式连接,图5中以通过总线连接为例。

存储器作为一种计算机可读存储介质,可以包括高速随机存取存储器、非易失性存储器等,可用于存储操作系统、软件程序、计算机可执行程序和数据库,如本发明实施例一的游戏服务器滚动更新方法对应的程序指令/模块,还可以包括内存,可用于为操作系统和计算机程序提供运行环境。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。

处理器用于提供计算和控制能力,可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。处理器通过运行存储在存储器中的计算机可执行程序、软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现实施例一的游戏服务器滚动更新方法。

该电子设备的输出装置可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

该电子设备还可包括网络接口/通信接口,该电子设备的网络接口用于与外部的终端通过网络连接通信。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)、DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

值得注意的是,在该游戏服务器滚动更新方法的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。

以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 游戏服务器滚动更新方法、装置、电子设备及介质
  • 游戏服务器调整方法与装置、存储介质、电子设备
技术分类

06120113059300