写点什么

王者荣耀商城 - 异地多活设计

作者:邹玉麒
  • 2022 年 4 月 07 日
  • 本文字数:576 字

    阅读完需:约 2 分钟

背景

业务数据:2020 年 11 月,日活跃玩家 1 亿,注册完成 6 亿,最高同时在线 100W.

业务功能:完成通过微信支付,QQ 钱包支付充值点券,商城里的皮肤,英雄使用点券购买

业务约束:

  1. 登录后可购买

  2. 依赖微信支付,QQ 钱包,才能充值点券

  3. 每一个分区中只能购买商城里相同的英雄,皮肤只能购买一次,抽奖有 50 次限制,友好道具没有次数限制.

业务分级

商城是王者荣耀收入来源,一旦故障会影响收入,尤其是活动期间的冲动型消费较多,如果此时故障损失验证,还会对企业声誉有影响.故我们需要异地多活来保障商城系统的运营.

数据分类

商城涉及的数据有:游戏玩家 ID,游戏道具,点券余额,订单

数据量: 其中涉及到修改的数据只有点券和玩家道具仓库,按照日活 10%的玩家消费,每日 1000W 单,之前最高赵云 6 元皮肤销售额 2 亿,可估算日峰值 3000W 单.

一致性要求:玩家点券余额,皮肤,英雄,要求强一致性,仓库道具要求最终一致性

唯一性:订单 id,游戏玩家 id.

不可丢失:游戏玩家 ID,游戏道具,点券余额,订单

可恢复性:当发生故障时,可内部恢复.

数据同步

点券余额,皮肤,英雄:强一致性要求,我们可以采用两地三中心部署。

订单流水:采用数据库同步+消息队列同步。

鲜花,体验卡之类的道具:最终一致性,采用数据库同步+消息队列同步。

异常处理

点券余额,皮肤,英雄的购买采用 oCeanbase,即使故障也能做到 100%可用

鲜花,体验卡之类的道具发生故障是,数据没有同步过来时,时候补偿钻石~

架构示意图



用户头像

邹玉麒

关注

还未添加个人签名 2018.06.11 加入

还未添加个人简介

评论

发布
暂无评论
王者荣耀商城-异地多活设计_架构训练营5期_邹玉麒_InfoQ写作平台