架构实战营模块七作业
王者荣耀商城异地多活架构设计
一、商城业务功能
进入商城,查看皮肤、英雄
充值,使用微信钱包或 QQ 钱包充值点券,商城中使用点券进行支付
支付,使用点券购买皮肤、英雄、鲜花等虚拟商品,
商品无库存,但是英雄和皮肤只能买 1 个,不能重复购买,鲜花、改名卡之类的道具可以买多个
二、业务分级
商城作为单独的业务,无须再分级
三、数据分类
商品 id:游戏商城的商品是固定的,并且所有区服中商品都是相同的,商品一旦创建,就不会进行修改,数据库同步即可
商品数据:跟商品 id 绑定,修改频率低,数据库同步即可
订单 id: 根据商品 id 和用户生成 全局唯一 id
订单记录:订单数据跟订单 id 绑定,不允许修改,数据库同步
四、数据同步
五、异常处理
购买英雄或皮肤这种一次性商品,没有同步到异地机房;机房挂了转登到异地机房,发现还没购买,重复购买了,怎么办?
数据恢复同步后,出异常数据给营运人员,确认后人工或系统自动退回已花费的虚拟货币
花费了一定虚拟货币购买商品,没有同步到异地机房;机房挂了转登到异地机房,余额还没扣减,再次购买商品,导致实际购买商品数量超过余额,怎么办?
允许余额透支。待数据恢复同步后,显示余额为透支状态,可以提示玩家尽快充值,透支的商品设置暂无法使用
商品数据未能同步到异地机房,数据不一致怎么办?
容忍,待运营手动修复。
充值的过程中机房挂了,用户付了钱确没有充值成功怎么办?
如果充值的订单数据还在,则主动查询支付结果,否则需要和渠道进行对账。
六、系统架构
版权声明: 本文为 InfoQ 作者【zhongwy】的原创文章。
原文链接:【http://xie.infoq.cn/article/8c7544bb93bd72091a57c36a7】。未经作者许可,禁止转载。
评论