写点什么

架构实战营模块 7 作业

作者:冷夫冲
  • 2022-12-06
    广东
  • 本文字数:690 字

    阅读完需:约 2 分钟

【背景】

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

【作业要求】

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

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

【提示】

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

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

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

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

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


业务分级

核心业务为登录、充值、商品购买

数据分类

登录

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

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

3. 登录 sessionID

充值

1、点券余额:关联 RoleID ,全局强一致。

2、支付订单 id:全局唯一,只会增加,不修改,不可丢失

商品购买

  • RoleID:登录后就不会变了

  • 商品信息:全局唯一,会修改商品详情

  • 英雄和皮肤购买记录:购买记录全局唯一 id,新建后就不会修改,最终一致性

  • 道具记录:可以有多个购买记录,不会修改,最终一致性

数据同步

  • Role ID: 全局唯一不可变,采用数据库同步 + 消息队列同步。

  • 点券余额:全局强一致性,采用数据库同步余额,充值只能在归属地充值。

  • 道具记录:最终一致性,采用数据库 + 消息队列同步。

  • 英雄和皮肤记录:全局强一致性,同 RoleID 用户所在区服唯一,采用数据库同步。

  • 商品信息:全局唯一,采用数据库同步 + 消息队列同步。

异常处理

  1. 登录异常:微信或 QQ 登录异常,发公告告知用户

  2. 充值异常:恢复后再充值

  3. 购买英雄、皮肤异常:恢复后再购买

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



用户头像

冷夫冲

关注

还未添加个人签名 2018-09-22 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块7作业_架构设计_冷夫冲_InfoQ写作社区