写点什么

架构实战营作业七——王者荣耀商城异地多活架构设计

用户头像
开拓纪
关注
发布于: 12 小时前

【背景】

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


【作业要求】


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

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


【提示】

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

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

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

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

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


一 业务分级


商城主要业务分为:英雄,皮肤,碎片商店,星元,礼物,夺宝,推荐,特惠。有金币(有点券)和碎片兑换两种方式购买。

核心业务为:购买英雄、购买皮肤和充值。

虚拟物品商城不用考虑库存和物流。


二 数据分类


1,购买英雄和皮肤

用户登录后 RoleID 关联大区号,且唯一不变。

已经有的英雄和皮肤不能购买,每次购买数量都为 1。

购买时,核准点券,金币,碎片强一致。

道具类物品可以购买多个。


2,充值

数据不可丢失,不可重复,需要幂等。

商城中的余额属于强一致的数据,不可丢失。

充值会产生订单数据。


三 数据同步

1,RoleID 只会新增,无法修改,所以数据库同步

2,RoleID 对应 N 个英雄 ID,只会新增,无法修改,所以数据库同步

3,RoleID 对应 N 个英雄 ID,1 个英雄 ID 对应 N 个皮肤 ID,只会新增,无法修改,所以数据库同步

4,充值操作会产生订单数据,只会新增,不会修改,使用数据库同步

5,余额属于强一致性,数据会新增,修改,不可丢失,使用数据库同步


四 异常处理

1,充值系统登录异常

解答:公告充值服务器正在维护

2.充值完成后,账户没到账

解答:

a.提示请刷新。

b. 联系客服,事后补偿礼包。

3.购买英雄,皮肤完成后,没有到账

解答:

a,可让玩家等待一段时间后重新查看

b,还有问题则由人工客服手动操作,事后可赠送赔偿礼包

4.充值或购买完成后,无法查看订单信息

解答:

a,可让玩家等待一段时间后重新查看

b,还有问题则由人工客服手动操作,事后可赠送赔偿礼包

5,机房间数据同步失败,导致无法购买或者无法查看购买或订单信息

解答:

a,可让玩家等待一段时间后重新查看

b,还有问题则由人工客服手动操作,事后可赠送赔偿礼包


五 异地多活架构图



用户头像

开拓纪

关注

还未添加个人签名 2019.08.14 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营作业七——王者荣耀商城异地多活架构设计