重学架构之王者荣耀商城异地多活架构设计
业务功能
登录
商品浏览
充值
购买英雄、皮肤、道具
关键业务约束
1. 登录用户才能
2. 不能重复购买
3. 充值后购买
业务分级
登录、商品浏览 > 购买英雄、皮肤、道具 > 充值
数据分类
登录
1. 依赖 QQ 和微信账号授权登录,本身无需登录信息;
2. 微信和 QQ 授权登录会返回给王者荣耀全局唯一 RoleID;
3. 商城需要记录 RoleID 相关的充值、购买信息
充值
1. RoleID:登录后就不会变了;
2. 充值 ID:每次新建,全局唯一,不会修改;
3. 余额:全局一致
购买
1. RoleID:登录后就不会变了;
2. 交易 ID:每次新建,全局唯一,不会修改;
3. 购买记录:与 RoleID、交易 ID 绑定,且商品信息全局唯一、不会修改;
4. 余额:全局一致
数据同步
登录
RoleID 和区服对应关系,只会新建不会修改,数据库同步即可
充值
1. 充值 ID,全局唯一,不会修改,用算法生成,数据库同步即可;
2. 余额,全局一致强一致性,数据库同步
购买
1. 交易 ID:全局唯一,不会修改,用算法生成,数据库同步即可;
2. 购买记录: 购买记录与交易绑定,不会修改,数据库同步即可;
异常处理
1. 微信和 QQ 挂了怎么办?
直接挂公告:系统停服维护
2. 充值异常
提示用户无法充值,等服务正常后再充值
3. 余额未及时同步
通过路由返回源机房查询余额
4. 购买记录未同步
返回点卷补偿用户
评论