写点什么

架构实战营 - 模块 7- 作业

发布于: 2 小时前

作业:王者荣耀商城异地多活架构设计。

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

【作业要求】

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

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

【提示】

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

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

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

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

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



一,业务分级

1,热门推荐

2,碎片商店

3,英雄

4,皮肤

5,星元

6,礼物

7,特惠

8,夺宝

9,充值


分析:

1,对于游戏来说,首先肯定是要能玩游戏,那有英雄才能玩游戏,所以购买英雄为第一位。其次,有了英雄,才能换皮肤打游戏,所以购买皮肤为第二位,最后,只有充值才能买东西,所以,充值为第三位。


前三名的核心业务:

1,购买英雄

2,购买皮肤

3,充值


另外需要注意虚拟产品的特殊性:

1,无库存

2,无物流


二,数据分类

1,购买英雄

a,已经拥有的英雄无法重复购买(英雄 ID 唯一性)

b,已经拥有的英雄数量不会减少(不会有修改与删除操作)

c,一个 RoleID 在某一个大区对应多个英雄,并且绑定

总结:

a,用户登陆某一个大区,RoleID 在此大区中对应有 N 个英雄 ID


2,购买皮肤

a,已经拥有的皮肤无法重复购买(皮肤 ID 唯一性)

b,已经拥有的皮肤数量不会减少(不会有修改与删除操作)

c,一个英雄对应多个皮肤,并且绑定

总结:

a,用户登陆某一个大区,RoleID 在此大区中对应有 N 个英雄 ID

b,每个英雄 ID 对应 N 个皮肤 ID


3,充值

a,充值本身没有特殊限制

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

c,充值会产生订单数据


三,数据同步

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

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

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

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

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


四,异常处理

1,充值系统对应的 APP 或者方式挂了

解答:公告暂停此种充值方式,等待恢复可用

2,充值完成后,账户余额没有到账

解答:

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

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

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

解答:

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

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

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

解答:

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

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

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

解答:

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

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


五,异地多活示意图


用户头像

还未添加个人签名 2020.09.27 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营 - 模块 7- 作业