架构实战营模块 7 作业
背景】
假设现在决定要实现王者荣耀里面的商城的异地多活架构,请你分析设计一下。
【作业要求】
1. 分析王者荣耀商城的业务特点,设计其异地多活架构;
2. 按照模块 7 第 5 课的方法来设计异地多活架构。
【提示】
1. 王者荣耀的商城是虚拟物品商城,和淘宝这种实物电商有两个很大的区别,注意识别出来;
2. 用户要先调用微信钱包或者 QQ 钱包充值点券,然后在商城里面用点券支付;
3. 用户买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买;
4. 用户买鲜花、改名卡之类的道具可以买多个;
5. 分析步骤参考模块 7 第 6 课的案例
答案:
数据分类
用户 id 全局唯一
点券的数据会增减
用户购买同样的英雄和皮肤记录的唯一标识
鲜花和道具数据可增加
数据同步
用户 id,全局唯一,不可变,采用数据库同步 + 消息队列同步
用户购买点券的数据,全局一致性,采用数据库同步余额,充值只能在归属地充值
用户购买英雄和皮肤的记录,全局一致性,数据库同步,因为只有新增
用户购买鲜花和改名卡之类的道具数据库同步+消息队列同步,因为只有新增
异常处理
如果用户购买点券数据,没有同步到异地机房怎么办,再次购买即可
用户购买过英雄或者皮肤,没有同步到异地机房怎么办,再次购买,到时人工补偿
用户购买鲜花和改名卡之类的道具,没有同步到异地机房怎么办,先不用,等回复再使用
评论