编辑: 黑豆奇酷 | 2019-07-06 |
1 1. 概述 如今的 MMOG 仍然处于分区分服的状态,更糟糕的是,由于其中大部分仍在使用低效的同 步IO 伺服模型,因此每台服务器能够支撑的最高并发数被限制在仅仅几千并发连接.有鉴于此, 本技术方案将从单点性能到 HPC、HAC 集群两方面对此局面进行整体改进. 1.1 服务器单点性能 单点性能方面,使用汇编和异步 IO 进行了优化,通过 DMA+硬件中断实现内存
0 拷贝的高 效网络伺服.性能、可靠性和可伸缩性都很强,可在
2011 年出厂的单台至强
5600 入门级 1U PC Server 上实现上千万 TCP/HTTP 并发连接及实时组播支持,详见:单点支撑千万量级并发的高 效IO 服务器组件. 单点并发 IO 能力的巨大提升使得服务器瓶颈从 IO 并发限制转移到了 CPU、 内存等现代硬件 资源较充沛和廉价的计算资源(游戏服务器中通常有大量角色逻辑和物理仿真计算)上.这大大 提高了服务器的整体性能. 作为实例, 俄罗斯游戏开发商 Wargaming.net 采用了异步 IO 的网游 坦 克世界 在2011 年就实现了单服
25 万玩家同时在线的性能指标(http://games.qq.com/a/2011120 9/000503.htm). 这就说明,在实施了恰当优化后,完全可以实现单服玩家同时在线达到十万至百万量级(取 决于服务器配置、 游戏逻辑复杂度以及脚本化程度等因素) 的目标. 比起目前业界普遍受限于 阻塞IO+每进程/线程一连接
2000 至5000 并发极限的低效模式,可提供数千乃至数万倍的负载能 力提升. 1.2 服务器集群 对比精益求精、美轮美奂的客户端,服务器端架构一直是网游产品的传统短板:即使是强如 《魔兽世界》(http://www.battlenet.com.cn/wow/zh/status)、《英雄联盟》(http://lol.qq.com/act/ a20150326dqpd/)、《天涯明月刀》(http://wuxia.qq.com/server.shtml)这样国际和国内顶尖级的 网游产品,也仍然沿用着分区分服、 单打独斗 的老旧架构. 相较于传统的分区分服模式,HAC+HPC 分布式集群对 MMOG 来说,有如下优势: 1. 统一的大世界:所有服务器彼此连接成为一个大世界,玩家可以在大世界中自由探索、 漫游和冒险,和所有其它玩家互动和交流.不再被分割在不同服务器孤岛小世界中(不 同服务器间无法彼此互动) ,也不再需要为选择服务器而烦恼. a BaiY product 分布式网游服务器集群概要设计
2 当然,即使在统一的大世界中,仍可对其中部分地图(或其中某些特殊实例)实行以等 级或其它条件为标准的准入机制,或在某些地区实施 等级差异过大则禁止动武 之类 的特殊限制,已达到新手保护、VIP 专享等目的. 2. 动态负载均衡(HPC) :提供优秀的可伸缩性和横向扩展能力,不同服务器之间可动态 地均衡负载.不会出现有些服务器负载很高,有些则处于轻载状态的尴尬情况,这有以 下好处: a) 节省运营成本:负载均衡化使得原先需要
200 台独立服务器节点才能支撑的业务如 今只需要
100 台甚至更少节点组成的分布式集群即可支撑. b) 提升用户体验:不再因为部分服务器负载过高导致玩家出现卡顿、掉线等不良游戏 体验. 3. 多活 IDC 高可用(HAC) :抗脑裂(Split Brain)的多活 IDC 架构确保即使集群中多个 服务器节点同时宕机,甚至整座 IDC 由于市政施工、自然灾害、人为故障等原因下线, 也可自动实时完成故障转移(Failover)和故障恢复(Failback)等动作,为玩家提供透 明的高可用服务体验. 4. 支持非常复杂的世界观,例如:每玩家、每工会一个专有 minecraft 小世界.Minecraft 类的沙箱环境允许玩家从原子级别从头定义属于自己的虚拟世界.将这样复杂和自由的 世界观 MMOG 化需要只有通过分布式计算才能承担的大量计算资源. 其它如宏大的虚拟游戏世界、1:1 克隆真实城市或地区等情形也是类似,总的来说:玩 家自由度越大、仿真程度越高的世界,对运算和存储能力等资源的需求也就越多――但 这样的世界往往更加精彩纷呈.而单点的性能总有天花板(在考虑高端硬件的性价比后 就更是如此) .为此,从单点各自为政到分布式集群计算的转变将不可避免. 5. 山寨防护:统一的大世界和复杂的世界观都需要依赖高性能的分布式服务器计算集群来 实现,这在客观上大大增加了游戏被竞争对手模仿和抄袭的难度.这对山寨文化横行的 国内游戏市场来说,显然尤为重要. 此外,合理利用《白杨应用支撑平台》中的强加密通信组件和支持实时(on-the-fly)数 据压缩和强加密的虚拟文件系统(VFS)等相关功能模组,还可大大增加网络协议的分 析难度,同时加强对存储于客户端和服务器端磁盘数据的安全保护.这无疑可进一步提 升敌手对产品进行分析、破解和抄袭的难度. 我们在分布式计算集群的架构和实现方面,拥有构建大规模分布式高性能(HPC)和高可用 (HAC) 计算集群的丰富经验――依托于我方成熟的 μSOA 大规模分布式架构, 以及与之配合的, 基于抗脑裂(Split Brain)多数派算法的,高可用,强一致分布式故障检测、服务发现、服务选举、 分布式锁等分布式协调服务和消息分发与路由服务(BYPSS)等组件.我方可提供非常成熟可靠 的HAC+HPC 游戏服务器集群解决方案,详见:强一致多活 IDC 高可用(HAC) 和高性能(HPC) a BaiY product 分布式网游服务器集群概要设计