架构实战营模块 7 作业
背景
假设现在决定要实现王者荣耀里面的商城的异地多活架构,请你分析设计一下。
【作业要求】
1. 分析王者荣耀商城的业务特点,设计其异地多活架构;
2. 按照模块 7 第 5 课的方法来设计异地多活架构。
业务特性
虚拟商品不受库存影响;
虚拟商品不受物流影响,所以所有的商品购买后都即时到账户;
业务分类
商品:单次商品购买,多次商品购买;
点券:充值点券,退还点券;
这里充值和退还不是最关键业务,商品的购买才是关键业务;
数据分类
商品
高价值商品购买:强一致性,不可丢失;
单次商品购买:最终一致,不可丢失;
多次商品购买:最终一致,不可丢失;
点券
充值点券:强一致性,不可丢失;
退还点券:强一致性,不可丢失;
数据同步
强一致性,不可丢失:直接使用业务事务保证强一致性,将数据在一次事务内直接写入两个数据中心的数据库中;
最终一致,不可丢失:使用数据库同步方案,最终保证数据最终一致性;
异常处理
异常情况下,因为强一致性数据,无法完成业务事务,所以会全部失败;
但是可以保证余额是正常的,可以使用余额进行商品的购买;
对于数据中心失效时部分商品没有被同步至备份数据中心,可以通过对账日志进行商品的补还,并进行适当补偿;
评论