写点什么

模块七作业

用户头像
袁小芬
关注
发布于: 4 小时前

 一、作业:

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

【背景】

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

【作业要求】

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

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

【提示】

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

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

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

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

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

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

 

1、业务背景

【业务数据】

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

【业务功能】

商城:浏览商品、下订单、支付等。

【业务特点】

(1)商城商品是虚拟的、无存储、物流等需求;

【业务约束】

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

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

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

2、设计步骤

2.1 设计步骤 1 - 业务分级

核心业务:订单、支付。

2.2 设计步骤 2 – 数据分类

订单数据:订单 ID 自动生成,全局唯一,只会新建,不会修改;

点券数据:和用户的 RoleID 关联,全局强一致性,记录充值获得的点券数和消费花费的点券数据;

充值数据:充值由微信钱包或 QQ 钱包管理,王者荣耀需要在点券 ID 下保存充值记录,该记录只会新增,不会修改;

商品数据:商品 ID 自动生成,全局唯一,只会新建,不会修改;

2.3 设计步骤 3 –数据同步

订单数据:每次新建,全局唯一,不会修改,用算法生成,数据库同步即可;

点券数据:需要保证分布式一致性,数据库同步即可;

充值数据:只会新建不会修改,数据库同步即可;

商品数据:每次新建,全局唯一,不会修改,通过数据库同步。

2.4 设计步骤 4 –异常处理

1.充值成功后,数据没有同步到异地机房,用户在异地登录发现点券不足无法消费怎么办?

等数据同步成功后再消费,请用户耐心等候,客服事后补偿。

2. 商品上架后,商品信息没有同步到异地机房,用户无法购买怎么办?

等待同步完成再购买,可以对用户发放补偿。

3、王者荣耀商城异地多活架构示意图

与模块 7 第 6 课对战异地多活架构示意图相同。


发布于: 4 小时前阅读数: 10
用户头像

袁小芬

关注

还未添加个人签名 2019.04.22 加入

还未添加个人简介

评论

发布
暂无评论
模块七作业