游戏服务器架构之大厅

大厅就是一个房间的入口。对于游戏服务器来说就是一个用户进入游戏的入口。他的主要功能一般有

登陆,注册,

网关选择,

用户身份验证,

版本管理,

区列表管理。

公告显示等。

从架构上来说,大约如下图:


图1


大厅是为了游戏后面的内容服务器的。所以有些通用的功能会在这里实现。为了增加效率,登陆之后的用户信息可以在这里进行缓存。以增加处理登陆的效率。用户登陆之后,会在这里生成token,用于网关的验证。流量限制是为了防止请求过多对服务器造成过大的压力,比如限制一分钟这内最多五千次访问等。如果游戏是分区的,这里还要返回区列表。

另外一个主要的功能是网关的选择。估且叫网关管理模块吧。它负责统计网关的连接数量,对网关的连接进行负载均衡。最好是同一个用户id都会返回同一个网关的ip,比如使用id求余法。为了动态调整不同网关的负载量,可以给每个参与选择的网关配置一个权重。负载小的网关权重可以高一点。当然,大多数量的游戏一个网关就足够了,这样设计一般是为了扩展性。

大厅一般使用短连接开发,因为大厅不需要和客户端长期交互,执行完相应的功能之后就不再联系了。所以大厅一般是一个web服务。和客户端使用http协议交互。这样的好处是可以利用很多现成的web框架比如开发框架springmvc,负载工具nginx,加快开发速度。此服务和数据库的交互不直接操作数据库,而是通过rpc,请求数据服务(Dao服务)。这样方便对数据库的管理,以及以后的分库分表。

版本管理主要是对客户端的版本进行验证,判断客户端的请求版本是否是当前服务器支持的版本。



QQ群交流:66728073,更多文章:http://www.coc88.com

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,408评论 19 139
  • 凌晨四点,安安离开了。 少爷说老朋友,累了就休息,我们陪着你。 叶子,常春藤上的叶子。等最后一片掉落下来,我也得去...
    玉宇笙寒阅读 1,690评论 0 0
  • 三 昧 真 火 自 虹 化~古月禅师 三昧即为排除一切杂念,使心神平静。又可说是三摩提,三摩帝或三摩地,谓之静心入...
    真一重九阅读 7,779评论 0 1
  • 找了一个大神画的美女素描,开始信心满满的继续画人物。第一次,画到七八成的时候,看着灰蒙蒙的表情怪异的小姐姐。。。。...
    珰珰猫阅读 4,738评论 2 51
  • 一句:嗨,你好吗?期待已久,一句:你好就好!感动许久。 岁月经年,友情积淀,只愿仍如初见! 容颜易老,记忆犹新,但...
    myth神话阅读 3,757评论 0 4