写点什么

架构实战营 模块七课后作业

用户头像
iProcess
关注
发布于: 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. 用户要先调用微信钱包或者 QQ 钱包充值点券,然后在商城里面用点券支付;

  3. 王者荣耀商城的物品主要包括碎片、英雄、皮肤、夺宝、礼物、特惠、夺宝等,和淘宝这种实物电商的主要区别是均为虚拟物品,无需考虑库存和物流;

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

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


业务分级

王者荣耀手游中各类业务按重要性排序,最重要的前三个业务为登录、对战、商城,以下针对商城业务进行异

数据分类

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

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

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

  4. 充值由微信钱包或 QQ 钱包管理,王者荣耀需要在点券 ID 下保存充值记录,该记录只会新增,不会修改;

  5. 商家商品时,保证商品 ID 自动生成,全局唯一,只会新建,不会修改;

  6. 创建订单时,保证订单 ID 自动生成,全局唯一,只会新建,不会修改;

数据同步

  1. RoleID 和区服对应关系只会新增,不会修改,数据库同步即可;

  2. 点券 ID 只会新增,不会修改,全局唯一,数据库同步即可;

  3. 商品 ID 自动生成,全局唯一,只会新建,不会修改,数据库同步即可;

  4. 订单 ID 自动生成,全局唯一,只会新建,不会修改,数据库同步即可。


异常处理

  1. QQ 钱包或微信钱包挂了怎么办?

直接挂公告暂停点券充值,待钱包系统恢复。

  1. 充值成功后,数据没有同步到异地机房,用户在异地登录无法消费怎么办?

等数据同步成功后再使用。

  1. 商品上架后,商品信息没有同步到异地机房,用户无法购买怎么办?

等待系统恢复,再购买,可以对用户发放金币或钻石进行补偿。

  1. 用户下单购买商品后,购买的商品没有同步到异地机房,用户无法使用怎么办?

因为是虚拟商品,所以可以进行人工干预,对异地机房的用户数据进行临时修复,让用户可以立即使用到商品,等系统恢复正常后对数据进行更新,保持数据版本一致。


异地多活架构示意图


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

iProcess

关注

还未添加个人签名 2018.03.06 加入

还未添加个人简介

评论

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