架构实战营 模块七作业
一、需求
分析设计王者荣耀里面的商城异地多活架构
二、业务功能
商城:购买英雄、皮肤、道具等
特点:
(1)商城商品是虚拟的、无存储、物流等需求;
(2)用户要先调用微信钱包或者 QQ 钱包充值点券,然后在商城里面用点券支付;
(3)用户买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买;
(4)用户买鲜花、改名卡之类的道具可以买多个;
三、数据分类
【支付】
方式一:提前购买点券,点券值
方式二:购买时调用微信钱包或者 QQ 钱包充值点券,用户 ID、微信钱包或 QQ 钱包等已经实现完成灾备建设,无需考虑
【购买英雄和皮肤唯一性商品】
唯一标识:英雄 ID、皮肤 ID
【购买鲜花、改名卡类道具】
标识:鲜花 ID、改名卡 ID 等
数量:各类道具购买数量
四、数据同步
【支付】
方式一:数据库+消息队列同步
方式二:无需同步
【购买英雄和皮肤唯一性商品】
全局唯一、会修改,数据库+消息队列同步
【购买鲜花、改名卡类道具】
非全局唯一,可修改,数据库同步
五、异常处理
【支付】
1、微信和 QQ 挂了怎么办
提示不能购买,系统恢复了再购买
【购买鲜花、改名卡类道具】
1、购买过程中系统挂掉
提示不能购买,系统恢复了再购买
2、购买数据未同步到异地机房,用户登录看不到信息
异步提醒数据晚些一致,或给予一定的补偿
评论