写点什么

M_7: 王者荣耀商城异地多活架构设计

作者:Jadedev
  • 2022 年 5 月 31 日
  • 本文字数:613 字

    阅读完需:约 2 分钟

【背景】

假设现在决定要实现王者荣耀里面的商城的异地多活架构,请你分析设计一下。

【作业要求】

1. 分析王者荣耀商城的业务特点,设计其异地多活架构;

2. 按照模块 7 第 5 课的方法来设计异地多活架构。

【提示】

1. 王者荣耀的商城是虚拟物品商城,和淘宝这种实物电商有两个很大的区别,注意识别出来;

2. 用户要先调用微信钱包或者 QQ 钱包充值点券,然后在商城里面用点券支付;

3. 用户买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买;

4. 用户买鲜花、改名卡之类的道具可以买多个;

5. 分析步骤参考模块 7 第 6 课的案例。


业务分析

  1. 王者荣耀商城的商品不存在库存的概念,无需物流;

  2. 部分商品(英雄和皮肤)一个账户只能买一个,不能重复购买,下单之前先判断购买权限;

  3. 支付只能用户点券支付;

异地多活架构设计步骤

Step1 业务分级

根据收入来源进行业务分级,选出 Top3 的业务做架构设计,分别是:充值点券->购买限制数量商品->购买不限数量商品

Step2 数据分类


Step3 数据同步

点券余额:充值时增加余额,支付时扣除余额

采用数据库加数据库同步+消息队列的方式



已购商品数量:支付成功后更新购买商品数量,对于限制数量商品要做到强一致,采用数据库同步;对于非限制数量商品,做到最终一致即可;

Step4 异常处理

  1. 购买数量未同步,用户重复购买,允许用户申请退款或将其赠送给好友。

  2. 充值未及时到账,容忍,让用户继续充值或者提醒用户耐心等待数据同步。

  3. 用户购买数据未同步到异地机房,用户看不到,等恢复了再看。

架构图


发布于: 刚刚阅读数: 3
用户头像

Jadedev

关注

业精于勤荒于嬉 2022.02.08 加入

Jadedever 走在学习路上的开发者

评论

发布
暂无评论
M_7: 王者荣耀商城异地多活架构设计_架构训练营_Jadedev_InfoQ写作社区