游戏服务器与普通web服务器有什么区别?

softyun3年前主机评测62

游戏服务器与普通服务器有什么区别?

相比于我们常见的数据中心的普通Web服务器,网络游戏服务器(如英雄联盟,魔兽世界)有什么特别的地方?Web服务器基本是无状态的. 游戏服务器是强状态的, 耦合自己不说, 还要耦合别人, 别的大区…

游戏服务器(网络游戏服务器)和web服务器的最大区别是:

web服务器每个client都是独立的,游戏服务器不同client是有交互有状态,会实时地互相影响。这导致很多设计上的差异。

我个人租过的配置最高的服务器:16核CPU+64G内存,外加50M独享电信宽带。

这种配置在武装突袭的服务器中勉强算是个中低配,可以同时容纳七八十个玩家在线。这种机器要是用来搭建个人的网站那绝对算是豪华配置了。顶个日均万儿八千个UV就是毛毛雨。要我说有什么区别,那就是游戏服务器要求更高。尤其对带宽要求很高。

普通服务器,都是客户与系统之间的数据交换与逻辑,不会涉及玩家与玩家之间的状态,买家A只需要和电商平台系统来进行数据操作就可以了,无需要管买家B的状态。

网络游戏服务器就不一样了,它不是单纯的玩家与系统之间的数据处理,还有玩家与玩家之间的,比如玩家A打死了一只怪,我要告诉玩家B(能看见玩家A的人)。

游戏服务器和应用服务器很大的不一样在于处理问题完全不是同一个。游戏服务器就是长连接,多玩家之间数据如何交换,同步,推动游戏逻辑进度等。应用服务器走http 短连接,处理完业务就关闭释放,下次再处理的时候再连接请求,所以技术架构,开发方式都完全不一样。

提升并发量负载量的方式也不一样, 对于普通的服务器,提升并发,加多机器,反向代理等,相对来说部署更容易一些。而游戏服务器扩容,增加负载,考虑的就多些,比如两个玩家有可能在一个服务器上游戏,两个玩家有可能组队等。

游戏服务器与普通服务器除了基础知识相同以外,处理思想和处理的问题是完全不一样的:

在高并发下,对client请求进行负载均衡并不如web那么简单,因为client状态会互相影响,并且可能共享写数据甚至有时序依赖。大型mmorpg通常是长连接,并发服务数通常要远小于web服务器 。根源就是实时性和强交互性的限制,两者要求越低的游戏,并发就可以做得越高。

web服务运算较少,io密集,读多写少。游戏服计算和io都密集,读写都频繁

比如开发web服务,基于nginx的openresty就很好用,利用了Lua的协程和异步io,写起来很流畅而不失性能。但用来做游戏服务器,协程却可能是个坑,因为游戏依赖很多上下文环境,当协程被唤醒时,上下文环境改变,协程的代码风格很容易用了旧变量导致逻辑错误。

游戏服务器:CPU密集(Redis:内存状态值读写),网络IO密集(广播).

网站服务器:状态比较少(Redis:会话信息),数据库IO密集.

做过游戏服务器的开发,也做过一般的互联网服务器的开发,在我看来两者的区别主要有两点:

1)游戏服务器比一般的服务器要保存更多的状态:

玩家的属性这些自不必说,一般的IM服务也会有,还有一些马上就会变化的数据,比如某个玩家的生命值,发技能前后的法力值等等,这些值区别于一般的属性值如名字,ID这些的差异在于,会经常性的变化,还会参与到逻辑的计算中,比如你一个多少等级的玩家吃了什么东西之后战力值变化为多少,打在一个多少属性的玩家身上会不会被他闪避,会不会产生暴击….

游戏逻辑中的战斗技能计算是很大的一个点,我不太熟悉这块就不展开多说了.可以看到,游戏逻辑的CPU计算是非常多的.

2)游戏服务中,每个玩家不是独立存在的

,而是很有可能会与其他玩家发生状态的交互,一般的服务器比如HTTP什么的,你一个请求过来查你的数据,和别人的请求是独立的,并没有什么交互.

客户端之间会有交互这一点,举最简单的例子,一个人在一个场景里面说了一句话,那么同一个屏幕的玩家也需要能够看到他说的这句话.此时游戏服务器就需要判断,多远的距离以内的玩家,会认定为是”同屏幕”的玩家,需要向这些玩家广播这个玩家说的这句话.

这个广播就比较麻烦了.首先,计算哪些玩家在”同屏幕”,就是我们在第一点提到的玩家身上某些经常变化的属性需要做的运算,在这里需要根据玩家的坐标,找出来跟在同屏幕的玩家,用到的是AOI的概念,感兴趣的可以看看云风的 BLOG: 开发笔记 (13) : AOI 服务的设计与实现 .另外,找到了这些需要接收这个消息的玩家之后,将消息转发给它们又是一个IO密集的操作,假如场景中有10个人,那么一句话就需要同时广播给另外9个人,假如有100人,1000人呢,量就更大了.所以同样的一个硬件配置的服务器,可能跑Nginx可以同时处理上万的链接,但是对于一个游戏服务器就只有1,2千了,就是因为游戏服务器是一个CPU密集而且IO密集的服务器类型.

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

游戏服务器租用多少钱一年?腾讯云手游服务器租用价格表

游戏服务器租用多少钱一年?游戏服务器不同于普通服务器,根据游戏的不同,在线人数的不同,需要的配置也不一样的。一般的话,普通物理服务器就可以满足使用需要,几百元一月这样,需要防御的话可以选高防机房,性价...

如何选择游戏服务器,来教你

网络游戏行业越来越火爆,租用游戏服务器的越来越多,那么我们该如何去选择适合我们的游戏服务器呢?1.稳定性稳定是游戏服务器的前提,影响到稳定的有游戏服务器配置情况、今后的扩展、安全性能。游戏的质量越来越...

游戏服务器需要什么配置,与常规服务器有何不同?

发一款成功的游戏并非易事,它必须有吸引玩家的元素。尽管困难重重,这样的游戏还是很多。但是,为了让玩家拥有流畅的游戏体验,这就需要使用游戏服务器了。哦,等等,游戏服务器?为什么不称之为专用服务器呢?说到...

游戏服务器压力测试

游戏项目上线之前,一般需要对项目做个压力测试,从中可以评估项目的性能瓶颈,做出针对性的优化;那么如何做游戏服务器压力测试?一.首先明确需要测试压力的内容:1.游戏服务器硬件a.硬盘I/ob.内存cPU...

租用国外游戏服务器应该注意什么?

  最近客服接到很多客户关于海外游戏服务器租用方面的咨询,而在这些客户中大多数都选择的是美国服务器租用服务,其次是韩国游戏服务器和台湾游戏服务器,但是又有很多客户是第一次做游戏应用,所以在选择服务器的...

游戏服务器租用怎么选择好

游戏服务器租用选择的方法:1、考虑机房的级别,选择级别较高的游戏服务器机房;2、考虑网络环境,根据自身网站特点选择合适的游戏服务器带宽和线路;3、考虑售后服务水平,选择提供7*24小时的游戏服务器;4...