一种go服务器热更新方法及相关设备技术

技术编号:29926481 阅读:14 留言:0更新日期:2021-09-04 18:47
本发明专利技术实施例公开了一种go服务器热更新方法及相关设备,该方法包括:获取更新信息;基于所述待执行文件生成进程;通过在所述进程内加载所述待更新网络进程交互的基础数据得到目标进程;基于所述交互节点将所述待更新网络进程替换为所述目标进程,完成所述go服务器热更新的过程。通过本发明专利技术实施例的技术方案,解决了现有技术中在更新go服务器时,需要重启服务器,断开客户端与所述服务器的连接,造成数据丢失或者引起漏洞的情况,影响用户体验的问题。题。题。

【技术实现步骤摘要】
一种go服务器热更新方法及相关设备


[0001]本专利技术实施例涉及服务器维护
,尤其涉及一种go服务器热更新方法及相关设备。

技术介绍

[0002]现有的技术方案在go语言编写的服务器进行更新时,采用服务器官方提供的plugin方案进行热更新,但是plugin方案是支持将代码分别编译为多个动态库,动态加载后运行,这样在热更新时,用户终端使用正在更新的服务器还是不会很流畅,同时,plugin方案对于编程人员的编程要求很高,而不采用plugin方案对go语言编写的服务器进行更新只能重新编译一个新的程序,替换原有程序,通过重启完成替换过程,这种情况下如果go服务器有多个客户端在链接,那么容易导致在重启的这样段时间,用户丢失数据或者导致一些严重的bug的问题。

技术实现思路

