架构训练营七 - 王者荣耀商城异地多活架构设计
【背景】
假设现在决定要实现王者荣耀里面的商城的异地多活架构,请你分析设计一下。
【作业要求】
1. 分析王者荣耀商城的业务特点,设计其异地多活架构;
2. 按照模块 7 第 5 课的方法来设计异地多活架构。
【提示】
1. 王者荣耀的商城是虚拟物品商城,和淘宝这种实物电商有两个很大的区别,注意识别出来;
2. 用户要先调用微信钱包或者 QQ 钱包充值点券,然后在商城里面用点券支付;
3. 用户买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买;
4. 用户买鲜花、改名卡之类的道具可以买多个;
5. 分析步骤参考模块 7 第 6 课的案例。
业务背景
【业务数据】
2020.11 月公布数据,全年日均活跃 1 亿,注册玩家数 6 亿,最高同时在线 100 万。
【业务功能】
1. 使用微信或者 QQ 账号登录游戏;
2. 对战:例如匹配、排位、巅峰赛;
3. 商城:购买英雄、皮肤、道具等;
4. 活动:领取各种奖励和道具;
5. 社区:各种攻略,视频等。
【关键业务约束】
1. 登录用户才能对战,才能商城购买;
2. 用户属于不同的区服,例如 Android 平台微信 22 区“刺客信条”,同一微信 ID 可以加入多个区服,俗称“大号”、“小号”;
3. 不同区服用户可以一起对战。
【业务特点分析】
1、商城是虚拟物品商城
2、用户要先调用微信钱包或者 QQ 钱包充值点券,然后在商城里面用点券支付
3、可以是用户向系统购买,用户直接也可以交易
4、用户买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买
5、用户买鲜花、改名卡之类的道具可以买多个
业务分类:
注册、登录、充值,商城浏览,商品介绍,商城订单,库存管理,订单结算,商品评价
设计步骤
业务分类
异地多活业务中需要保障的核心业务:登录,商城订单,库存管理,订单结算
数据分类
【登录】
1. 依赖 QQ 和微信账号授权登录,本身无需登录信息;
2. 微信和 QQ 授权登录会返回给王者荣耀全局唯一 RoleID;
3. 王者荣耀只需要记录 RoleID 对应的区服信息,区服数据只会新增不会修改。
【商城订单】
评论