服务器架构之大厅

 

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

  • 登录,注册,
  • 网关选择,
  • 用户身份验证,
  • 版本管理,
  • 区列表管理。
  • 公告显示等。

从架构上来讲,大约以下图:web

 

 

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

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

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

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

 


QQ群交流:66728073,更多文章:http://www.coc88.com;公众号:架构

相关文章
相关标签/搜索