架构实战 - 模块七 - 作业
作业:王者荣耀商城异地多活架构设计
【背景】
假设现在决定要实现王者荣耀里面的商城的异地多活架构,请你分析设计一下。,
【作业要求】
1. 分析王者荣耀商城的业务特点,设计其异地多活架构;
2. 按照模块 7 第 5 课的方法来设计异地多活架构。
【提示】
1. 王者荣耀的商城的是虚拟物品的商城,和淘宝这种实物电商有两很大的区别,注意识别出来;
2. 用户要先调用微信钱或者 QQ 钱包充值点券,然后在商城里面用点券支付;
3. 用户买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买;
4. 用户买鲜花、改名卡之类的道具可以买多个;
5. 分析步骤参考模块 7 第 6 课的案例。
业务数据
2020.11 月公布数据,全年日均活跃 1 亿,注册玩家数 6 亿,最高同时在线 100 万。
王者荣耀商城业务
1. 购买英雄、
2.购买皮肤
3.购买道具
4. 礼物中心
5. 点券充值
关键业务约束
1. 充值用户才有点券;
2. 英雄和皮肤,一样只能买 1 件,有了就不能买了;
3. 英雄和皮肤,道具都是虚拟商品,没有库存限制。
注:登录的异地多话架构设计已在教程中说明,商城方案就默认为已做的部分,商城部分就不再复述了。
业务分级
1. 购买英雄
2. 购买皮肤
3. 购买道具
数据分类
【购买英雄】
1. 用户英雄 ID。
2. 英雄数据:和用户英雄 ID 绑定,只会新建不会修改。
【购买皮肤】
1. 用户皮肤 ID。
2. 皮肤数据:和用户皮肤 ID 绑定,只会新建不会修改。
【购买道具】
1. 用户道具 ID:
2. 道具数据:和用户道具 ID 绑定,新增或者修改对应的区服的用户的道具数据
数据同步
【购买英雄】
RoleID:同登录。
用户英雄 ID:每次新建,全局唯一,不会修改,用算法生成,数据库同步;
英雄数据:和用户英雄 ID 绑定,只会新建不会修改,数据库同步。
【购买皮肤】
RoleID:同登录。
用户皮肤 ID:每次新建,全局唯一,不会修改,用算法生成,数据库同步;
皮肤数据:和用户皮肤 ID 绑定,只会新建不会修改,数据库同步。
【购买道具】
RoleID:同登录。
用户道具 ID:每次新建,全局唯一,不会修改,用算法生成,数据库同步;
道具数据:和用户道具 ID 绑定,新建或者修改, 数据库同步
异常处理
【购买英雄】
1. 用户在逛商城时系统挂掉了怎么办?
重新进入商城即可。
2. 用户购买英雄数据未及时同步到异地机房,用户看不到新英雄结果怎么办?
等恢复了再看。
【购买皮肤】
同购买英雄
【道具购买】
同购买英雄
异地多活架构示意图
评论