游戏怎么做到服务器不停机维护?

很多游戏维护时需要服务器停机,而有一些不需要。或者某一款游戏有时候服务器停机维护,有时候不停机维护,是因为什么? 是不是不停机维护需要更高的技术呢?

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

网络游戏如果数据放在服务器的话,要分很多种情况来看。我就大概就我的所致简单说一下吧。游戏服务器分逻辑程序服务器和数据库服务器,如果是线上运营的服务器,基本上是在两台主机上(至少是两台虚拟主机上),当然也有多台逻辑主机+多台分布式数据库的情况,我先不讨论多对多的。有时候,发现几个逻辑服务器bug,或者加了某些功能,比如少加了三个金币,多算了一点经验啊,只需要在测试服测试完毕,上传覆盖执行文件(jar或php),重启逻辑服务器进程,客户端基本感觉不到,http是短链接,即便是长链接,只要客户端有自动重连策略,也没啥问题。对外叫做不停机维护,可以公告告诉玩家,也可以不公告。
而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‘。这种方法有效降低了因版本升级而导致的用户流失。

还有一种服务器维护,是物理(虚拟)主机linux(windows)系统维护,包括升级(降级)配置,移动机房,机房故障等等,需要新搞一台主机,将运行环境搭建起来,如果有缓存数据,需要把缓存数据拷贝过去,如果没有跳板(网关),这需要更改DNS,等待生效(1-24小时)这个时候的时间差,客户绝对连接不上的。

再有就是在数据库的搭建的时候,建表的时候,没有考虑到兼容的情况,在做版本迭代的时候,新的功能需要的表结构需要重新升级或者建立新的索引,于是需要把数据库进程停止,导入数据到新的结构里面去,这段时间逻辑服务器服务器是停摆的,客户端也肯定不然连的。

最后还有很多游戏服务器群构架,包括缓存服务器,聊天服务器等等,他们也会出现各种各样的问题,也可能会停机维护或者不停机维护,原理差不多,我就不一一举例子了。

天下数据专业提供海外游戏解决方案,我们会根据您的需求情况,为您量身定做一套独一无二的海外服务器平台解决方案!

时间: 2024-12-30 02:56:10

游戏怎么做到服务器不停机维护?的相关文章

广州游戏发布站服务器哪家好

在防御和应对DDoS攻击时,保持警惕是至关重要的.安全管理员必须了解针对互联网系统的最新攻击趋势.策略和流程.各种统计信息表明,百万级DDoS攻击的规模和频率将继续增长,所以要做好防御措施应对最坏的情况,比如客户服务器遇到的攻击.提前做好准备是缩小DDoS攻击范围和强化潜在攻击目标防御能力的一个重要步骤.    福建网泰信息科技有限公司,是全方位整合网络资源的专业IDC基础服务商,是拥有ISP资质的电信运行商!自主运营6星级机房,省电信骨干网络,近期机房整体升级后,出口带宽2T,机房总防御1T级

你还在找棋牌 大型游戏专用 高防服务器吗

棋牌 大型游戏专用 高防服务器可咨询QQ:2881375115 棋牌 大型游戏专用 高防服务器可咨询电话:17759186719 棋牌游戏的攻击很大这个是众所周知的,不仅有小组恶意攻击,更有同行恶意竞争 所以,一个棋牌游戏想开的好 做的大必须选用一台好的服务器. 棋牌高防服务器哪里的用着好用? 棋牌高防服务器哪里有,稳定高效的棋牌服务器哪里有,安全稳定. 棋牌高防服务器免备案,高速稳定. 棋牌游戏不同阶段需要的服务器的配置不同,要求的防御也是不一 配置齐全: 高防服务器首选台州棋牌高防双线,99

游戏服务器之服务器优化思路

