一种服务器启动方法、装置、服务器和介质与流程

专利2022-06-29  69


本发明实施例涉及服务器技术领域,尤其涉及一种服务器启动方法、装置、服务器和介质。



背景技术:

服务器时网络中为客户端计算机提供各种服务的高性能的计算机。在服务器使用过程中,会对工作进程进行数据存储。

在服务器进行程序更新时,启动新服务器进程后,旧服务器进程存储的数据会丢失,新服务器进程需要重新从数据库或者缓存层中拉取数据,但是重新拉取数据耗时较长,导致服务器停止服务时间较长,使用户长时间无法连接服务器。



技术实现要素:

本发明实施例提供一种服务器启动方法、装置、服务器和介质,以实现新服务器进程共享旧服务器进程内存,无需重新拉取内存,保证旧服务器进程中的内存数据不会丢失,提高新进程启动效率。

第一方面,本发明实施例提供了一种服务器启动方法,该方法包括:当新服务器进程启动时,如果所述新服务器进程检测到存在旧服务器进程,则获取所述旧服务器进程的内存数据;所述新服务器进程发送下线通知至所述旧服务器进程。

第二方面,本发明实施例还提供了一种服务器启动装置,该装置包括:

内存数据获取模块,用于当新服务器进程启动时,如果所述新服务器进程检测到存在旧服务器进程,则获取旧服务器进程的内存数据;

下线通知发送模块,用于所述新服务器进程发送下线通知至所述旧服务器进程。

第三方面,本发明实施例还提供了一种服务器,其中,所述服务器包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所提供的服务器启动方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如本发明任意实施例所提供的服务器启动方法。

本发明实施例通过当新服务器进程启动时,如果新服务器进程检测到存在旧服务器进程,则获取所述旧服务器进程的内存数据;新服务器进程发送下线通知至旧服务器进程,解决了服务器进程启动时,内存数据会丢失的问题,新服务器进程共享旧服务器进程内存,实现了无需重新拉取内存数据,提高服务器启动效率,减少用户等待时间的效果。

附图说明

图1是本发明实施例一中的服务器启动方法的流程图;

图2是本发明实施例二中的服务器启动方法的流程图;

图3是本发明实施例三中的服务器启动装置的结构图;

图4是本发明实施例四中的一种设备的结构示意图。

具体实施方式

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

实施例一

图1为本发明实施例一提供的服务器启动方法的流程图,本实施例可适用于服务器进程启动时的情况,该方法可以由服务器启动装置来执行,具体包括如下步骤:

s110、当新服务器进程启动时,如果所述新服务器进程检测到存在旧服务器进程,则获取所述旧服务器进程的内存数据。

一般的,当服务器进程运行出现卡顿等不顺畅的现象或当前服务器进程存在某些缺陷需要修复等情况时,需要启动新的服务器进程,使服务器能够正常运行。新的服务器进程启动后,新服务器进程无法获取旧服务器的内存数据,就可能会造成之前保存在服务器中的内存数据的丢失。示例性的,服务器的内存数据包括:暂时存放cpu中的运算数据,以及与硬盘等外部存储器交换的数据。所以当新服务器进程启动时,若新服务器进程检测到存在旧服务器进程,需要获取旧服务器进程的内存数据,防止旧服务器进程的内存数据丢失。因此,如果所述新服务器进程检测到存在旧服务器进程,则可先获取所述旧服务器进程的内存数据。

示例性地,获取所述旧服务器进程的内存数据,包括:新服务器进程获取共享内存的访问路径,根据所述访问路径获取旧服务器进程的内存数据。一般地,旧服务器进程的内存数据会保存在一个共享内存空间中,该共享内存空间的路径是已知的,可以将旧服务器进程的共享内存空间的内存访问路径写入到新服务器进程的配置文件中,当新服务器进程启动后,新服务器进程根据配置文件中的共享内存空间的内存访问路径获取旧服务器进程的内存数据,使新服务器进程能够共享旧服务器进程的内存数据。在旧服务器进程下线前,新服务器通过内存访问路径获取旧服务器进程的内存数据,保证旧服务器进程下线后,旧服务进程的内存数据不会丢失,新服务器进程也无需重新从数据库或缓存层中重新拉取内存数据,节省了服务器重新启动的事件,提高了服务器的启动效率。

s120、新服务器进程发送下线通知至所述旧服务器进程。

当无需就服务器进程继续提供服务时,可由新服务器进程发送下线通知至所述旧服务器进程。可选地,新服务器进程发送下线通知至旧服务器进程,包括:当新服务器进程接收到获取内存成功的通知时,新服务器进程发送下线通知至旧服务器进程。示例性的,当新服务器进程获取到旧服务器进程的内存数据时,服务器调用api(applicationprogramminginterface,应用程序接口)向新服务器进程返回获取旧服务进程内存数据成功的结果,若新服务器进程获取旧服务器进程内存数据失败,则服务器调用api向新服务器进程返回获取旧服务进程内存数据失败的结果。当新服务器进程接收到返回的获取内存数据成功的结果后,将下线通知发送至旧服务器进程,旧服务器进程接收到新服务器进程发送的下线通知后,旧服务器进程下线,不再运行。新服务器进程代替旧服务器进程运行,为用户提供服务,从而完成服务器的启动。

