架构训练营七-王者荣耀商城异地多活架构

一、作业要求

【背景】

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

【作业要求】

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

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

【提示】

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

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

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

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

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

二、业务分级

登录、对战、商城。

对王者荣耀商城异地多活架构

三、数据分类

1、RoleID:登录后就不会变了,只需要记录 RoleID 对应的区服信息,区服数据只会新增不会修改。

2、依赖微信钱包或者 QQ 钱包充值点券,王者本身不需要记录点券充值明细(由微信钱包或 QQ 钱包记录),需要记录充值订单 ID,点券数量对应的区服信息,充值记录数据只允许新增。

3、用户在商城里面用点券支付,购买虚拟商品,有的商品(比如英雄、皮肤)限购 1 件,其余商品(比如其他道具)不限购,需要记录购买订单与对应区服信息、购买商品与对应区服信息。

4、虚拟物品没有库存,没有物流信息,支付成功即可获取虚拟物品。

5、点券支付订单 ID 全局唯一,每次新建,不会修改。

6、点券支付订单详情,和订单 ID 绑定,只会新建不会修改。

四、数据同步

1、RoleID 和区服对应关系,只会新建不会修改,数据库同步即可。

2、微信钱包或 QQ 钱包充值点券订单 ID 和区服对应关系,只会新建不会修改,数据库同步即可。

3、点券余额与区服的对应关系,强一致性,数据库同步即可。

4、所购商品与区服的对应关系,强一致性,数据库同步即可。

5、购买虚拟商品的订单 ID 和区服对应关系,只会新建不会修改,数据库同步即可。

6、点券支付订单 ID,全局唯一,每次新增,不会修改,用算法生成,数据库同步即可。

7、点券支付订单详情,和订单 ID 绑定,数据库同步即可。

五、异常处理

1、充值过程中微信钱包和 QQ 钱包挂了怎么办?

直接挂公告:系统停服维护,等微信钱包和 QQ 钱包恢复后就可以正常充值了。

2、用户购买道具过程中系统挂掉怎么办?人工订正数据,达到最终一致性,礼包、优惠券等补偿。

3、用户在某个区服充值了点券,没同步到异地机房,购买不了商品怎么办?

等系统恢复就可以购买了。

4、用户在商城购买的商品未及时同步至异地机房,用户无法使用商品怎么办?

等恢复后再处理。

5、用户在商城的订单数据未及时同步至异地机房,用户看不到订单详情怎么办?

等恢复后再处理。

六、异地多活架构图

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值