写点什么

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

用户头像
莫问
关注
发布于: 3 小时前

题目

【背景】

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

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

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


【提示】

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

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

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

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

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


作答

一、业务分级

商城业务功能:1、热门推荐;2、碎片商店;3、英雄(购买);4、皮肤(购买);5、星元;6、礼物;7、特惠;8、夺宝;9、充值。

核心业务:1、英雄(购买);2、皮肤(购买);3、充值

虚拟物品商城,和实物电商主要区别在于,不用考虑库存和物流。直接在账号里的物品栏里加上某物品即可。

二、数据分类

1、购买英雄

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

2)一致性:虚拟物品,库存不要求一致性

3)唯一性:已经拥有的英雄无法重复购买(英雄 ID 唯一性);一个 RoleID 在某一个大区对应多个英雄,并且绑定

4)可丢失性:可丢失(如英雄丢失,可“用钱消灾”)

5)可恢复性:可恢复(内部恢复(运营重试))

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

2、购买皮肤

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

2)一致性:虚拟物品,库存不要求一致性

3)唯一性:已经拥有的皮肤无法重复购买(皮肤 ID 唯一性);一个英雄对应多个皮肤,并且绑定

4)可丢失性:可丢失(如英雄丢失,可“用钱消灾”)

5)可恢复性:可恢复(内部恢复(运营重试))

总结:用户登陆某一个大区,每个英雄 ID 对应 N 个皮肤 ID

3、充值

1)数据修改量:涉及修改,余额不足时会有充值行为。充值会产生订单数据

2)一致性:商城中的余额属于强一致的数据

3)唯一性:每个用户的余额唯一

4)可丢失性:不可丢失

5)可恢复性:可恢复(内部恢复(运营重试))

三、数据同步

用数据库同步。

四、异常处理

  1. 无法充值或充值渠道无法登录

公告充值服务器正在维护

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

a)提示请刷新。

b) 联系客服,事后赠送赔偿的礼包。

  1. 无法购买英雄或皮肤

1)提示服务器繁忙,该英雄暂时无法购买,请稍后再试。

2)联系客服,事后赠送赔偿的礼包。

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

1)提示刷新重新查看

2) 联系客服,事后赠送赔偿的礼包。

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

1)提示刷新重新查看

2) 联系客服,事后赠送赔偿的礼包。

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


发布于: 3 小时前阅读数: 4
用户头像

莫问

关注

站在现在看未来,站在未来看现在 2019.11.20 加入

居安思危,先忧后乐

评论

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