需要说明的是,有可能存在新服务器进程无法获取到就服务器进程的内存数据的情况,此时,新服务器进程也可以发送下线通知至所述旧服务器进程。例如可以是,当达到预设时长时,如果所述新服务器进程仍未获取到所述旧服务器进程的内存数据,新服务器进程发送下线通知至所述旧服务器进程。或者,当新服务器进程接收到内存数据为空(即,不存在内存数据)的通知时,新服务器进程发送下线通知至旧服务器进程等。

在本发明实施例中,新服务器进程可以是重新启动旧服务器进程得到的,也可以是对旧服务器进程进行优化后得到的,其中优化可以是增加了新的功能或者修改了程序漏洞等。新服务器进程可以实现旧服务器进程所实现的功能。

在上述实施例的基础上,服务器启动方法还可以包括:新服务器进程与用户建立新的用户连接。当旧服务器进程下线后,用户与旧服务器建立的用户连接中断,用户下线,此时,用户需重新与新服务器进程建立新的用户连接,使新服务器进程代替旧服务器进程进行工作。

在上述实施例的基础上,服务器启动方法还可以包括:新服务器进程根据用户连接与用户进行交互。用户与新服务器进程的用户连接建立后,新服务器进程处理通过用户连接发送的用户请求,使新服务器进程为用户提供服务。

本实施例的技术方案,通过当新服务器进程启动时,如果新服务器进程检测到存在旧服务器进程,则获取旧服务器进程的内存数据;新服务器进程发送下线通知至所述旧服务器进程。解决了服务器进程启动时,内存数据会丢失,需重新拉取内存数据的问题,新服务器进程共享旧服务器进程内存,实现了提高服务器启动效率,减少用户等待时间的效果。

实施例二

图2为本发明实施例二提供的一种服务器启动方法的流程图,本实施例以上述实施例的进一步优化,可选地,服务器启动方法还包括:若所述新服务器进程未获取到旧服务器进程的内存数据时,所述新服务器进程创建新的内存空间,以保存所述新服务器进程所产生的内存数据。确保新服务器进程能够保存自身产生的内存数据,从而能够稳定的运行。

s210、当新服务器进程启动时,如果新服务器进程检测到存在旧服务器进程,则获取旧服务器进程的内存数据。

s220、若新服务器进程未获取到旧服务器进程的内存数据时,新服务器进程创建新的内存空间,以保存新服务器进程所产生的内存数据。

当新服务器进程启动后,未检测到旧服务器正在运行,则表明新服务器进程启动前未有服务器进程在该服务器中运行,所以不存在内存数据需要共享给新服务器进程,此时,新服务器进程需要建立新的内存空间,用于保存内存数据。

可选的,新服务器进程未获取到旧服务器进程的内存数据,包括:新服务器进程未获取到所述旧服务器进程的内存数据的访问权限。新服务器进程未获取到旧服务器进程的内存数据的原因包括:新服务器进程没有旧服务器进程内存数据的访问权限,旧服务器进程的内存数据无法共享给新服务器进程,此时,新服务器进程需要创建新的内存空间保存新服务器进程的内存数据。

可选的,新服务器进程未获取所述旧服务器进程的内存数据,还包括:新服务器进程未查询到旧服务器进程的内存空间。新服务器进程未获取到旧服务器进程的内存数据的原因还包括:新服务器进程根据访问路径获取不到旧服务器进程的内存数据,原因可能是旧服务器进程的内存数据不存在,或者旧服务器进程的内存数据未保存在访问路径下的内存空间中,此时,新服务器进程也需创建新的内存空间,用以保存新服务器进程的内存数据。

s230、新服务器进程发送下线通知至所述旧服务器进程。

本实施例的技术方案,通过新服务器进程启动时,如果新服务器进程检测到存在旧服务器进程,则获取所述旧服务器进程的内存数据。使旧服务器进程的内存数据不会丢失,新服务器进程无需重新从数据库或者缓存层中拉取旧服务器进程的内存数据,缩短了服务器进程的启动时间。若新服务器进程未获取到旧服务器进程的内存数据时,新服务器进程创建新的内存空间,以保存新服务器进程所产生的内存数据。使新服务器进程能够保存自身产生的内存数据,并保障新服务器进程的稳定运行。新服务器进程发送下线通知至所述旧服务器进程,使旧服务器进程下线,新服务器进程完全替代旧服务器进程工作,从而完成服务器的启动,使服务器能够稳定并顺畅的运行。

实施例三

图3为本发明实施例三提供的一种服务器启动装置的结构图,该装置包括:内存数据获取模块310和下线通知发送模块320.

其中,内存数据获取模块310,用于当新服务器进程启动时,如果所述新服务器进程检测到存在旧服务器进程,则获取旧服务器进程的内存数据;下线通知发送模块320,用于所述新服务器进程发送下线通知至所述旧服务器进程。

在上述实施例方案中,内存数据获取模块310,包括:

