共计 1648 个字符,预计需要花费 5 分钟才能阅读完成。
2020 年 11 月 1 日晚,《王者光荣》官网发表 2020 年日沉闷用户数日均 1 亿,成为国内乃至寰球首个日均 DAU 过亿的手游。与此同时,腾讯云 TcaplusDB 作为《王者光荣》的数据库服务产品,成为寰球首款反对过亿 DAU 游戏的数据库。
任何一款游戏的胜利都不是偶尔的,《王者光荣》在保障游戏的挑战性、趣味性和多样性上做了很多功夫,仅零碎就有几十个,包含战斗零碎、玩家零碎、铭文等。目前,《王者光荣》的后盾数据量已高达数百 TB,1 个区有 100 多个表且还在一直减少。这就以致了《王者光荣》对数据库性能、稳定性、扩缩容、老本、游戏特有场景等方面有着更高要求。
对于《王者光荣》而言,数据库是灵魂,承载着所有零碎的信息落地,而专为游戏而生的腾讯云自研分布式 NoSQL 数据库 TcaplusDB,5 年来始终为《王者光荣》的外围数据提供数据库服务。能够说,每一次的玩家登陆、每一局的对战、每一轮的录像回放都是对 TcaplusDB 的考验,每一次的团战都须要在海量的数据中进行增删改查。
“咱们比照过很多数据库,在目前王者的数据容量和并发条件下,TcaplusDB 的读写时延是最稳固的!”《王者光荣》相干技术负责人评估道。在他看来,TcaplusDB 高并发、低时延、低成本的性能劣势为《王者光荣》的数据运行和游戏业务场景提供了强劲撑持。
具体来说,TcaplusDB 领有靠近有限的程度扩大能力。基于 shard 分片的分布式技术,其单表容量能够反对 2.56 PB,吞吐能力随硬件裁减呈线性增长。同时,通过快慢申请拆散与记录级锁,它能够解决简单申请和简略申请的隔离,缩小锁定范畴晋升读写效率。此外,基于翻新算法,TcaplusDB 能够在一个过程中实现冷热数据的替换,解决跨过程数据交换的一致性、可用性与治理简单等问题。
从游戏业务场景的角度登程,TcaplusDB 反对表级和记录级的数据生命周期治理,可能无效实现流动数据的过期清理。此外,基于冷备数据和二进制日志数据,TcaplusDB 还能够针对全服级、表级、记录级或依照指定条件进行回档,且工夫准确到毫秒。
另一方面,面对海量增长的用户数,零碎稳固和扩容始终是《王者光荣》的关注焦点。
不论是每年的“开黑节”、春节期间的 DAU 上涨还是 5 周年庆的计划性扩容,TcaplusDB 都能在应答频繁扩容需要的同时确保着 5 个 9 的高可用性。
2020 年春节,TcaplusDB 陆续对各个大区 7 个表进行了 15 次扩容,扩容集群服务只减少了 20 组。最初一次扩容,在 1 小时内实现了突增 100 万 -200 万 PCU 扩容,且在扩容过程中玩家无感知。
这是个简直不可能实现的工作,但 TcaplusDB 交上了满分答卷。它是怎么做到的?
首先是了解利用的主动负载平衡和过载爱护。以过载爱护为例,TcaplusDB 能站在“游戏服务器”的视角感知业务过载,通过解决时延、队列长度、成功率等指标综合评估数据库的负载能力,对高负载利用进行爱护,避免雪崩产生。
同时,TcaplusDB 针对打算内扩容和计划外扩容,提出了不同的解决方案,依据理论状况随机应变,灵活处理,并通过对可用区故障的主动切换与修复,在技术上反对跨可用区和单设施的故障主动切换和修复,既保障了扩容的速度和效率,又做到对玩家的齐全无感。
值得一提的是,这不是首次面对这样的挑战。早在 2017 年春节期间,TcaplusDB 就经验了间断七天的深夜扩容,在零碎能力有余的状况下,通过开启读分流躲避计划,胜利度过高峰期。S 赛季期间,因为玩家想看的赛季场数超过最后设计的 10 场,TcaplusDB 是进行了大规模改表构造,紧急反对表构造批改对用户无感计划。
历经腾讯外部 8 年的游戏教训积攒,TcaplusDB 数据库已广泛应用于《王者光荣》、《刺激战场》、《穿梭前线》、《火影忍者》等数百款风行游戏,并通过腾讯云向寰球游戏业务提供服务。
将来,随着以《王者光荣》为代表的手游市场迈入新台阶,腾讯云数据库也将继续投入资源以丰盛游戏行业的技术产品生态,一直晋升综合服务能力,助力手游市场高质量快速增长。