写点什么

模块七作业

用户头像
梦寐凯旋
关注
发布于: 3 小时前

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

【背景】

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

【作业要求】

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

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

【提示】

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

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

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

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

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


业务分级:

1.登录,虚拟商品(鲜花,皮肤,英雄等),点券,库存,支付,充值;


数据分类:

1.依赖 QQ 和微信账号授权登录,生成商城唯一的用户 ID;

2.Session:可重复生成,可丢失,丢失后重新登录;

3.虚拟商品编号:全局唯一不可变,算法生成;

4.点券:全局强一致性,如同账户余额;

5.库存:虚拟商品不同于实物商品,库存不够就随便补,不涉及调货,物流,库存一致性不强;


数据同步:

1.用户 ID:全局唯一,不可变,采用数据库同步 + 消息队列同步;

2. 用户手机号:全局唯一,很少变,采用数据库同步 + 消息队列同步;

3. Session ID:可重复生成,可丢失,不同步,用户重新登录生成;

4.商品编号:全局唯一,不可变,采用数据库同步 + 消息队列同步;

5.库存:非强一致性,变动频繁,采用数据库同步;

6.点券:全局强一致性,变动频繁,采用数据库同步,充值只能在归属地充值;


异常处理:

1.异地机房登录时,没有登录 Session 信息,用户重新登录;

2.异地机房未及时同步商品时,该商品无法购买即可;

3.异地机房未及时同步库存时,允许购买负库存;

4.异地机房点券为及时同步时,可允许用户购买不超过现有的点券数量;


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


用户头像

梦寐凯旋

关注

还未添加个人签名 2018.11.20 加入

还未添加个人简介

评论

发布
暂无评论
模块七作业