【架构师训练营】模块七作业
业务特点
王者荣耀商城卖的是游戏里的虚拟物品,在交易的过程中,不需要商品库存量和物流信息的问题。
一、业务分级
商城作为单独的业务,无须再分级
二、数据分类
【商城】
RoleID:和区分对应关系,只会新建不会修改
商品数据:商城虚拟商品(英雄、皮肤、道具)的数据商品上架后很少修改(英雄上架就一直存在,皮肤上架后大部分一直存在,另一部分有期限)。
充值订单 ID:每次新建,全局唯一,不会修改;
充值订单数据:和订单 ID 绑定,不会修改;
支付订单 ID:每次新建,全局唯一,不会修改;
支付订单数据:和订单 ID 绑定,不会修改
玩家充值虚拟货币余额,随着充值和购买虚拟商品操作会进行修改,且具有强一致性,不可丢失。
玩家已购买的商品数据,数据只有新增,没有修改,只需要最终一致性就可以,不可丢失(英雄和皮肤:每个账号只能购买一次;道具可购买多次)
三、数据同步
【商城】
RoleID:和区分对应关系,只会新建不会修改,数据库同步
商品数据:商城虚拟商品(英雄、皮肤、道具)的数据商品上架后很少修改(英雄上架就一直存在,皮肤上架后大部分一直存在,另一部分有期限),数据库同步
充值订单 ID:每次新建,全局唯一,不会修改,数据库同步
充值订单数据:和订单 ID 绑定,不会修改,数据库同步
支付订单 ID:每次新建,全局唯一,不会修改,数据库同步
支付订单数据:和订单 ID 绑定,不会修改,数据库同步
玩家充值虚拟货币余额,随着充值和购买虚拟商品操作会进行修改,且具有强一致性,不可丢失,数据库同步+消息队列
玩家已购买的商品数据,数据只有新增,没有修改,只需要最终一致性就可以,不可丢失(英雄和皮肤:每个账号只能购买一次;道具可购买多次)数据库同步
四、异常处理
商城不能进入或者无法购买商品?
挂公告:系统维护
购买英雄或皮肤这种一次性商品,没有同步到异地机房;机房挂了转登到异地机房,发现还没购买,重复购买了,怎么办?
数据恢复同步后,出异常数据给营运人员,确认后人工或系统自动退回已花费的虚拟货币
花费了一定虚拟货币购买商品,没有同步到异地机房;机房挂了转登到异地机房,余额还没扣减,再次购买商品,导致实际购买商品数量超过余额,怎么办?
允许余额透支。待数据恢复同步后,显示余额为透支状态,可以提示玩家尽快充值,透支的商品设置暂无法使用
商品数据未能同步到异地机房,数据不一致怎么办?
容忍,待运营手动修复。
充值的过程中机房挂了,用户付了钱确没有充值成功怎么办?
如果充值的订单数据还在,则主动查询支付结果,否则需要和渠道进行对账。
评论