模块七:王者荣耀商城异地多活设计
1、业务分级
这里由于是王者荣耀的指定业务做异地多活设计,所以不需要单独处理了,直接是商城业务做异地多活。
2、数据分类
【产品】
产品 id 全局唯一,算法生成,不可变
详情,可变,可丢失
数量,可变,不可丢失,全局强一致
【支付】
订单 id 全局唯一,算法生成,不可变
余额,可变,全局强一致性。
3、数据同步
【产品】
产品 id:全局唯一,不可变,算法生成,直接重新生成
详情,可变,可丢失,数据库同步
数量,可变,全局强一致性,数据库同步,每个机房都有数量。
【支付】
订单 id 全局唯一,算法生成,不可变,直接重新生成
余额,可变,全局强一致性,数据库同步。只能在归属地充值等。如果在新机房时就允许使用 100 块的金额,如果
4、多活逻辑
【产品业务】
A、多活切换逻辑
直接新机房读取数据,限制数量为 1 的,只有在原机房恢复后进行校验,如果买多了,就把金额退回用户,道具收回。
B、多活切回逻辑
直接切回
C、异常处理
直接重新查看下单即可
【支付】
A、多活切换逻辑
金额可透支 100 元
B、多活切回逻辑
切回后,验证余额是否充足,如果不充足就提醒或者定时退款。
C、异常处理
退回金额及修改订单状态,然后重新下单即可。
架构图:
评论