游戏服务器架构和web服务器架构的区别?

2023-01-01 0 794

从前做WEB伺服器,前段时间在研究格斗游戏伺服器,打声提问呵呵吧。不对的地方请诸位斧正呵呵。

1-技术有甚么差异

具体而言通讯上目前的非主流是HTTP协定和SOCKET这三种(HTML5提供了一种捷伊协定,WebScoket,为此介绍并不多,因此不做文章,以防欺骗)。

HTTP相连最明显的特征是插件推送的每天允诺都须要伺服器折返积极响应,在允诺完结后,会积极主动释放出来相连。从创建相连到停用相连的过程称为“一场相连”。

(注:在HTTP 1.1克列文能在一场相连中处置数个允诺,因此数个允诺能重合展开,不须要等候两个允诺完结后再推送下两个允诺。)

Socket又称为”套传输层

“,插件一般而言透过”套传输层”向互联网发出允诺或是响铃互联网允诺。

以J2SDK-1.3为例,Socket和ServerSocketC#位于http://java.netP43EB96SJ。ServerSocket用作伺服器端,Socket是创建互联网相连时采用的。在相连获得成功时,插件两边单厢造成两个Socket示例,操作方式这个示例,顺利完成所需的会话。对于两个互联网相连而言,套传输层是公平的,并没有差异,不即使在伺服器端

或在插件而造成不同等级。无论是Socket还是ServerSocket它们的工作都是透过SocketImpl类或其常量顺利完成的。(节录新浪网)

在WEB伺服器中,一般情况是只须要采用HTTP协定的。即使它不太须要去与插件展开积极主动推送,只须要积极响应插件的出访就足够多了

而在格斗游戏伺服器,这样的相连方式的确是不如用的。很多时候格斗游戏伺服器是须要积极主动推送最新消息,如系统该台。

2-观念有甚么差异

WEB伺服器并不须要低频MSN,对反应速度要求相对较低。而格斗游戏伺服器,绝大多数是须要很及时的反应速度(暂不讨论弱联网格斗游戏)。如DOTA,这种竞技类型的格斗游戏,1秒就能发生很多事。

因此,在思考方向上,WEB伺服器应该考虑是的多平台的兼容,大量用户出访的高并发。

而格斗游戏伺服器应该考虑的是低频通讯,高并发。

3-构架的侧重点有甚么差异

在构架上面,一般出访量不是很大的网站是只有一台伺服器的,出访量高的才会展开分布式设计或是集群设计

而大部分格斗游戏伺服器都是须要分布式设计的。

在现有的互联网格斗游戏伺服器端架构中,多是以功能和场景来划分伺服器结构的。具体的划分是根据项目的需求展开的,并没有两个十分通用的构架。

游戏服务器架构和web服务器架构的区别?

以上是比较常见的结构,插件登录的时候,相连GateServer,然后由GateServer去相连LoginServer展开登录。登录后透过CenterServer转发到GameServer(GameServer即是伺服器大区)。

而其中的DCServer,主要的功能是缓存玩家角色数据,保证角色数据能快速的读取和保存。

LogServer便是保存日志的了。

4-本质有无差异

本质上,两者并无差异,只是需求不同,侧重点不同罢了。

大致就是这样,有错误地方希望能指出来。

=========================================================

一年过去了。感觉,我又强了几分。

再来补充点好了,也当作是两个自我总结。

个人感觉上,格斗游戏和web伺服器之间最大的差异就是业务上的不同。格斗游戏的业务绝大多数都是很复杂的情况,而且对即时性要求比较高(部分弱联网格斗游戏对即时性要求相对较低,抛开业务甚至能直接照搬web伺服器构架)。

数据的同步:

在大型格斗游戏上,有两个很重要的话题便是数据的同步。任何即时操作方式的格斗游戏都绕不开这个话题,数据的同步直接影响着用户的体验。我们既要保证数据的一致性,又要保证玩家格斗游戏的流畅性。这其中是须要做许多取舍的。

/*目前数据的同步主要有三种,帧同步与状态同步(各有优劣,应用环境不同,在此不展开)。这三种同步都只是两个大的方向,并不是两个完善的解决方案。比如帧同步在弱互联网环境下是否须要冗余保证数据完整性,比如是采用tcp还是udp,亦或是是两者混合采用。这些都没有两个确切的答案,都处于摸索之中。*/

web伺服器并无此种纠结,它们的数据都在伺服器,并不须要用户与用户之间的强交互。数据同步的延迟也就不那么难以忍受了。

集群与分布式:

当两个网站出访人数很庞大的情况下,单独去提升一台物理机配置能够带来的性能提升会即使边际效应逐渐减小。这时候就须要考虑采用集群了。集群有三种,高可用集群, 负载均衡集群,科学计算集群。其中最常见的便是负载均衡。很多情况下,集群之间是不须要互相交互的,数据都在单个伺服器上展开处置,也就没了同步的问题(相比格斗游戏伺服器要简单了多)。

相对于格斗游戏的难点就在于格斗游戏我们能透过分区分服甚至分频道等方式来减小伺服器负载压力。而网站是无法这样让用户分区之类的操作方式。甚至是须要,全国各地乃至全球各地出访到这个网站都是同样的用户数据(针对这种情况我们会采用cdn,部署互联网各地的节点伺服器能使得不同地方的人员出访网站的速度是一致流畅的)。所以并不是网站业务简单就轻率的认为网站开发没有技术含量。

格斗游戏伺服器,即使能分区分频道等,所以很多情况下一台伺服器的负载量要求不会太高。像手游的伺服器,甚至要求能低至同时在线200人。而且有些时候我们仅须要提高某一些功能的负载量,又或是大型3D格斗游戏存在地图,这些情况下,我们往往采用分布式构架来解决。如分离聊天、好友之类的功能,如给每个区域分配两个单独的房间/地图/场景伺服器。

======================

现在来看,觉得最大的差异在于web多数是无状态伺服器,而格斗游戏伺服器多数是有状态的。

之前说的低频低频问题,web也是存在低频,如淘宝,如春节的12306.

req/resp模式的卡牌类伺服器其实和web差不多。

而如那些有地图的格斗游戏是会记录每个玩家的状态,地图伺服器还会在伺服器内运行两个类似插件的地图处置逻辑。

如同插件,伺服器也存在两个刷新频率。不过一般比插件的帧率低很多。绝大多数服务器是用单线程轮询,也有一些多线程,目前介绍也不是很多。无法具体的表述。

等再研究呵呵mmorpg伺服器再来更新吧

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务