写点什么

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

作者:Geek_99eefd
  • 2021 年 12 月 23 日
  • 本文字数:973 字

    阅读完需:约 3 分钟

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

【背景】

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

【作业要求】

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 商的主要区别是均为虚拟物品,无需考虑库存和物流;

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

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

 

业务分级

王者荣耀众多业务里面,TOP3 的业务是登录,对战,商城。本作业主要针对商城来分析

数据分析

1 依赖微信 QQ 账号登录,本身无需登录

2 微信 QQ 登录后,返回唯一 roleID,只认这个唯一 roleID.

3 登录游戏服后,增加游戏服 ID2,数据只增不减

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

5 创建商品,商品 ID 唯一,自增,不会减少

6 创建订单,订单 ID 唯一,自增,不会减少

数据同步

1 商品数据:不一致容忍度较高,数据可反复同步,可采用消息队列同步

2 库存数据:虚拟商品,无限量供应的商品,无需考虑数据一致性,限量的允许超卖、可采用库存拆分到不同机房、数据库同步

3 订单数据:可采用数据库同步、消息队列同步

4 点券支付:可采用数据库同步

异常处理

1. 登录异常,可以容忍。公告通知即可

2. 支付通道异常,可以容忍。公告通知即可

3. 支付数据未同步。等同步后再核减即可

4. 订单未同步。同步后再查看。

异地多活架构示意图



用户头像

Geek_99eefd

关注

还未添加个人签名 2021.07.13 加入

还未添加个人简介

评论

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