架构训练营 - 模块七
业务数据
2020.11 月公布数据,全年日均活跃 1 亿,注册玩家数 6 亿,最高同时在线 100 万。
业务功能
1、浏览,进入商城查看商品
2、登陆,只有登陆后才可以充值或购买
3、充值,通过微信或 qq 钱包充值点券
4、订单,用户选择商品后系统创建支付订单
5、支付,扣减用户点券
6、发送,虚拟商品给用户
关键业务约束
1、只有查看商品后才可以购买商品
2、用户只能通过微信或 qq 钱包充值获得点券,才可以购买商品
3、部分商品在某些限定条件下只能买一个,部分商品可以重复购买
业务分级
异地多火应该优先保证以下业务
登陆、浏览商品,支付
原因:
1、创建支付订单失败的话用户可以重新提交购物车,所以可以不用优先考虑异地多活。
1、充值支持微信和 qq 钱包,一个渠道不可用时用户可以选择另一个渠道充值,这两个渠道同时不可用的概率比较低,所以可以不用优先考虑异地多活。
2、检查商品是否可以重复购买,这个问题不大,可以在后续流程中再次校验,对不允许重复购买的商品执行退货处理,所以可以不用优先考虑异地多活。
3、由于是虚拟商品,没有物流,所以可以不用优先考虑异地多活。
业务分类
【登陆】
依赖王者荣耀自身的用户登陆,登陆后获得用户全局唯一的 uid。
【浏览商品】
依赖商品数据,商品一定创建,商品 id 不会变更,商品属性不会频繁修改。
【订单】
依赖用户所提交购买的商品信息,主要包括商品 id 和数量。
【支付】
1、依赖用户提交的要购买的商品 id,数量信息。
2、充值后的点券,点券不足无法支付。
异常处理
【登陆】
直接挂公告:系统当前无法登陆,可能请耐心等候。
【浏览商品】
商品服务异常:切换机房,不影响用户浏览商品。
【支付】
用户刚充值的点券可能没有完全同步到新机房,余额不足的情况提示用户稍后再试。
异地多活架构示意图
评论