写点什么

架构实战营模块七作业

用户头像
竹林七贤
关注
发布于: 2 小时前

•背景

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


•作业要求

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

2.按照模块 7 的方法设计异地多活架构

•提示

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

2.用户要先调用微信钱包或者 QQ 钱包充值点券,然后用点券支付

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

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

5.分析步骤参考模块 7


一、业务分级

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

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

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

二、数据分类

  1. 购买英雄和购买皮肤

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

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

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

  5. 充值

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

  7. 需要产生订单数据。

  8. 查看购买到的英雄或者皮肤,这个数据只会新增,不会修改。

三、数据同步

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

四、异常处理

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

公告充值服务器正在维护

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

  • a.提示请刷新。

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

    1. 无法购买英雄或皮肤

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

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

    a. 提示刷新重新查看

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

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

    a. 提示刷新重新查看

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

    五、异地多活架构图


    用户头像

    竹林七贤

    关注

    还未添加个人签名 2020.08.13 加入

    还未添加个人简介

    评论

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