服务器组架构(研发)
来源:互联网 发布:产学研合作协议 软件 编辑:程序博客网 时间:2024/05/16 19:55
之前一段时间公司派我去其他地方出差, 由于网络不方便没有更新博客.
这篇阐述一下服务器端的总体架构.
总体架构:
一个游戏世界(game)由以下进程组成 Center*1 + DB*1 + World*1 + Bridge*1 + Map*n + Gate*n 组成.
一个大区由n个游戏世界组成(game), 每个区有一个 Login.
game 内部:
Center 负责接收其他进程的连接, 并为之分配id, 并指导它们相互连接.
DB负责game内部的游戏数据存储策略,需要的数据向其申请读取, 存储等.
Map是地图服务器, 一个游戏有多个用于增加负载. 每个Map管理一张地图或一张地图的一部分区域.
World负责game内部逻辑总管理, 管理所有Map, 以及公共的资源, 比如 队伍, 工会等.
Gate负责接受Client的连接, 并为之提供稳定的数据传输.
Bridge 桥接服务器, 用于管理地图中的跨进程问题. 最常见的是: 一张地图由2个以上的Map管理, 地图上的玩家,怪物数据之间做无缝隙处理.
大区内:
一个大区有一个Login, 每个game 中的Center 连接这个Login, 并把此game中的Gate信息传送到 Login.
游戏连接情况:
game 内其他进程都连接 Center, Center给他们分配id, 并指导其相互连接. 连接情况如下:
Center->Login,
DB->Center,
World->Center, World->DB,
Bridge->Center,
Map->Center, Map->World, Map->DB,Map->Bridge
Gate->Center, Gate->DB,Gate->Map(每一个Gate都需要连接所有的Map),
游戏登录:
Client->Login , Client先选择要连接的大区, 再连接到此大区的Login, 在Login上选择要连接的game, Login根据此区内的
Gate的负载情况给出Client需要连接的Gate信息.
Clinet->Gate, 在Gate实现登录(Gate访问DB数据), 并根据地图数据进入Map(在Map上生成实例).逻辑实际是在Map上运行.
服务器进程内架构:
一个进程有多个Block, 继承自LogicBase, 分别实现不同的功能模块, 分为: 连接模块, 管理模块, 逻辑模块.连接模块实现连接管理,
一个进程有一个Server, 继承自 ServerBase. Server 管理多个Block.
下一篇我将阐述 进程内 的架构以及功能.
- 服务器组架构(研发)
- 三角形研发架构
- 础架构研发
- 网游服务器研发要求
- 自建CDN研发团队架构
- 软件研发工程架构设计
- 服务器开发架构 讨论组
- RTMFP服务器的研发过程
- 服务器架构
- 服务器架构
- 服务器架构
- 服务器架构
- 服务器架构
- 服务器架构
- 服务器架构
- 服务器架构
- 服务器架构
- 分布式架构体系 - 自主研发思路介绍
- 快速排序算法里的partition函数
- yii 组件分页
- 在Android Studio中进行单元测试和UI测试
- 英语四六级做题方法
- MySQL忘记root登录密码怎么办(windows)
- 服务器组架构(研发)
- JAVA的StringBuffer类
- javaweb的Servlet
- 读书的层次
- springmvc post、get中文乱码
- 反编译9.png文件拉伸失真问题
- 操作系统--调度学习笔记(4)--多处理器和实时调度
- MATLAB入门教程之MATLAB的基本知识
- 【Linux4.1.12源码分析】vxlan报文发送之udp_tunnel_xmit_skb