架构实战营 模块七作业
王者荣耀商城异地多活架构设计
1. 背景
假设现在决定要实现王者荣耀里面的商城的异地多活架构,请你分析设计一下。
2. 异地多活架构设计
2.0 业务背景
【业务数据】
2020.11 月公布数据,全年日均活跃 1 亿,注册玩家数 6 亿,最高同
时在线 100 万。
【业务功能】
1. 使用微信或者 QQ 账号登录游戏;
2. 对战:例如匹配、排位、巅峰赛;
3. 商城:购买英雄、皮肤、道具等;
4. 活动:领取各种奖励和道具;
5. 社区:各种攻略,视频等。
【关键业务约束】
1. 登录用户才能充值。
余额不够不能购买道具。
2.1 业务分级
商城
2.2 数据分类
RoleID:登录后就不会变了;
王者荣耀只需要记录 RoleID 对应的区服信息,区服数据只会新增不会修改。
用户要先调用微信钱包或者 QQ 钱包充值点券,然后在商城里面用点券支付;点券有强一致性要求,不可丢失。
用户买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买;数量不会修改。强一致性要求,不可丢失。
用户买鲜花、改名卡之类的道具可以买多个;数量可以修改。强一致性要求,不可丢失。
2.3 数据同步
RoleID 和区服对应关系:只新建不修改;数据库同步。
点券:强一致性,不可丢失;数据库同步。
英雄和皮肤:强一致性,不可丢失;数据库同步。
鲜花、改名卡之类的道具:强一致性,不可丢失;数据库同步。
2.4 异常处理
1. 微信和 QQ 挂了怎么办?
直接挂公告:系统停服维护。
充值点券无法支付怎么办?
提示:系统暂时无法支付
道具购买出错怎么办?
无法购买要提示,不扣点券;数量出错,提示错误,后期补偿。
评论