当前位置:文档之家› MMORPG服务器端架构和设计

MMORPG服务器端架构和设计


⑧ ⑨⑩
生成 令牌



角色数据库
⑤ 获取角色列表 ⑥ 向玩家反馈角色信息 ⑦ 玩家选择角色
网关服务器
④ ⑦ ⑥ ①
⑧ 玩家ID信息& 玩家位置信息等
⑨ 根据规则,提议地图服务器 ⑩ 加密用户ID & 地图服务器ID, 生成令牌

游戏玩家
⑾ 选择地图服务器,最后回应
MMORPG服务器端设计
服务器端工作流
逻辑地图 服务器1
逻辑地图 服务器N
逻辑地图 服务器1
逻辑地图 服务器N
角色数据库1
网关服务器1
网关服务器N
角色数据库N
聊天服务器
登陆服务器
账户数据库
游戏玩家
游戏玩家
MMORPG服务器端设计
服务器端工作流
用户登陆
① 使用帐户、密码,发出请求
黑名单
掩码 过滤表
② 黑名单、掩码过滤 ③ 允许/拒绝 ④ 账户、密码有效?
游戏循环 用户群
网格数据管理 玩家加入 玩家离开 玩家移动 周围玩家
逻辑地图 服务器1 逻辑地图 服务器2
循环1
角色列表1
数据
角色列表2
循环2
网关 服务器
同步
逻辑地图 服务器N
地图数据库 (可选)
角色列表n
循环n
MMORPG服务器端设计
服务器架构
地图服务器
MMORPG服务器端设计
服务器架构
参见ascent.conf: <WorldDatabase Hostname = "localhost" Username = "root" Password = "" Name = “TestWorldDB" Port = "3306" Type = "1"> <CharacterDatabase Hostname = "localhost" Username = "root" Password = "" Name = “TestCharacterDB“ Port = "3306" Type = "1"> 地图服务器
请求队列 …… …… …… ……
请求队列
第二次请求
请求代理 令牌 用户ID 游戏玩家
玩家n结算
空闲索引 队列 B
保存 角色服务器
载入
日志服务器 (可选)
MMORPG服务器端设计
服务器架构
网关服务器
MMORPG服务器端设计
服务器架构
网关服务器
MMORPG服务器端设计
服务器架构
网格 数据
地图服务器
MMORPG服务器端设计
服务器架构
地图服务器
MMORPG服务器端设计
服务器架构
地图服务器
MMORPG服务器端设计
服务器端部署
服务器个数: 1
方案1
● 低成本 ● 低性能
逻辑地图 服务器1
逻辑地图 服务器N
聊天服务器
网关服务器
角色数据库 账户数据库
登陆服务器
游戏玩家
游戏玩家
—— 单台服务器
MMORPG服务器端设计
MMORPG服务器端设计
服务器架构
登陆服务器
MMORPG服务器端设计
登陆服务器
严格讲不属于登陆服务器一部分,只是为找到 登陆服务器作准备。
MMORPG服务器端设计
服务器架构
登陆服务器
MMORPG服务器端设计
服务器架构
登陆服务器
参见Logonserver.conf文件: <LogonDatabase Hostname = "localhost“ Username = "root“ Password = "“ Name = “TestLogonDB“ Port = "3306“ Type = "1">
地图服务器
网关服务器 数据库服务器 登陆服务器
对话服务器 账户服务器 日志服务器
游戏玩家
游戏玩家
MMORPG服务器端设计
服务器架构
登陆服务器
DoS 检测
游戏玩家
令牌生成
账户收支
黑名单
网关代理
授权
认证
请求队列 …… …… …… …… 请求队列
第一次请求
请求代理 账户 密码 游戏玩家
掩码认证
账户数据库
服务器端部署
服务器个数: 5
方案2
● 中等成本 ● 普通性能
逻辑地图 服务器1
逻辑地图 服务器n
聊天服务器
网关服务器
角色数据库 账户数据库
登陆服务器
游戏玩家
游戏玩家
—— 单台服务器
MMORPG服务器端设计
服务器端部署
服务器个数: 5+N (N>=1)
方案3
● 高成本 ● 高性能
逻辑地图 服务器1
逻辑地图 服务器N
网关服务器
进入游戏
① 使用令牌,发出请求 ② 用户ID是否在角色列表
数据
同步
③ 是则处理,否则等待 ④ 地图服务器处理或等待
角色列表
⑤ 客户端随机请求 ⑥ 服务器端随机回复 ⑦ 其它玩家信息间歇性请求
数据


地图服务器
网格信息
同步
⑧ 其它玩家信息间歇性回复



⑤ ④

游戏玩家
聊天服务器
网关服务器
角色数据库
登陆服务器
账户数据库
游戏玩家
游戏玩家
—— 单台服务器
MMORPG服务器端设计
服务器端部署
—— 单台服务器
M —— 服务器集群数
商业方案
服务器个数: 3+M*(2+N) (M>=1,N>=1)
N —— 集群地图服务器数
● ● ● ● ●
支持大规模玩家 高成本 高负载均衡 高性能 高灵活性

账户收支



账户数据库
⑤允许/拒绝 ⑥ 是否有账户余额? ⑦允许/拒绝
登陆服务器


令牌 生成


⑧ 加密用户ID,生成令牌
⑨允许/拒绝, 最终回应

游戏玩家
MMORPG服务器端设计
服务器端工作流
选择玩家
① 使用令牌,发出请求 ② 空索引队列?
空索引队列
③ 是否存在空位 ④ 请求账户角色列表
网关代理 规则
MMORPG服务器端设计
服务器架构
登陆服务器
MMORPG服务器端设计
服务器架构
登陆服务器ຫໍສະໝຸດ MMORPG服务器端设计服务器架构
角色队列
网关服务器
DoS 检测 令牌
索引 队列A
空闲索引 队列 A 玩家1角色A 玩家1角色B 玩家1角色C
游戏玩家
地图 代理 玩家n角色A 玩家n角色B 索引 队列B
角色认证
--架构设计和开发基础
MMORPG服务器端设计
■ ■
■ ■
服务器端设计目标 服务器端架构
服务器端实现 服务器端工作流
MMORPG服务器端设计
服务器端设计目标
● 低系统配置 ● 低学习曲线 ● 高稳定性 ● 高性能 ● 高适应性 ● 跨平台支持
MMORPG服务器端设计
服务器端架构
服务器集群 地图服务器
相关主题