模块七作业
一、业务分级
业务功能包含:注册、登陆、充值和购买
由于登陆的访问量远远大于注册访问量,另外对于已经充值的客户,服务恢复后购买的概率也很高,因此选取登陆和充值做异地多活。
二、数据分类
登陆:
1. 依赖 QQ 和微信账号授权登录,本身无需登录信息;
2. 微信和 QQ 授权登录会返回给王者荣耀全局唯一 RoleID;
3. 王者荣耀只需要记录 RoleID 对应的区服信息,区服数据只会新增不会修改。
充值:
RoleId: 登陆后就不会变了
点券余额:全局强一致性,不可丢失
充值订单 ID:每次充值后新建,不会修改,全局唯一
三、数据同步
登陆:
RoleID 和区服对应关系,只会新建不会修改,采用数据库同步即可。
充值:
1. 用户 RoleID:全局唯一,不可变,登陆场景已经包含用户 RoleId 的同步设计
点券余额:全局一致性,采用数据库同步余额
充值订单 ID:全局唯一,不可重复,每次新增 ,采用数据库同步+消息队列同步
四、异常处理
1. 微信和 QQ 挂了怎么办?
直接挂公告:系统停服维护。
点券余额未及时还没有同步到异地机房怎么办?
等待同步完成
订单数据未及时同步到异地机房怎么办?
等待同步完成
异地多活架构图:
评论