浅谈服务器架构之MMORPG端游

来源:互联网 发布:js正则获取标签属性值 编辑:程序博客网 时间:2024/06/06 16:35

MMORPG,是英文Massive(或Massively)Multiplayer Online Role-PlayingGame的缩写。一般指大型多人在线角色扮演游戏。


这里突出的需求就是多人在线,也就是需要一个大区可以有比较大的承载能力。


所以这里采用的是采用一个可配置可灵活增减容量的多服架构。


客户端:用户机器安装的游戏端,以下简称Client

网关服务器:负责接受客户端的连接,对消息进行前置处理(加密,解密,验证等),然后将消息分发;因为需要对应的是大量的客户端连接,为了保证连接的品质,这里采用的是一个对等的服务器组,以下简称GateServer

中心服务器:载入的是全区所有玩家的数据,也是整个服务器架构的中心,全区玩家之前交互的核心,以下简称CentralServer

登录服务器:负责用户的登录验证,登录可能经常遇到一个峰值的处理,所以这里需要增加一个可配置的登录等待队列,以下简称LoginServer

逻辑服务器:游戏中所有逻辑的处理,也就是服务器压力的所在,这里采用的是一个可配置的服务器组,是根据游戏中场景来加载的,以下简称SceneServer

存储服务器:主要负责从Database加载角色数据,以及存储加色数据,以下简称StorageServer

邮件服务器:对应的主要是游戏中的邮件系统,这里可能有一个很频繁的收发读取邮件的操作,所有单独出一个进程来处理,以下简称MallServer

排名服务器:处理游戏的排行榜,这里可能包括以前需要处理排名的系统功能,以下简称RankServer

名字服务器:由于整个游戏中采用的名字不唯一,所以专门架设一个名字服务器,对多区的名字唯一性进行验证;以及接入各平台时名字屏蔽字的处理和过滤,以下简称NameServer

GM服务器:游戏运营后台处理工具,负责处理一些运营相关的需求,以下简称GmServer


以下为各服务器内部之间的连接关系:

GateServer<————>  CentralServerSceneServer 

CentralServer<————>  GateServerSceneServerLoginServerStorageServer

SceneServer<————>  GateServer CentralServer ,NameServerGmServerMallServerRankServerStorageServer

MallServer<————> SceneServerStorageServer

RankServer<———— SceneServer,StorageServer


这里主要说一些SceneServer的一些具体的设计:

1,如果有角色比较集中的地图的话,单独配置到一个SceneServer,比如主城;其他访问量不大的可以配置到一起。

2,副本地图单独配置SceneServer,这里可以根据玩家实际创建副本的量与单个进程承载量来配置进程数量。

3,逻辑单线程,也是主要的线程;另外网络消息的处理单独线程,Log也单独一个线程来处理


另外该配置也可以根据具体需求来相应的调整。


0 0
原创粉丝点击