全服匹配:系统随机将一些玩家分到一组。 常规匹配流程图 缺陷 异步过程 集群治理:负载均衡、数据容灾 数据缓存:数据冲突 开发和部署复杂,分布式的必然 两级匹配流程图 核心
全服匹配:系统随机将一些玩家分到一组。
常规匹配 流程图 缺陷- 异步过程
- 集群治理:负载均衡、数据容灾
- 数据缓存:数据冲突
- 开发和部署复杂,分布式的必然
核心:两级匹配机制(本地匹配+云端匹配)
区别- 报名数据存储在gameserver,利用了gameserver天然的分布式
- 匹配算法运行在两个地方:本地gameserver进程和云端的matchserver进程
- matchserver无状态
- matchserver只执行匹配逻辑,周边逻辑都在gameserver
- gameserver对matchserver无依赖
- gameserver短路了大部分的匹配请求
- gameserver可以对数据进行分级路由
- matchserver开发和部署都很简单,单体应用
- matchserver可以按照功能拆分进程
第一种匹配算法是一种常规的实现,大包大揽。分布式的典型实现。
第二种匹配算法是一种两级执行,第一级是游戏逻辑进程内的匹配,在第一级匹配随着参与人数的增长,第一级匹配效率会越来越高,所以到了第二级匹配的人数会比较固定,不会随着负载的增加而增加。
第二种的优势:
- 本地和云端结合,数据分级,匹配效率高。
- matchserver提供主动式服务,gameserver对它没有依赖性。
- matchserver不存储数据和状态,若故障不影响业务正常功能。
逆向思维
化整为零
Refer全民飞机大战:全区全服模式下的分布式解决方案
分布式游戏服务器全服匹配玩法设计