写点什么

模块七

作者:Geek_2ce415
  • 2022 年 7 月 18 日
  • 本文字数:994 字

    阅读完需:约 3 分钟

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

【背景】

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

【作业要求】

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

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

【提示】

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

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

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

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

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


一、业务分析

1、业务分级:

王者荣耀商城业务的功能模块大致可分为:登录、商品管理、支付、订单管理。

 

2、数据分类:

【登录】

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

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

3.王者荣耀只需要记录 RoleID 对应的区服信息,区服数据只会新增不会修改。

【商品管理】

1、商品 ID,包括英雄 ID、皮肤 ID、道具 ID,具有全局唯一性。

2、商品库存,数据不可丢失,强一致性。

3、商品信息,包括商品类型(英雄、皮肤、道具等)、价格、商品详情、销量、评价等。

【支付】

1、RoleID:登录后就不会变了。

2、点券余额:和 RoleID 绑定,根据充值和购买商品而变化,数据不可丢失,强一致性

【订单管理】

订单 ID,全局唯一,不可重复,每次新增,不可丢失

 

3、数据同步:

【登录】

RoleID 和区服对应关系,只会新建不会修改,数据库同步即可。

【商品管理】

1、商品 ID,全局唯一性,采用数据库同步

2、商品库存,全局一致性,根据商品和订单而变化,采用数据库同步

【支付】

1、RoleID:和区服对应关系,只会新建不会修改,数据库同步即可;

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

【订单管理】

订单 ID,全局唯一性,采用数据库同步

 

4、异常处理:

【登录】

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

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

2. 玩家在某个区服开了小号,没同步到异地机房,玩不了怎么办?

等系统恢复就可以玩了。

【商品管理】

1、商品没有同步到异地机房,导致用户在商城搜索不到该商品怎么办?

用户重试二次搜索,读取另外一个机房数据库

【支付】

1、微信/qq 钱包充值后点券余额没有同步怎么办?

刷新等待数据同步完成后再可以购买商品

2、支付商品后没有扣除点券余额怎么办?

成功扣除点券后订单才正式完成

【订单】


二、商城异地多活架构


用户头像

Geek_2ce415

关注

还未添加个人签名 2021.05.12 加入

还未添加个人简介

评论

发布
暂无评论
模块七_Geek_2ce415_InfoQ写作社区