博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
服务器架构之大厅
阅读量:4968 次
发布时间:2019-06-12

本文共 740 字,大约阅读时间需要 2 分钟。

 

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

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

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

 

 

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

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

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

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

 


QQ群交流:66728073,更多文章:;公众号:

 

转载于:https://www.cnblogs.com/wgslucky/p/9092692.html

你可能感兴趣的文章
JavaScript 图表库 xCharts
查看>>
Android项目的目录结构
查看>>
C++中“引用”的底层实现
查看>>
Spring Cloud与微服务构建:微服务简介
查看>>
Babel 是干什么的
查看>>
cocos2dx-3.0(8)------Label、LabelTTF、LabelAtlas、LabelBMFont使用之法
查看>>
CODE[VS] 1842 递归第一次
查看>>
20180418小测
查看>>
数字三角形
查看>>
NGUI 减少drawcall规则
查看>>
三元表达,匿名函数
查看>>
前端笔记-基础笔记
查看>>
【LeetCode & 剑指offer刷题】查找与排序题6:33. Search in Rotated Sorted Array(系列)
查看>>
GNU/Linux超级本ZaReason Ultralap 440体验
查看>>
将github上托管的代码 在我的域名下运行
查看>>
【Manthan, Codefest 18 (rated, Div. 1 + Div. 2) C】Equalize
查看>>
【codeforces 767A】Snacktower
查看>>
【MemSQL Start[c]UP 3.0 - Round 1 C】 Pie Rules
查看>>
Ognl中“%”、“#”、“$”详解
查看>>
我对应用软件——美团的看法
查看>>