王者荣耀商城异地多活架构设计
【背景】
假设现在决定要实现王者荣耀里面的商城的异地多活架构,请你分析设计一下。
【作业要求】
1. 分析王者荣耀商城的业务特点,设计其异地多活架构;
2. 按照模块 7 第 5 课的方法来设计异地多活架构。
【提示】
1. 王者荣耀的商城是虚拟物品商城,和淘宝这种实物电商有两个很大的区别,注意识别出来;
2. 用户要先调用微信钱包或者 QQ 钱包充值点券,然后在商城里面用点券支付;
3. 用户买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买;
4. 用户买鲜花、改名卡之类的道具可以买多个;
5. 分析步骤参考模块 7 第 6 课的案例。
业务分析
王者荣耀商城无物流、无库存概念;
部分商品(英雄和皮肤)一个账户只能买一个,不能重复购买;
支付只能用户点券支付;
一、业务分级
点券充值、限制性商品购买、非限制性商品购买
二、数据分类
三、数据同步
【点券充值】
点券余额会修改,采用数据库同步+消息队列同步+事物合并方式
【商品购买】
支付成功后更新购买商品数量,对于限制数量商品要做到强一致;
对于非限制数量商品,做到最终一致即可;
采用采用数据库同步+消息队列同步方式
四、异常处理
用户充值点券未及时到账:等待数据同步。
用户重复购买限制性商品:自动退款。
用户购买非限制性商品未到账,等待数据同步。
系统架构
版权声明: 本文为 InfoQ 作者【大眼喵】的原创文章。
原文链接:【http://xie.infoq.cn/article/53ef721a939df9efb75a3be68】。未经作者许可,禁止转载。
评论