写点什么

模块七作业

用户头像
河马先生
关注
发布于: 5 小时前

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

【背景】

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

【作业要求】

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

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

【提示】

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

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

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

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

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

1.业务分析

  • 商城的业务组成:

(1) 虚拟商品信息

(2) 微信钱包或 QQ 钱包充值点券;

(3) 使用点券购买英雄、皮肤、道具等虚拟登录、充值、交易商品。商品;

  • 虚拟商品业务特征:

(1) 无实物关联,不涉及仓储,物流等业务;

(2) 支付成功后,商品可立即到用户账户;

(3) 虚拟商品,库存管理较灵活,也可以不做库存的管理

2.业务约束

  • 依赖微信钱包和 QQ 钱包充值点劵,商城用点劵支付

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

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

3.数据分类

关于用户和账户信息,直接沿用之前的登录业务模块中的实现即可:

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

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

3. 王者荣耀只需要用 RoleID 关联用户信息,点券账户,交易记录等信息;


商品:

1. 通过运营后管理系统,创建出一些商品,一旦商品信息创建之后,改动频率不高;商品信息可以在不同的分区之间进行同步即可,库存可以不用设置;

充值:

1. 进入商城后,通过唤醒微信钱包或 QQ 钱包充值点券,充值的点券直接写入对应 RoleId 的账户信息中

交易:

1. 购买完成后,可以根据 RoleID 查询拥有的商品信息和交易记录。商城只需要记录 RoleID,对应的商品信息和交易记录


关键数据构成:

  • RoleID:登录后就不会变了;

  • 虚拟商品:创建后,基本不变

  • 用户点券:和 RoleID 绑定,会变动,由充值和交易会引起变动

  • 用户购买虚拟商品:和 RoleID 绑定,购买后,不会再变动

  • 交易记录:和 RoleID 绑定,交易产生记录后,不会在变动

4.数据同步


RoleID ,只会新建不会修改,数据库同步即可。

【虚拟商品】

商品信息,新建和修改不频繁,只在一个机房内进行数据修改即可,数据同步即可。

【用户点券】

全局强一致性,数据同步即可,同一个用户只路由到一个机房内,在一个机房内进行充值处理,处理完的数据同步到另一个机房。

【用户英雄 &皮肤】

英雄和皮肤只能购买一次,因此需要全局强一致性,在一个机房内进行充值处理,处理完的数据同步到另一个机房

【用户其他道具】

其他道具可以购买多次,因此没有太强一致性要求,可以直接采用数据同步

5.异常处理

【登录】

1. 微信和 QQ 挂了怎么办?

直接挂公告:系统停服维护。

【商品】

1. 不能维护商品信息怎么办?

暂时先不新建和修改,等商品运营管理服务恢复后,在来维护商品信息

【充值点券】

1. 不能充值点券怎么办?

直接挂公告:系统停服维护。

2. 充值的点券不到账怎么办?

进行人工补偿处理

用户头像

河马先生

关注

还未添加个人签名 2019.04.16 加入

还未添加个人简介

评论

发布
暂无评论
模块七作业