架构实战营模块七作业
王者荣耀商城业务背景
【业务功能】
1. 点券充值;
2. 商品购买(分为英雄和皮肤、鲜花和改名卡两种类型)。
【关键业务约束】
1. 用户登录后才能使用商城相关业务;
2. 用户需调用微信钱包或 QQ 钱包充值点券;
3. 购买行为前需保证点券数量够用;
4. 同一用户在同一区服购买同一英雄和皮肤限购一份。不能重复购买;
5. 同一用户在同一区服购买鲜花、改名卡等道具可以购买多个。
业务分级
商品购买 > 点券充值
数据分类
【点券充值】
1. 使用微信钱包或 QQ 钱包进行充值;
2. 充值订单 ID:每次新建,全局唯一,不会修改;
3. 点券余额:强一致性,不可丢失;
【商品购买】
1. 购买订单 ID:每次新建,全局唯一,不会修改;
2. 点券余额:强一致性,不可丢失;
3. 英雄和皮肤:和用户 ID 绑定,同一用户在同一区服对同一款英雄和皮肤最多拥有一个,强一致性;
4. 鲜花和改名卡:和用户 ID 绑定,最终一致性、可重复。
数据同步
【点券充值】
1. 充值订单 ID 只新建不修改,数据库同步即可;
2. 点券余额强一致性,不可丢失,也使用数据库同步。
【商品购买】
1. 购买订单 ID 只新建不修改,数据库同步即可;
2. 点券余额:同上;
3. 英雄和皮肤:和用户 ID 绑定,限购一个,使用数据库同步;
4. 鲜花和改名卡:和用户 ID 绑定,不限购,使用存储系统同步。
异常处理
【点券充值】
1. 微信钱包或 QQ 钱包挂了怎么办?
挂维护通告,等钱包功能恢复了再充值。
2. 微信钱包或 QQ 钱包已扣款,此时系统挂了怎么办?
等系统恢复后从充值订单 ID 中获取信息后补发给用户。
【商品购买】
1. 购买商品时付完点券,系统挂了怎么办?
等系统恢复后从购买订单 ID 中获取信息后补发给用户。
2. 用户购买完商品未及时同步到异地机房,用户看不到自己购买的商品怎么办?
等恢复了再看。
评论