王者荣耀商城异地多活架构设计
业务分析
商城的核心场景
登陆、充值、购买
数据分析
登陆模块
依赖 QQ 和微信账号授权登录,本身无需登录信息;
微信和 QQ 授权登录会返回给王者荣耀全局唯一 RoleID;
王者荣耀之需要记录 RoleID 相关的充值、购买信息,其他无需记录
充值模块
RoleID 登陆之后不会改变
充值 ID: 全局唯一,不会改变,只有新增数据
余额:全局一致性,采用数据库同步余额
购买模块
RoleID 登陆之后不会改变
消费 ID:全局唯一,不会改变,只有新增数据
购买商品记录,需要根据商品属性区分业务,皮肤类需要全局判断唯一性,道具类不需要判断全局唯一性
余额:全局一致性,采用数据库同步余额
数据同步
登陆模块:
RoleID 和区服对应关系,只会新增不会修改,数据库同步即可
充值模块
充值 ID,全局唯一,只会新增不会修改,用算法生成,数据库同步
余额模块: 全局一致性,采用数据库同步余额
购买模块
消费 ID:全局唯一,算法生成,不会改变,数据库同步
购买商品记录:数据库同步
余额模块: 全局一致性, 采用数据库同步
异常处理
充值模块异常:提示用户暂时在维护中, 等维护完成后充值
一个城市出现故障导致英雄皮肤随便道具等出现异常情况: 数据更新不及时, 提醒用户稍后查看
用户购买的点券数据更新不及时,提示用户稍后查看。
评论