站务联系

主页 > 菲律宾 > 内容

8 大型多人在线游戏服务器架构设计

发布时间:2021-06-17   来源:网络整理    
字号:

8 大型多人在线游戏服务器构架设计

由于大型多人在线游戏服务器理论上还要支持无限多的玩家,所以对服务器端是一个特别大的考验。服务器应当是安全的,可维护性高的,可伸缩性高的,可负载均衡的,支持高并发恳求的。面对这种需求,我们在设计服务器的时侯就须要谨慎考虑,特别是构架的设计,如果前期设计不好,最后面临的太或许是解构。

一款游戏服务器的构架都是逐渐从小变大的,不或许一下子就上来一个建立的服务器架构,目前流行的说法是游戏先上线,再扩充。所以说我们在做构架的时侯,一定要把底层的基础组件做好,方便之后扩充,但是刚开始的时侯留出一些插口,并不实现它,将来游戏业务的发展,再逐渐扩充。当然,如果前期设计的不好,后期业务扩充了,但构架没办法扩充,只能加班加点弄了。

面对庞大的数据量我们想起的惟一个解决方案就是分而治之,即选用分布式的方法去解决它。把紧凑独立的功能单独拿出来做。分担至不同的数学服务器里面去运行。而且做到可以动态扩充。这就须要我们考虑好模块的界定,尽量要业务独立,关联性低。

前期,由于游戏还要早日上线,开发周期短,我们还要把服务尽早的跑上去,这个时侯的目标应当是尽早完成检测版本开发,单台服务器支持的数量可以稍稍低一些,但是当数量下跌时,我们可以能过多开几组服务来支持新增跌的用户量,即可以平衡扩充就可以了。到后期我们再把详细的模块单独拿出来支持,比如前期逻辑服务器上包括:活动,关卡,背包,技能,好友管理等。后期我们可以把好友,背包管理或其它的单独做一个服务进程,部署在不同的地理服务器底下。我们先按分区的服务进行设计,后面在布署的时侯可以布署为世界服务器,下面是一个前期的构架图,下面我们从每位服务器的功能说起:

游戏服务器

1,登陆管理服务

负责用户的登录验证,如果有注册功能的话,也可以置于这儿。一般相机游戏直接走sdk验证。网页游戏跟客户端游戏会有注册功能,也可以叫用户管理服务。

1.1 用户登录验证负责接收客户端的用户登录恳求,验证账户的合法性游戏服务器,是否在黑名单(被禁言的用户),是否在白名单(一般是检测账户,服务未开启时也可以步入)。如果是sdk登录,此服务向第三方服务发起反弹恳求。

1.2 登陆安全加密使用加密的传输合同,见通讯合同部份。

服务和连接的外围应用配置器_服务评分器_游戏服务器

1.3 是否在白名单内白名单是给内部检测人员使用的,在服务器未开启的状态下,白名单的用户可以提早踏入游戏进行游戏检测。

1.4 判断是否在黑名单黑名单的用户是严禁登入的,一般这是一些被禁言的用户,拒绝登录。

1.5 登陆验证服务器使用公钥揭秘密码,进行验证,如果是sdk登录,则直接向第三方服务发起反弹。

1.6 登陆兵符(token)生成当用户登录验证成功以后,服务器端还要生成一个登录兵符token,这个token具备时效性,当用户客户端领到这个token以后,如果在一定时间内没有登入游戏成功,那么这个token将失败,用户须要从新申请token,token储存在登入服务这,向外提供用户是否已登录的插口,其它服务器想验证假如是否登录,就拿那种服务收到的token来此验证。

1.7 显示用户角色信息当用户登录成功以后,显示近期登录的角色信息。

2,显示公告

用户登录成功以后,请求公告服务器,获取最新的公告,公告服务先按照token跟Userid验证用户是否已登录,公告有或许按照渠道的不同,显示不同的公告。所以 公告一定是要可以按照渠道编辑的。

3,选区服务

服务和连接的外围应用配置器_游戏服务器_服务评分器

当用户登录成功以后,请求服务器分区列表服务器,显示当前所有的大区列表。

3.1 验证用户是否已登录向登录服务器恳求验证是否已登录。

3.2 大区列表显示大区列表信息中只显示大区id跟大区名称。这样做是为了安全考虑,不一次性把大区对应的网段ip跟端口显露下来,也可以提高网路的传输量。

图说天下

×
织梦二维码生成器