作业七 - 王者荣耀商城异地多活架构设计
作业:王者荣耀商城异地多活架构设计 【背景】 假设现在决定要实现王者荣耀里面的商城的异地多活架构,请你分析设计一下。 【作业要求】
分析王者荣耀商城的业务特点,设计其异地多活架构;
按照模块 7 第 5 课的方法来设计异地多活架构。 【提示】
王者荣耀的商城是虚拟物品商城,和淘宝这种实物电商有两个很大的区别,注意识别出来;
用户要先调用微信钱包或者 QQ 钱包充值点券,然后在商城里面用点券支付;
用户买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买;
用户买鲜花、改名卡之类的道具可以买多个;
分析步骤参考模块 7 第 6 课的案例。
作业回答:
商城主要业务及其数据分析
商城数据分析及分类
点券余额,已购买商品(两类商品:不可重复购买的商品,可重复购买的商品),购物车,
数据特点
点券:通过微信等第三方充值,第三方有充值记录,故充值记录可通过第三方再次获取;消费记录在本系统;
商品:
因是虚拟物品,故无库存说法;
商品销售根据业务要求,区分为两类商品:不可重复购买的商品,可重复购买的商品;
商品购买记录记录在本系统中;
商品 ID 可根据购买记录和算法重新生成;已购商品 ID 只会新增不会修改和删除;
商品是否有效标识(如改名卡是否已使用等),可根据商品使用流水来重新生成;
购物车:用户收藏或加购的商品,在极端情况下全部丢失也不影响核心业务;
数据分类及同步方法
异常处理
点券充值结果还没有同步到异地机房,用户点券余额没有增加,无法购买商品怎么办?
回答:第一种,向第三方如微信和 QQ 钱包再次获取充值结果,与本地充值记录合并完毕后,用户即可正常使用; 第二种,如向第三方获取充值记录难度较大,则可考虑人工事后补偿数据;
点券消费结果还没有同步到异地机房,用户点券使用超额怎办?
回答:业务上允许用户这么操作,让用户感到”占便宜“了。
已购商品数据尚未同步到异地机房,用户无法使用怎么办?
回答:第一种,根据商品购买记录重新生成已购商品 ID,让用户正常使用; 第二种,如商品购买记录也丢失一部分,则考虑人工事后补偿用户;
购物车尚未同步到异地机房,用户看不到最新的购物车数据怎么办?
回答:用户重新添加商品进入购物车即可;
商品使用记录尚未同步到异地机房,用户本来已使用过商品,但系统中显示未使用过怎么办?
回答:不可重复购买的商品,如英雄皮肤等,用户再次使用即可;可重复购买的商品,如鲜花改名卡等,业务上允许用户这么操作,让用户感到”占便宜“;
系统架构图如下
评论