(游戏不停机维护数据如何改变?)

2023-12-26 9阅读

大家好,今天小编关注到一个比较有意思的话题,就是关于游戏怎么做到服务器不停机维护(游戏怎么做到服务器不停机维护呢)的问题,于是小编就整理了2个相关介绍为您解答,让我们一起看看吧。

(游戏不停机维护数据如何改变?)(图片来源网络,侵删)

不停机更新的原理?

事实上,大多游戏服务器分为逻辑程序服务器和数据库服务器,如果是线上运营的服务器,基本上是在至少两台主机上。

在发现几个逻辑服务器中的bug,或者加了某些功能,比如少加了三个金币,多算了一点经验等,只需要在测试服测试完毕,上传覆盖执行文件(jar或php),但是依然要重启逻辑服务器进程。

而Erlang的热升级技术,就带了更好的体验。Erlang原本脱胎于电信行业,Jow Armstrong 在描述Erlang的设计要求时期中就提到了“软件维护应该能在不停止系统的情况下进行”。

(游戏不停机维护数据如何改变?)(图片来源网络,侵删)

在实践中,因为这种不停服务的热更新获益良多,终于不用再等到半夜没人的时候再做更新了,对于一些紧急的bug修复,热更新实在是一把利器。

Erlang热更新的秘密其实都集中在wxxxcode-style模块、wxxxcode-style模块是Erlang Code Server暴露出来的对外接口,其职责就是把已经编译好的模块加载到Erlang的运行时环境。

代码版本有两个概念,当前版本代码“current”和老版本代码“old”,一旦模块被加载就变成“current”,再有一个版本过来被加载,之前的版本就变成“old”,新加载的变成“current”。

(游戏不停机维护数据如何改变?)(图片来源网络,侵删)

这时候,两个版本还是同时存在,新的请求执行的时候会使用新的版本,而老版本的代码还会被使用因为还有其他模块的调用“old”版本中。

再进行一次热更新,这时就有第三个实例被加载,wxxxcode-style server就会终止掉还在驻留在“old”版本代码依赖的进程。然后第三个实例成为“current”,之前版本的“current”被标记成“old”。

游戏不停机维护数据如何改变?

1. 游戏不停机维护数据会让游戏玩家的体验更好,但是会对游戏公司的运营和维护带来一定的挑战,数据的改变是必须的;

2. 游戏公司一般会选择在玩家流量最低的时刻进行维护和数据改变操作,比如深夜或者凌晨,这个时候维护对于游戏玩家的影响最小;

3. 另外,游戏公司也会在游戏更新之前提前宣布维护的具体时间,让玩家提前做好准备,以免玩家在游戏过程中突然失去连接;

4. 综上所述,游戏不停机维护数据需要被精心安排,让玩家和游戏公司都能够受益。

游戏不停机维护:

1,编写补丁代码

2,重启服务器 因为补丁代码并不是立刻生效的,所以需要重启游戏服务器

3,等待服务器重启完毕 重启游戏服务器意味着整个游戏服务器的逻辑和状态都需要停止,所以需要等待服务器重启完毕如果你是在公司里做一个分布式的游戏服务器,那你启动一下可能就需要半分钟,一分钟,甚至更长的时间才能完整的把游戏的服务器里每一个进程,进程里附带的数据,全部启动,这会对开发会造成比较大的困扰,小项目还行,大项目就不行了,所以这是非常冗长的一个步骤

4,跑流程 因为在停止服务器时,游戏角色的一些状态全部丢失了,那么为了重现这个bug,就必须把从登陆到bug出现的整个流程再重新走一遍,这又是一个非常耗时的过程

5,测试Bug是否消除 当流程走完以后,就会再去测试这个bug是不是被消除了,如果bug被消除,那就改完了;如果没有消除就还要再去调试,再去重启服务器,再去等待服务器启动完毕,再跑一边,一直跑到bug出现的点上要解决这个问题可以让服务器支持热补丁,这样就只需要通过一条特殊的指令,把之前已经完成任务状态改成未完成,再使用一下补丁代码,让补丁代码生效,再把任务重新做一边就可以了如果服务器能支持这样的功能,那么对于开发效率而言是有非常大非常明显的提升的。

到此,以上就是小编对于的问题就介绍到这了,希望这2点解答对大家有用。

文章版权声明:除非注明,否则均为游侠云资讯原创文章,转载或复制请以超链接形式并注明出处。

目录[+]