【IT168 评论】游戏的定期更新版本已经再寻常不过了,但频繁的更新会造成流失率非常严重,哪个玩家也不希望再 BOSS 将要躺下那一刻,服务器停机维护了。在小版本更新过程中,采用不停机维护成为现在游戏的主流方式,那究竟是如何做到不停机维护的呢 ?

事实上,大多游戏服务器分为逻辑程序服务器和数据库服务器,如果是线上运营的服务器,基本上是在至少两台主机上,在发现几个逻辑服务器中的 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'。

这种方法有效降低了因版本升级而导致的用户流失。当然,实现不停机更新的技术方法还有很多,欢迎一起交流经验。

游戏服务器停机维护,游戏是如何做到服务器不停机维护的?相关推荐

  1. 崩坏3服务器维护多久,崩坏34月25日停机维护到几点_4月25日崩坏3停机维护时间_玩游戏网...

    <崩坏3>防沉迷时间限制是多久 <崩坏3>手游也是一款设置防沉迷机制的游戏,这就意味着玩家的游戏时间是收到限制的,那么<崩坏3>防沉迷时间限制是多久呢?下面就让玩游 ...

  2. 游戏公司凌晨维护服务器,亲爱的冒险家:为提供给广大玩家更好的游戏体验,游戏预计将于4...

    亲爱的冒险家: 为提供给广大玩家更好的游戏体验,游戏预计将于4月26日凌晨3:30-10:00对服务器进行停机维护,如遇特殊情况开机时间将延后.本次维护内容较多,更新资源包预计将在300MB左右,请各 ...

  3. gpu云服务器运行游戏_GPU云服务器可以挂载大型游戏吗?

    随着科技的发展,云服务器和网络游戏都是互联网发展的产物.现在随着网络的广泛发展和使用,云服务器和游戏都是现在比较火热的行业,云服务器基于云计算技术的发展,用于存放网站数据,在现在的生产工作中占据重要地 ...

  4. 冒险岛sf发布网广告_魔域sf游戏怎么选择合适又放心的服务器?

    如何挑选好的魔域服务器? 游戏用户是选择高防服务器还是普通服务器?现在市面上的游戏层出不穷,传奇 奇迹 完美世界 魔兽世界 冒险岛 魔域 蜀门 征途 诛仙 天堂 天龙八部 露娜 劲舞 完美 机战 生肖 ...

  5. 我的世界中国版服务器无限夜视,我的世界服务器游戏技巧 无限夜视的方法

    来源:游戏园日期:2019-06-12 04:03:49 我的世界服务器游戏技巧 无限夜视的方法.那下面给大家分享的是一些大家可能不知道的游戏技巧,那下面就一起来看看都是些什么技巧吧!对了,里面还有关 ...

  6. 微云服务器失败原因_梦幻西游:服务器发生异常?游戏出现明显卡顿感,正在排查问题...

    就在刚刚,不少梦幻玩家都在讨论一个情况,那就是服务器出现了明显的卡顿感,一些商人也陆续掉线,难道是服务器出现了异常?退出游戏之后,一直无法进入,登录界面总是停留在"正在连接某某服务器&quo ...

  7. 绝地求生进游戏显示服务器未正常运行,绝地求生BE服务器未正常运行怎么办 BE服务器未运行解决方法...

    绝地求生大逃杀BE服务器未正常运行可能是玩家所进入游戏之前遇到的第一个棘手的问题,这问题可以说是关乎到任何方面,解决起来的方法也有很多种,这里就向各位玩家列举几个成功率高的解决方法,希望对你有所帮助. ...

  8. 服务器挂游戏用什么系统,挂游戏用什么云服务器

    挂游戏用什么云服务器 内容精选 换一换 待挂载的磁盘与弹性云服务器属于同一可用分区.如果是非共享盘,待挂载的磁盘为"可用"状态.如果是共享盘,待挂载的磁盘为"正在使用&q ...

  9. 伤害世界怎么自建服务器,伤害世界服务器架设方法_伤害世界Hurtworld怎么架设服务器_游戏堡...

    今天小编为大家带来的是伤害世界Hurtworld服务器架设方法图文详解.很多玩家不清楚服务器怎么架设,下面小编为大家介绍一下伤害世界服务器架设方法,希望对大家有所帮助,一起来看看吧! 首先准备工作,下 ...

  10. 想破解游戏协议?你知道客户端和服务器是怎么通信的?我来告诉你怎么定义的

    目录 1.Java项目引用 2.protobuf 的文件定义格式 基础类型 特殊字段 3.生成java类 4.使用协议 5.如何在游戏项目中使用 游戏服务器和客户端的通信有很多种形式,有的用http, ...

最新文章

  1. JavaScript 消息框
  2. Linux的scp命令
  3. linux重定向文件不存在,shell 12 21 filename重定向的含义和区别
  4. jQuery选择器 (详解)
  5. Apache Spark 的设计与实现(job逻辑执行图)
  6. python polar函数_Python可视化很简单,可是你会吗?python绘制饼图、极线图和气泡图,让我来教教你吧,一文教会!!!...
  7. Nginx——配置负载均衡
  8. 汇编实验 三 编程、编译、连接、跟踪
  9. vue 为全局变量赋值_在vue项目中 如何定义全局变量 全局函数
  10. python处理出租车轨迹数据_1-出租车数据的基础处理,由gps生成OD(pandas).ipynb...
  11. 一款度盘高速下载工具
  12. matlab差分法求解ppt,有限差分法求解薛定谔方程_宫建平.pdf
  13. 行业的英语术语大全之家居类术语
  14. 后台得到ajax传来的参数,几种ajax传参数到后台获取的方法
  15. 独孤九剑-第六式 成长体验
  16. 手机刷机后丢失照片恢复怎么做到?
  17. linux下配置dnx地址,Linux上编译DNX失败
  18. python 方法加强@ pytho中@ python@
  19. SpringBoot控制配置类加载顺序
  20. 网站服务器该怎么选择呢?

热门文章

  1. 前后端分离的思考与实践(六)
  2. python中元组的特性
  3. Border Layout
  4. [转]jQuery的each方法的几种常用的用法
  5. IOS多类型Cell的tableView实现
  6. ASP.NET Core 新建项目 - macOS 环境 - ASP.NET Core 基础教程 - 简单教程,简单编程
  7. 利用java实现浏览器功能 jdic
  8. 区分execl与system——应用程序中执行命令
  9. C#_delegate - 值参数和引用参数
  10. 代码工程flex不显示GIF图片问题