写点什么

架构实战 - 模块七

作者:唐敏
  • 2021 年 12 月 23 日
  • 本文字数:990 字

    阅读完需:约 3 分钟

【作业内容】

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

【作业要求】

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

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

【提示】

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

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

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

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

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


业务分析

业务功能

业务功能可分五大模块:

  1. 使用微信或者 QQ 账号登录游戏;

  2. 对战:例如匹配、排位、巅峰赛;

  3. 商城:购买英雄、皮肤、道具等;

  4. 活动:领取各种奖励和道具;

  5. 社区:各种攻略,视频等。

业务分级

王者荣耀的访问情况,登录>注册

商城的核心场景情况,点券>皮肤>道具

收入情况,点券充值>点券支付

综合考虑,在异地多活架构设计中,需要优先保障:登录、点券、皮肤、道具。


数据分类

登录

1.依赖 QQ 和微信账号授权登录,本身无需登录信息;

2.微信和 QQ 授权登录会返回给王者荣耀全局唯一 RoleID;

3.王者荣耀只需要记录 RoleID 对应的区服信息,区服数据只会新增不会修改。

商品管理

1、商品 ID,包括英雄 ID、皮肤 ID、道具 ID,具有全局唯一性

2、商品库存,和商品 ID、订单 ID 绑定,根据商品和订单而动态变化,强一致性

3、商品信息,包括商品类型(英雄、皮肤、道具等)、价格、商品详情、销量、评价等

支付

1、RoleID:登录后就不会变了;

2、点券余额:和 RoleID 绑定,根据充值和购买商品而变化,数据不可丢失,强一致性

订单管理

订单 ID,全局唯一,不可重复,每次新增,不可丢失


数据同步

购买英雄

RoleID:同登录。

用户英雄 ID:每次新建,全局唯一,不会修改,用算法生成,数据库同步;

英雄数据:和用户英雄 ID 绑定,只会新建不会修改,数据库同步。

购买皮肤

RoleID:同登录。

用户皮肤 ID:每次新建,全局唯一,不会修改,用算法生成,数据库同步;

皮肤数据:和用户皮肤 ID 绑定,只会新建不会修改,数据库同步。

购买道具

RoleID:同登录。

用户道具 ID:每次新建,全局唯一,不会修改,用算法生成,数据库同步;

道具数据:和用户道具 ID 绑定,新建或者修改, 数据库同步

异常处理

微信、QQ 异常,用户无法登录:公告,系统停服维护。

点券充值异常:客诉,人工修正数据,恢复余额,适当补偿。

道具不及时:提示稍后重试,等待数据同步。

异地多活架构


用户头像

唐敏

关注

还未添加个人签名 2020.12.07 加入

还未添加个人简介

评论

发布
暂无评论
架构实战 - 模块七