[发明专利]一种go服务器热更新方法及相关设备在审
申请号: | 202110494403.6 | 申请日: | 2021-05-07 |
公开(公告)号: | CN113342386A | 公开(公告)日: | 2021-09-03 |
发明(设计)人: | 熊秭燚;吴柳 | 申请(专利权)人: | 武汉虚咖科技有限公司 |
主分类号: | G06F8/656 | 分类号: | G06F8/656 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 张晓冬 |
地址: | 430000 湖北省武汉市东湖新技术开发区流芳街大舒村工业项目(*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 go 服务器 更新 方法 相关 设备 | ||
本发明实施例公开了一种go服务器热更新方法及相关设备,该方法包括:获取更新信息;基于所述待执行文件生成进程;通过在所述进程内加载所述待更新网络进程交互的基础数据得到目标进程;基于所述交互节点将所述待更新网络进程替换为所述目标进程,完成所述go服务器热更新的过程。通过本发明实施例的技术方案,解决了现有技术中在更新go服务器时,需要重启服务器,断开客户端与所述服务器的连接,造成数据丢失或者引起漏洞的情况,影响用户体验的问题。
技术领域
本发明实施例涉及服务器维护技术领域,尤其涉及一种go服务器热更新方法及相关设备。
背景技术
现有的技术方案在go语言编写的服务器进行更新时,采用服务器官方提供的plugin方案进行热更新,但是plugin方案是支持将代码分别编译为多个动态库,动态加载后运行,这样在热更新时,用户终端使用正在更新的服务器还是不会很流畅,同时,plugin方案对于编程人员的编程要求很高,而不采用plugin方案对go语言编写的服务器进行更新只能重新编译一个新的程序,替换原有程序,通过重启完成替换过程,这种情况下如果go服务器有多个客户端在链接,那么容易导致在重启的这样段时间,用户丢失数据或者导致一些严重的bug的问题。
发明内容
本发明实施例提供了一种go服务器热更新方法及相关设备,避免了go服务器热更新影响用户体验的问题。
第一方面,本发明实施例提供了一种go服务器热更新方法,用于服务器端,包括:
获取更新信息,其中,所述更新信息包括待执行文件和待更新网络进程交互信息,所述更新网络进程交互信息为待更新的服务器端网络进程与用户终端的交互信息,所述待更新网络进程交互信息包括对应所述待更新网络进程交互信息的交互节点和所述待更新网络进程交互的基础数据,所述交互节点为所述待更新网络进程进行数据交互时的数据节点;
基于所述待执行文件生成进程;
通过在所述进程内加载所述待更新网络进程交互的基础数据得到目标进程;
基于所述交互节点将所述待更新网络进程替换为所述目标进程,完成所述go服务器热更新的过程。
可选的,所述获取更新信息的步骤,包括:
获取用户指令信息,其中,所述用户指令信息为用户输入的控制信息;
获取所述控制信息的类型数据;
若所述控制信息的类型数据不为更新类型数据,则不获取当前网络进程的交互信息;
若所述类型数据为更新类型数据,则获取所述更新信息,所述更新信息包括所述待执行文件和所述待更新网络进程交互信息,所述待更新网络进程交互信息包括对应所述待更新网络进程交互信息的交互节点和所述待更新网络进程交互的基础数据。
可选的,所述获取用户指令信息的步骤,包括:
采用监听的方式获取所述用户指令信息。
可选的,在所述通过在所述进程内加载所述待更新网络进程交互的基础数据,得到目标进程的步骤之前,还包括:
基于预设参数运行所述进程,其中,所述预设参数为初始执行参数;
基于所述初始执行参数对所述进程进行初始化,得到初始进程。
可选的,所述方法还包括:
将所述待更新网络进程交互信息以文件的形式存储至服务器的内存内。
可选的,所述方法还包括:
获取所述目标进程的状态信息,其中,所述状态信息包括停止状态数据和运行状态数据;
若所述目标进程的状态信息为停止状态数据,则维持当前网络进程的运行状态;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉虚咖科技有限公司,未经武汉虚咖科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110494403.6/2.html,转载请声明来源钻瓜专利网。