从新手游上线看游戏数据库选型
从新手游上线看游戏数据库选型
最近我们深入游戏场景,参与支撑一个全新的手游项目上线,交流中发现经验丰富的游戏架构师都比较认可一个观点:游戏业务设计离不开一款靠谱的 KV 数据库。
这款游戏项目定位是爆款精品,有长期运营规划,因此在前期开发阶段就锁定了合适的“主数据库”选型——华为云 KV 数据库 GaussDB(for Redis)。
回顾这次项目,我们总结了游戏业务对数据库的部分关键诉求:
1.注重玩家体验,对 KV 数据库稳定性要求很高
这款游戏预计上半年会达到日活数百万 DAU,目前核心的玩家数据都使用 KV 数据库存储。一旦数据库发生不可用,很可能大量玩家无法进入战斗房间。
在稳定性方面,GaussDB(for Redis)能力领先,在 3 可用区架构下,可靠性极高。研发团队很早以前就已经对集群管理做了大量可靠性加固工作,极端场景下,即使集群发生大半数节点故障,客户的业务也可以在数秒内快速恢复,完全不会造成大规模玩家体验受损。
稳定性能力是需要持续打磨的,华为云研发团队还在继续对 GaussDB(for Redis)集群管理架构进行优化,以实现极致的快速恢复。
2.考虑长期运营,数据存储成本要可控
其实业界有很多游戏公司都会用 KV 库存玩家数据,这里最常用的是自建开源 Redis,在 GB 级的数据量下,这个方案没有不妥,但一旦考虑到长期运营,开源 Redis 纯内存成本是直线上涨的,例如:16GB 成本需要 1500,后期扩容到 32GB 需要 3000,一年后到了 320GB 就要 30000。在成本痛点诉求下,业务方肯定会寻求最合适自己业务的存储选型。
这次的项目里,GaussDB(for Redis)就是最适合游戏业务的 KV 数据库。存储池成本远比纯内存低,客户可以放心长期存,这个游戏放在华为云 3 年、5 年、10 年,客户都不必担心将来的成本问题,可以放心聚焦到游戏自身的运营和质量打磨上。
3.资源弹性,活动前后能够无感扩缩容
游戏首发只是个开头,长期运营中,会给玩家举办各类节日活动。这时候就要求数据库能够弹性伸缩。GaussDB(for Redis)存算分离架构最具特色的就是:秒级扩容。使用华为云 GaussDB(for Redis)后,游戏客户完全可以这样操作:
(1)周五晚上扩一波资源,在线扩就行,对业务影响极小;
(2)周末做活动抗住大数据量、大流量,确保活动顺利;
(3)等到周一活动热度过去,进行一把在线缩容即可。
这里面涉及到很多的技术设计,比如秒级扩容,其基本原理如下:
GaussDB(for Redis)计算资源、存储资源都支持独立扩展:
这次游戏上线很成功,GaussDB(for Redis)强力保障了客户业务稳定高效运行。今年 GaussDB(for Redis)产品和研发团队会继续加强投入,力争在稳定性、使用体验上有进一步的提升,为更多业务架构带来更优的解决方案。
评论