访问路径获取单元,用于新服务器进程获取共享内存的访问路径,根据所述访问路径获取旧服务器进程的内存数据。

在上述实施例方案中,下线通知发送模块320,包括:

通知接收单元,用于当新服务器进程接收获取内存成功的通知时,新服务器进程发送下线通知至旧服务器进程。

在上述实施例方案中,服务器启动装置,还包括:

内存空间创建模块,用于若所述新服务器进程未获取到旧服务器进程的内存数据时,所述新服务器进程创建新的内存空间,以保存所述新服务器进程所产生的内存数据。

可选的,新服务器进程未获取到旧服务器进程的内存数据,包括:所述新服务器进程未获取到所述旧服务器进程的内存数据的访问权限。

可选的,新服务器进程未获取所述旧服务器进程的内存数据,还包括:所述新服务器进程未查询到所述旧服务器进程的内存空间。

在上述实施例方案中,服务器启动装置,还包括:

新的用户连接建立模块,用于新服务器进程与用户建立新的用户连接。

交互模块,用于新服务器进程根据所述用户连接与用户进行交互。

本实施例的技术方案,通过当新服务器进程启动时,如果新服务器进程检测到存在旧服务器进程,则获取旧服务器进程的内存数据;新服务器进程发送下线通知至所述旧服务器进程。解决了服务器进程启动时,内存数据会丢失,需重新拉取内存数据的问题,新服务器进程共享旧服务器进程内存,实现了提高服务器启动效率,减少用户等待时间的效果。

本发明实施例所提供的服务器启动装置可执行本发明任意实施例所提供的服务器启动方法,具备执行方法相应的功能模块和有益效果。

实施例四

图4为本发明实施例4提供的一种服务器的结构示意图,如图4所示,该服务器包括处理器410、存储器420、输入装置430和输出装置440;服务器中处理器410的数量可以是一个或多个,图4中以一个处理器410为例;服务器中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线连接为例。

存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的服务器进程更新方法对应的程序指令/模块(例如,服务器启动装置中的内存数据获取模块310和下线通知发送模块320)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的服务器启动方法。

存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置430可用于接收输入的数字或字符信息,以及产生与服务器的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。

实施例五

本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种服务器启动方法,该方法包括:

当新服务器进程启动时,如果所述新服务器进程检测到存在旧服务器进程,则获取所述旧服务器进程的内存数据;

所述新服务器进程发送下线通知至所述旧服务器进程。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的服务器启动方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

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

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。


技术特征:

1.一种服务器启动方法,其特征在于,包括:

当新服务器进程启动时,如果所述新服务器进程检测到存在旧服务器进程,则获取所述旧服务器进程的内存数据;

所述新服务器进程发送下线通知至所述旧服务器进程。

2.根据权利要求1所述的服务器启动方法,其特征在于,所述获取所述旧服务器进程的内存数据,包括:

所述新服务器进程获取共享内存的访问路径,根据所述访问路径获取所述旧服务器进程的内存数据。

3.根据权利要求1所述的服务器启动方法,其特征在于,所述新服务器进程发送下线通知至旧服务器进程,包括:

当所述新服务器进程接收获取内存成功的通知时,所述新服务器进程发送所述下线通知至所述旧服务器进程。

4.根据权利要求1所述的服务器启动方法,其特征在于,还包括:

若所述新服务器进程未获取到旧服务器进程的内存数据时,所述新服务器进程创建新的内存空间,以保存所述新服务器进程所产生的内存数据。

5.根据权利要求4所述的服务器启动方法,其特征在于,所述新服务器进程未获取到旧服务器进程的内存数据,包括:

所述新服务器进程未获取到所述旧服务器进程的内存数据的访问权限。

6.根据权利要求4所述的服务器启动方法,其特征在于,所述新服务器进程未获取所述旧服务器进程的内存数据,还包括:

所述新服务器进程未查询到所述旧服务器进程的内存空间。

7.根据权利要求1所述的服务器启动方法,其特征在于,还包括:

所述新服务器进程与用户建立新的用户连接;

所述新服务器进程根据所述用户连接与用户进行交互。

8.一种服务器启动装置,其特征在于,包括:

内存数据获取模块,用于当新服务器进程启动时,如果所述新服务器进程检测到存在旧服务器进程,则获取旧服务器进程的内存数据;

下线通知发送模块,用于所述新服务器进程发送下线通知至所述旧服务器进程。

9.一种服务器,其特征在于,所述服务器包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的服务器启动方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的服务器启动方法。

技术总结
本发明实施例公开了一种服务器启动方法、装置、服务器和介质。该方法包括:当新服务器进程启动时,如果所述新服务器进程检测到存在旧服务器进程,则获取所述旧服务器进程的内存数据;所述新服务器进程发送下线通知至所述旧服务器进程。解决了服务器进程启动时,内存数据会丢失的问题,新服务器进程共享旧服务器进程内存,实现了无需重新拉取内存数据,提高服务器启动效率,减少用户等待时间的效果。

技术研发人员:杨琪
受保护的技术使用者:上海米哈游天命科技有限公司
技术研发日:2020.01.21
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-28749.html

最新回复(0)