写点什么

架构 7 作业

作者:梁山伯
  • 2023-02-13
    四川
  • 本文字数:1083 字

    阅读完需:约 4 分钟

作业

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

【背景】

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

【作业要求】

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

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

【提示】

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

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

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

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

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

业务背景

【业务数据】

2020.11 月公布数据,全年日均活跃 1 亿,注册玩家数 6 亿,最高同时在线 100 万。

【业务功能】

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

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

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

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

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

【关键业务约束】

  1. 登录用户才能进入商场,查看和购买操作;

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

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

  4. 商城中的商品是属于虚拟商品,没有库存的概念。仅判断该用户是否拥有商品,以及商品是否达到购买上限;

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

  6. 用户属于不同的区服,例如 Android 平台微信 22 区“刺客信条”,同一微信 ID 可以加入多个区服,每个区购买的商品,仅在该区内有效。

业务分级

由于商城本就是英雄联盟游戏中的一个业务。当前计划是对商城这个业务做异地多活设计,故忽略该步骤。

数据分类

RoleID: 登录后就不会改变;

商品 ID: 每增加一个商品新增一个,全局唯一,不会修改;

分区数据:每个用户在一个分区一个仅由一个关联 ID,全局唯一,不会修改;

购买记录:购买记录和用户与分区有关,只会新增不会修改。

点券数据:点券数据和用于与分区有关。消费商品时会扣除点券,充值后会增加点券。需要做到最终唯一性。


数据同步

RoleID: 登录后就不会改变; 数据库同步。

商品 ID: 每增加一个商品新增一个,全局唯一,不会修改;数据库同步。

分区数据:每个用户在一个分区一个仅由一个关联 ID,全局唯一,不会修改;数据库同步。

购买记录:购买记录和用户与分区有关,只会新增不会修改。数据库同步。

点券数据:点券数据和用于与分区有关。事务合并,数据库同步。


异常处理

购买过程中系统挂掉如何处理?

重新购买即可,原有购买记录可作废。

充值时 QQ 和微信挂掉怎么处理?

挂出公告;系统停服维护,必要时,给出补偿或者人工恢复数据。

王者荣耀商城异地多活架构示意图


发布于: 刚刚阅读数: 5
用户头像

梁山伯

关注

还未添加个人签名 2019-07-16 加入

还未添加个人简介

评论

发布
暂无评论
架构7作业_梁山伯_InfoQ写作社区