作业 7
【背景】
假设现在决定要实现王者荣耀里面的商城的异地多活架构,请你分析设计一下。
【作业要求】
1. 分析王者荣耀商城的业务特点,设计其异地多活架构;
2. 按照模块 7 第 5 课的方法来设计异地多活架构。
【提示】
1. 王者荣耀的商城是虚拟物品商城,和淘宝这种实物电商有两个很大的区别,注意识别出来;
2. 用户要先调用微信钱包或者 QQ 钱包充值点券,然后在商城里面用点券支付;
3. 用户买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买;
4. 用户买鲜花、改名卡之类的道具可以买多个;
5. 分析步骤参考模块 7 第 6 课的案例。
业务背景
2020.11 月公布数据,全年日均活跃 1 亿,注册玩家数 6 亿,最高同时在线 100 万。
关键业务限制
用户登陆游戏后才能使用商场。
用户要先调用微信钱包或者 QQ 钱包充值点券,然后在商城里面用点券支付;
用户买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买;
用户买鲜花、改名卡之类的道具可以买多个;
业务分级
商场核心业务:充值、购买
数据分类
RoleID:第三方(微信/QQ)全局唯一
点券:和用户 RoleID、分区关联,全局唯一
商品信息:购买次数分类。英雄和皮肤是一类,只能购买 1 次。鲜花、改名卡之类的道具可以买多次。
库存:虚拟商品,并无库存
支付:依赖微信支付和 QQ 钱包
订单 ID:全局唯一,只新增不修改
订单 ID:每次新建,全局唯一,不会修改;
订单:和订单 ID 绑定,只会新建不会修改,订单中包含 RoleID、区服和购买物品。
数据同步
1. RoleID:只新增,不会修改删除,数据库同步
2. 点券:全局唯一,算法生成,无需同步
3. 余额:分布式一致性,数据库同步
4. 商品 ID:全局唯一,数据库同步
5. 商品信息:数据库同步
6. 订单 ID:全局唯一,数据库同步
7. 订单信息:全局唯一,数据库同步
异常处理
无法登陆?
客服介入,补偿,等待系统恢复,赔偿
无法充值点券怎么办?
客服介入,补偿,等待系统恢复,赔偿。
评论