网游什么是不停机更新
- 游戏信息
- 发布时间:2024-11-15 19:50:20
不停机更新:不用用户下线,依旧可以进行正常游戏。
停机更新:用户无法登陆服务器,利用服务器关闭的时间进行网游更新。
不停机更新一般都都是进行比较小规模的更新·,大规模的(比如版本的更迭)都是要停机更新。
扩展资料:
1、停机更新:
停机维护的根本意义在于让服务器休息一下处理一下数据或者更新系统新文件和内容。服务器就像一起玩局域网游戏一样,也是一台电脑,但能力很大,配置很高,开久了会影响运行程序速度。
在停机维护之前,服务商一般会发布公告、提示停机维护的时间段,以提醒用户做好相应准备。停机维护期间用户无法使用服务商所提供的服务,停机维护经常会在公告的时间段之前进行完毕。
不仅仅是网游需要进行停机维护,一些大型的系统有时也要进行停机维护,以维持系统的正常运行。
2、不停机更新:
不停机更新不会影响玩家正常游戏,待下次启动游戏时,会进行更新。
3、不停机更新技术:
事实上,大多游戏服务器分为逻辑程序服务器和数据库服务器,如果是线上运营的服务器,基本上是在至少两台主机上。
在发现几个逻辑服务器中的bug,或者加了某些功能,比如少加了三个金币,多算了一点经验等,只需要在测试服测试完毕,上传覆盖执行文件(jar或php),但是依然要重启逻辑服务器进程。
而Erlang的热升级技术,就带了更好的体验。Erlang原本脱胎于电信行业,Jow Armstrong 在描述Erlang的设计要求时期中就提到了“软件维护应该能在不停止系统的情况下进行”。
在实践中,因为这种不停服务的热更新获益良多,终于不用再等到半夜没人的时候再做更新了,对于一些紧急的bug修复,热更新实在是一把利器。
Erlang热更新的秘密其实都集中在code模块、code模块是Erlang Code Server暴露出来的对外接口,其职责就是把已经编译好的模块加载到Erlang的运行时环境。
代码版本有两个概念,当前版本代码“current”和老版本代码“old”,一旦模块被加载就变成“current”,再有一个版本过来被加载,之前的版本就变成“old”,新加载的变成“current”。
这时候,两个版本还是同时存在,新的请求执行的时候会使用新的版本,而老版本的代码还会被使用因为还有其他模块的调用“old”版本中。
再进行一次热更新,这时就有第三个实例被加载,code server就会终止掉还在驻留在“old”版本代码依赖的进程。然后第三个实例成为“current”,之前版本的“current”被标记成“old”。
这种方法有效降低了因版本升级而导致的用户流失。
参考资料:百度百科—停机维护