模块七:王者荣耀商城异地多活架构设计
【需求】:王者荣耀异地多活架构模拟设计
【业务数据】
2020.11 月公布数据,全年日均活跃 1 亿,注册玩家数 6 亿,最高同
时在线 100 万。
【业务功能】
1. 点券充值;
2. 消费(点券、金币、钻石、积分四种游戏货币);
3. 积分获取;
4. 限时购买;
5.商店商品刷新;
6.打折、优惠券等。
【关键业务约束】
1. 英雄、皮肤只允许购买一次;
2. 多种游戏货币结算;
3. 限时商品只允许在指定时间可以购买;
4.限次礼包,在指定时间内只能购买最多限制次数;
【设计步骤 1 - -业务分级】
核心业务:充值、消费
【设计步骤 2 - -数据分类】
充值
1、依赖 QQ 钱包和微信支付功能,本身要做收单功能;
2、充值记录,只会新增不会修改,每条充值记录只有一个全局唯一的充值订单 RoleID;
3、充值积分奖励记录,类似充值记录,有一个订单 ID 相关的积分记录 RoleID;
消费
1、只有正向交易,不存在退货退款,因此消费记录只会新建,不会修改
2、每次消费行为创建一条全局唯一的消费订单 RoleID;
3、消费方式有四种货币方式,对应的每个用户应该有四个虚拟货币账户;
【设计步骤 3 - -数据同步】
充值订单 RoleID、积分记录 RoleID、消费订单 RoleID 都是只新增不修改,,主主同步即可;皮肤、英雄数据只有两种状态即有没有,适合用主从同步,数据修改量较小,加消息队列加快同步速度;
【设计步骤 4 - -异常处理】
充值
1、qq 钱包、微信支付故障
直接挂公告,暂停充值;
2、充值未到账
A:每日对账,批量处理
B:人工审核,手动调账
消费:
1、优惠券没有抵扣成功
送用户一点补偿,优惠券或点券
2、限时商品购买异常
1、再次开放限时商品购买;2、后台人工操作购买
【王者荣耀异地多活架构示意图】
版权声明: 本文为 InfoQ 作者【ifc177】的原创文章。
原文链接:【http://xie.infoq.cn/article/1c847aa8ea8b98d4246c84146】。未经作者许可,禁止转载。
评论