写点什么

架构训练营模块七作业

作者:沈益飞
  • 2022 年 2 月 17 日
  • 本文字数:803 字

    阅读完需:约 3 分钟

【背景】

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

【作业要求】

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

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


【提示】

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

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

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

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

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

设计步骤 1 - 业务分级

王者荣耀商城异地多活应该保证,充值点券、购买虚拟商品、扣减点券三个核心业务。

设计步骤 2 - 数据分类

【充值点券】

1、调用微信钱包和 QQ 钱包充值本身支持了高可用。

【购买虚拟商品】

1、虚拟商品和实物商品有两个区别,第一虚拟商品没有库存概念,不需要考虑库存是否售空,第二虚拟商品没有物流概念,下完单就表示收货了。所以数据只会新增不会有修改操作。

【扣减点券】

1、点券可以允许有一定的额度的透支。

设计步骤 3 - 数据同步

【充值点券】

数据同步即可

【购买虚拟商品】

数据库同步即可

【扣减点券】

数据库同步即可


设计步骤 4 - 异常处理

【充值点券】

1、微信支付和 QQ 钱包挂了怎么办?

直接挂公告:商城系统停服维护。

2、玩家充值点券后,没有同步到异地机房,在异地机房不能购买怎么办?

通过事务合并,先让玩家充值,在消费,最后恢复的时候合并点点券。

【购买虚拟商品】

1、玩家在购买英雄和皮肤后,没有同步到异地机房,在另一个机房在购买怎么办?

由于英雄和皮肤是不能重复购买的,等待机房恢复后,手动补偿点券。

2、玩家鲜花改名卡购买后,没有同步到异地机房,在另一个机房重新购买了怎么办?

由于鲜花改名卡可以重复购买,等待机房恢复后,将数量合并即可。

【扣减点券】

1、玩家消费后,消费后的点券没有同步到异地机房,在异地机房还可以消费,怎么办?

可以存在一定的额度的透支。

用户头像

沈益飞

关注

还未添加个人签名 2018.04.02 加入

还未添加个人简介

评论

发布
暂无评论
架构训练营模块七作业