模块七作业:王者荣耀商城异地多活架构
业务背景
商城中的商品都是虚拟商品,不存在库存,物流,退货。
对于可以重复购买的商品,机房出现故障后切换后,用户重新购买,系统恢复后可以将数据合并,也可补偿用户。
对于不可重复购买的商品,机房出现故障后切换后,用户重新购买,系统恢复后可以补偿用户。
用户要先调用微信钱包或者 QQ 钱包充值点券,然后在商城里面用点券支付。
业务分级
不可重复购买:英雄和皮肤。
可以重复购买:道具。
优先保证英雄和皮肤数据的高可用,因为此类业务销售额高,而且一旦数据异常,影响较大。
数据分类
英雄和皮肤:区服内唯一,可用作幂等依据。只会新增,删除,不会修改。
道具:不唯一,无法幂等。只会新增,删除,不会修改。
数据同步
英雄和皮肤:数据库同步+消息队列
道具:数据库同步
异常处理
重复购买怎么办?数据合并,或者补偿用户。
数据未及时同步,怎么办?可以进行对战,事后补偿。
评论