写点什么

作业 7

作者:施正威
  • 2022 年 2 月 18 日
  • 本文字数:774 字

    阅读完需:约 3 分钟

作业7

【背景】

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

 

【作业要求】

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

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

 

【提示】

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

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

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

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

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

 

业务背景

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

关键业务限制

用户登陆游戏后才能使用商场。

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

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

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

业务分级

商场核心业务:充值、购买

数据分类

RoleID:第三方(微信/QQ)全局唯一

点券:和用户 RoleID、分区关联,全局唯一

商品信息:购买次数分类。英雄和皮肤是一类,只能购买 1 次。鲜花、改名卡之类的道具可以买多次。

库存:虚拟商品,并无库存

支付:依赖微信支付和 QQ 钱包

订单 ID:全局唯一,只新增不修改

订单 ID:每次新建,全局唯一,不会修改;

订单:和订单 ID 绑定,只会新建不会修改,订单中包含 RoleID、区服和购买物品。

数据同步

1. RoleID:只新增,不会修改删除,数据库同步

2. 点券:全局唯一,算法生成,无需同步

3. 余额:分布式一致性,数据库同步

4. 商品 ID:全局唯一,数据库同步

5. 商品信息:数据库同步

6. 订单 ID:全局唯一,数据库同步

7. 订单信息:全局唯一,数据库同步

异常处理

无法登陆?

客服介入,补偿,等待系统恢复,赔偿

无法充值点券怎么办?

客服介入,补偿,等待系统恢复,赔偿。


架构图


用户头像

施正威

关注

还未添加个人签名 2021.01.04 加入

还未添加个人简介

评论

发布
暂无评论
作业7