写点什么

业务架构模块 7 作业 王者荣耀商城异地多活

用户头像
好吃不贵
关注
发布于: 2 小时前

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

【背景】

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

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

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

    【提示】

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

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

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

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

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


一、业务分级

商城主要业务分为:英雄、皮肤、礼物、特惠、夺宝、礼物。可以通过金币商店和碎片兑换两种方式购买。

核心业务为购买英雄、购买皮肤和充值。需求量大,也是商城的基本功能。购买英雄在游戏中最重要,所以购买英雄第一位。购买需要充值,所以充值第二位。皮肤预估在商城中除了英雄外,购买的量最大,所以第三位。

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

二、数据分类

  1. 购买英雄

  2. 已经购买的英雄无法重复购买。

  3. 已经拥有的英雄只会新增,不会减少。

  4. 一个 RoleID 在某个大区对应多个英雄。

  5. 充值

  6. 数据不可丢失,不可重复,需要幂等,所以不可以用消息队列来传输。

  7. 需要产生订单数据。

  8. 购买皮肤(和英雄类似)

  9. 已经购买的皮肤无法重复购买。

  10. 一个英雄可以对应多个皮肤。

  11. 已经拥有的皮肤只会新增,不会减少。

三、数据同步

除了余额数据会有减少以外,其他的比如 RoleID、英雄 ID、皮肤 ID 都只会新增。所以可以用数据库同步。一开始采用全量同步,后续采用增量同步。

四、异常处理

采用 FEMA 的分析方式

  1. 无法购买英雄

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

  3. 无法充值

  4. 渠道比如微信或 qq 无法访问。

  5. 也无法登陆了,公告系统停服维护。

  6. 公告充值服务器正在维护。

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

  8. 提示请刷新。

  9. 联系客服,事后赠送赔偿的礼包。

  10. 无法购买皮肤

  11. 提示服务器繁忙,该皮肤暂时无法购买。

五、异地多活示意图


用户头像

好吃不贵

关注

还未添加个人签名 2018.11.20 加入

还未添加个人简介

评论

发布
暂无评论
业务架构模块7 作业 王者荣耀商城异地多活