本文只是提供一些游戏服务器优化思路,其中一些思路是用在不同场合的,不是同个架构的.需要根据应用场景选用合适方式. 一.框架设计优化 1.分静态服务器和动态服务器. 2.动态服务器使用两层负载均衡:多网关  和 多场景.网关的选择是登陆服务器根据网关的负载来选择.场景则作为分线和副本等分开. 框架图参考:http://blog.csdn.net/chenjiayi_yun/article/details/18891591 3.中心服务器负责服务器依赖检查和内部消息转发和控制登录流程.中心服务器会主

MMO游戏中的服务器

登陆服务器: 充值服务器: 用户信息服务器: 保存用户的一些数据 游戏服务器: 处理玩家的逻辑数据 AI服务器: 所有的怪物的寻路.刷新.攻击.技能 场景地图服务器:所有地图. 所有的怪物的物品掉落机率使用脚本方式 聊天服务器: 网关服务器: 端口映射.数据校验.消息转发

【技测】游戏上线前服务器压力测试应该怎么做

伴随手游上线推广,玩家爆发式增长,不少开发者都遇到过玩家冲爆服务器的情况,因此降低服务器崩溃的风险就显得非常重要.游戏上线前如果做了服务器压力测试帮助会很大.今天就来说说压力测试. 编写脚本机器人 为了在游戏上线前实际掌握服务器的承载能力,在游戏的开发流程末端都会引入压力测试.最普遍的一种测试方式是机器人模拟测试.通过脚本机器人在游戏中模拟一个玩家可能进行的操作,几千个机器人在服务器里面连续执行各种操作,测试各处功能的完整度. 脚本机器人是大部分CP在上线前的一个重要压测手段,因为这是低成本下最

如何在游戏客户端和服务器之间精确同步玩家的状态?

欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多Unity3D资源.Unity3D培训视频.Unity3D教程.Unity3D常见问题.Unity3D项目源码,[狗刨学习网]unity极致学院,致力于打造业内unity3d培训.学习第一品牌. 假定技能有前摇,攻击,后摇3个阶段. 前摇阶段可以理解为发招前的酝酿或者念几句咒语,攻击阶段可以理解为开始挥刀砍直至砍中目标身上这个时间段,后摇阶段可以理解为收刀恢复攻击姿势的阶段. 我们的技能的连招系统允许在某些技能(称为技

unity游戏开发之服务器与客户端或页面流转之自定义交互事件

引言: 1,游戏页面与页面的交互 (1)装备背包 (2)装备信息页面 在游戏开发中,2D页面之间,有时候少不了关联性,比如游戏的背包系统,玩家进入背包系统(见上图装备背包以及装备信息页面),点击装备,查看装备信息页面,一般卡牌类游戏这些信息页面都附带增加装备 属性值的功能,比如<放开那三国>里装备的强化功能,玩家花一定量的游戏货币强化了装备后,该装备信息页面里装备属性会随着刷新.但是关闭该装备信息页面后,背包系统 页面里对应的该装备描述也要随着改变,但是背包系统怎么知道装备信息页面里已经改变了

多人在线游戏,客户端服务器间同步低延迟方案(译)

原文:https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking 输入预测 假设玩家的网络延迟为150毫秒,并开始向前移动.该按键命令发送到服务器.用户命令被处理,并且玩家的角色在游戏世界中向前移动.这个状态更改将通过下一次快照更新传输到所有客户端.所以玩家在开始走路之后,会在150毫秒的延迟时间后看到自己的动作变化.这种延迟存在于所有玩家的行动,如运动,射击武器等,并且随着更高的延迟而变得更糟.玩家输入和相应的视

Unity3d 游戏与C#服务器 异步Socket 交互 (一)

Unity3d中提供了Socket供开发者使用,语法和.net中的一致. 一般来说,对于手游客户端,分为两个线程,一个是GLES渲染,另一个就是Socket线程了. 文章转自(http://blog.csdn.net/huutu) 不论是服务器,还是客户端.其间的数据包的接收与发送,都是通过Socket. 比如客户端要登录,我们就新建一个Socket,Connect到帐号服务器.帐号服务器一直在等待客户端的连接,客户端连接进来之后就准备发送接收数据包了. 文章转自(http://blog.csd