[0003]本专利技术实施例提供了一种go服务器热更新方法及相关设备,避免了go服务器热更新影响用户体验的问题。
[0004]第一方面,本专利技术实施例提供了一种go服务器热更新方法,用于服务器端,包括:
[0005]获取更新信息,其中,所述更新信息包括待执行文件和待更新网络进程交互信息,所述更新网络进程交互信息为待更新的服务器端网络进程与用户终端的交互信息,所述待更新网络进程交互信息包括对应所述待更新网络进程交互信息的交互节点和所述待更新网络进程交互的基础数据,所述交互节点为所述待更新网络进程进行数据交互时的数据节点;
[0006]基于所述待执行文件生成进程;
[0007]通过在所述进程内加载所述待更新网络进程交互的基础数据得到目标进程;
[0008]基于所述交互节点将所述待更新网络进程替换为所述目标进程,完成所述go服务器热更新的过程。
[0009]可选的,所述获取更新信息的步骤,包括:
[0010]获取用户指令信息,其中,所述用户指令信息为用户输入的控制信息;
[0011]获取所述控制信息的类型数据;
[0012]若所述控制信息的类型数据不为更新类型数据,则不获取当前网络进程的交互信息;
[0013]若所述类型数据为更新类型数据,则获取所述更新信息,所述更新信息包括所述待执行文件和所述待更新网络进程交互信息,所述待更新网络进程交互信息包括对应所述待更新网络进程交互信息的交互节点和所述待更新网络进程交互的基础数据。
[0014]可选的,所述获取用户指令信息的步骤,包括:
[0015]采用监听的方式获取所述用户指令信息。
[0016]可选的,在所述通过在所述进程内加载所述待更新网络进程交互的基础数据,得到目标进程的步骤之前,还包括:
[0017]基于预设参数运行所述进程,其中,所述预设参数为初始执行参数;
[0018]基于所述初始执行参数对所述进程进行初始化,得到初始进程。
[0019]可选的,所述方法还包括:
[0020]将所述待更新网络进程交互信息以文件的形式存储至服务器的内存内。
[0021]可选的,所述方法还包括:
[0022]获取所述目标进程的状态信息,其中,所述状态信息包括停止状态数据和运行状态数据;
[0023]若所述目标进程的状态信息为停止状态数据,则维持当前网络进程的运行状态;
[0024]若所述目标进程的状态信息为运行状态数据,则关闭所述当前网络进程的运行。
[0025]可选的,所述用户指令信息为用户通过Telnet方式发送至所述go服务器的控制信息。
[0026]第二方面,本申请实施例提供了一种go服务器热更新装置,包括:
[0027]数据获取模块,用于获取更新信息,其中,所述更新信息包括待执行文件和待更新网络进程交互信息,所述更新网络进程交互信息为待更新的服务器端网络进程与用户终端的交互信息,所述待更新网络进程交互信息包括对应所述待更新网络进程交互信息的交互节点和所述待更新网络进程交互的基础数据,所述交互节点为所述待更新网络进程进行数据交互时的数据节点;
[0028]创建模块,用于基于所述待执行文件生成进程;
[0029]加载模块,用于通过在所述进程内加载所述待更新网络进程交互的基础数据得到目标进程;
[0030]更新模块,用于基于所述交互节点将所述待更新网络进程替换为所述目标进程,完成所述go服务器热更新的过程。
[0031]第三方面,本申请实施例提供了一种电子设备,包括:存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器用于执行存储器中存储的计算机程序时实现如上述的go服务器热更新方法的步骤。
[0032]第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序:上述计算机程序被处理器执行时实现如上述的go服务器热更新方法的步骤。
[0033]上述专利技术中的实施例具有如下优点或有益效果:
[0034]通过获取更新信息,其中,所述更新信息包括待执行文件和待更新网络进程交互信息,所述更新网络进程交互信息为待更新的服务器端网络进程与用户终端的交互信息,所述待更新网络进程交互信息包括对应所述待更新网络进程交互信息的交互节点和所述待更新网络进程交互的基础数据,所述交互节点为所述待更新网络进程进行数据交互时的数据节点;通过获取待执行文件和待更新网络进程交互信息,为后续构建进程和替换进程提供基础;基于所述待执行文件生成进程;通过生成进程,不采用重新编写程序的方式,由于进程是程序的一次执行,并且进程是可以并行执行的计算,进程是程序在一个数据集合上的运行过程,因此在不改变程序的情况下,通过构建进程以实现go服务器的热更新,不需要对服务器进行重启操作,避免了当服务器重启发生错误后,可能会导致进程搁置,所有连
接所述go服务器的客户端的功能都会停滞的问题。通过在所述进程内加载所述待更新网络进程交互的基础数据得到目标进程,通过加载所述待更新网络进程交互的基础数据,使得所述目标进程具备更新前go服务器的功能,以实现在不影响用户使用的前提下,对所述go服务器进行更新;基于所述交互节点将所述待更新网络进程替换为所述目标进程,完成所述go服务器热更新的过程,通过所述交互节点确定所述待更新网络进程替换为所述目标进程的时机,进而在不影响用户体验的时候进行替换过程,避免影响用户体验,实现所述go服务器热更新。
附图说明
[0035]图1是本申请实施例提供的一种go服务器热更新方法的流程图;
[0036]图2是本申请实施例提供的一种go服务器热更新方法的流程图;
[0037]图3是本申请实施例提供的一种go服务器热更新方法中所述待更新网络进程交互信息的存储方式示意图;
[0038]图4是本申请实施例提供的一种go服务器热更新装置的结构示意图;
[0039]图5是本申请实施例提供的一种电子设备的结构示意图;
[0040]图6是本申请实施例提供的一种存储介质的结构示意图。
具体实施方式
[0041]下面结合附图和实施例对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种go服务器热更新方法,用于服务器端,其特征在于,包括:获取更新信息,其中,所述更新信息包括待执行文件和待更新网络进程交互信息,所述更新网络进程交互信息为待更新的服务器端网络进程与用户终端的交互信息,所述待更新网络进程交互信息包括对应所述待更新网络进程交互信息的交互节点和所述待更新网络进程交互的基础数据,所述交互节点为所述待更新网络进程进行数据交互时的数据节点;基于所述待执行文件生成进程;通过在所述进程内加载所述待更新网络进程交互的基础数据得到目标进程;基于所述交互节点将所述待更新网络进程替换为所述目标进程,完成所述go服务器热更新的过程。2.根据权利要求1所述的go服务器热更新方法,其特征在于,所述获取更新信息的步骤,包括:获取用户指令信息,其中,所述用户指令信息为用户输入的控制信息;获取所述控制信息的类型数据;若所述控制信息的类型数据不为更新类型数据,则不获取当前网络进程的交互信息;若所述类型数据为更新类型数据,则获取所述更新信息,所述更新信息包括所述待执行文件和所述待更新网络进程交互信息,所述待更新网络进程交互信息包括对应所述待更新网络进程交互信息的交互节点和所述待更新网络进程交互的基础数据。3.根据权利要求2所述的go服务器热更新方法,其特征在于,所述获取用户指令信息的步骤,包括:采用监听的方式获取所述用户指令信息。4.根据权利要求2所述的go服务器热更新方法,其特征在于,在所述通过在所述进程内加载所述待更新网络进程交互的基础数据,得到目标进程的步骤之前,还包括:基于预设参数运行所述进程,其中,所述预设参数为初始执行参数;基于所述初始执行参数对所述进程进行初始化,得到初始进程。5.根据权利要求1所述的go服务器热更新方法,其特征在于...

【专利技术属性】
技术研发人员:熊秭燚吴柳
申请(专利权)人:武汉虚咖科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1