架构实战营 第 6 期 模块七课后作业
业务分级
识别主要业务如下:
浏览商城
充值点券
购买英雄和皮肤
购买道具
数据分类
【浏览商城】
商品信息:只会上新或者下架商品,虚拟商品,所以没有库存信息。
【充值点券】
点券余额:微信或者 QQ 支付成功后增加,购买商品后减少。
【购买英雄和皮肤】
拥有的英雄和皮肤:第一次购买后增加,一旦拥有之后不会减少,不能重复购买。
【购买道具】
拥有的道具数量:每次购买之后增加,使用之后减少,可以重复购买。
数据同步
【浏览商城】
商品信息:很少会有新增,新增后几乎没有修改,数据库同步即可。
【充值点券】
点券余额:需要保持最终一致性,采用数据库同步 + 消息队列同步。
【购买英雄和皮肤】
拥有的英雄和皮肤:需要保持最终一致性,数据库同步 + 消息队列同步。
【购买道具】
拥有的道具数量:需要保持最终一致性,数据库同步 + 消息队列同步。
异常处理
【浏览商城】
一个区服务器上架了新商品,没有同步到异地机房怎么办?
等系统恢复就能看到新商品。
【充值点券】
同步数据库失败怎么办?
允许点券一定额度的透支,故障恢复之后同步用户的账户余额。
【购买英雄和皮肤】
同步数据库失败怎么办?
允许购买,故障恢复后检查时候有重复购买,并进行合并。
【购买道具】
同步数据库失败怎么办?
允许购买,故障恢复后对道具数量进行合并。
评论