游戏服务器架构文档
2016-09-09 15:49
176 查看
不少同学或朋友都问过我,Java做游戏服务器跟Java web有什么不同,趁着这次这个游戏差不多完工,我写了一个服务器架构的文档,当然,每个人都能设计不同的架构,有好的有坏的,我这里给的只是我个人的一种设计,其中哪些设计不合理,还请多指教。由于写文档用的服务器上搭建的showdoc,一种免费的在线文档系统,使用的md,于是我就直接copy到简书来了,不过文档中的敏感信息都处理了,游戏名就不透露啦,服务器的ip端口,账号密码,更是不能透露啦。这里就让那些还不明白游戏服务器的同学们,大致了解下服务器的架构
****服务器架构文档
一、服务器架构图
根据需求,可将服务器大致分为登录服务器、逻辑服务器、文件服务器、支付服务器、国战服务器和聊天服务器
1.服务器间进程通信
服务器之间的进程通信使用json-rpc,json-rpc的底层为短连接实现,通信为json数据格式
2.游戏服务器
服务器\属性 | 外网ip | 内网ip | 端口 | 管理端口 |
---|---|---|---|---|
登录服务器 | 127.0.0.1 | 127.0.0.1 | 0 | 0 |
文件服务器 | 127.0.0.1 | 127.0.0.1 | 0 | 0 |
国战服务器 | 127.0.0.1 | 127.0.0.1 | 0 | 0 |
支付服务器 | 127.0.0.1 | 127.0.0.1 | 0 | 0 |
逻辑服务器 | 127.0.0.1 | 127.0.0.1 | 0 | 0 |
聊天服务器 | 暂无 | 暂无 | 暂无 | 暂无 |
3.Redis服务器集群
服务器\属性 | 外网ip | 内网ip | 端口 | 密码 |
---|---|---|---|---|
Redis Sentinel集群 | 127.0.0.1 | 127.0.0.1 | 0 | 无 |
Redis主服务器1 | 127.0.0.1 | 127.0.0.1 | 0 | 123456 |
Redis从服务器1 | 127.0.0.1 | 127.0.0.1 | 0 | 无 |
Redis主服务器2 | 127.0.0.1 | 127.0.0.1 | 0 | 123456 |
Redis从服务器2 | 127.0.0.1 | 127.0.0.1 | 0 | 无 |
4.Memcache服务器
服务器\属性 | 外网ip | 内网ip | 端口 |
---|---|---|---|
Memcache | 127.0.0.1 | 127.0.0.1 | 0 |
5.MySQL服务器
服务器\属性 | 外网代理ip | 内网ip | 外网端口 |
---|---|---|---|
MySQL | 无 | 127.0.0.1 | 0 |
- 备注:开发阶段所有服务器部署在同一台物理服务器
二、逻辑服务器系统架构
其中,游戏逻辑服务器的系统架构如下:
- 游戏客户端为Cocos2d,与服务器交互采用Http通信,数据传输采用Json格式字符串
- 服务器端的网络层使用基于Netty实现的Http服务器
- 通过Netty接入客户端请求,根据请求数据中的协议号,调用服务器中相对应的逻辑模块
- 逻辑模块处理消息,若要处理游戏数据则调用Jedis或Hibernate处理,若触发某事件,则调用事件处理器
- 通过Netty的ChannelHandlerContext返回处理结果
- 客户端与服务器交互的数据通过XXTea+Base64进行加密处理
总结如下图:
三、服务器启动
服务器启动顺序如下:
- MySQL服务器
- Memcache服务器
- Redis Sentinel
- Redis Masters
- Redis Slaves
- 登录服务器
- 支付服务器
- 逻辑服务器
- 文件服务器
- 聊天服务器
- 国战服务器
相关文章推荐
- 游戏服务器架构文档
- 游戏服务器架构文档
- asterisk IPPBX 系统架构说明文档
- 游戏服务器架构(二)
- Angular 4官方文档(一)【架构】
- 深入浅出MFC文档/视图架构之视图
- 将在十一以后发表架构全过程文档
- 游戏服务器架构
- MFC单文档程序架构解析
- 系统架构文档设计
- 架构设计文档
- 深入浅出MFC文档/视图架构之相互关系1
- 文档、视图架构的应用
- 大型网站架构分析系列技术文档合集一
- MFC单文档架构解析
- Delphi MDI多文档架构几个问题解决
- ABP官方文档(二)【多层次架构体系】
- u-boot-2012.10 官方文档翻译--处理器架构和板类型的选择
- 3g上网卡的驱动程序的自动更新web端架构文档
- xml和xsd架构文档相关知识