写点什么

模块 7 作业 - 王者荣耀商城异地多活架构设计

  • 2022 年 4 月 05 日
  • 本文字数:934 字

    阅读完需:约 3 分钟

【背景】

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

【作业要求】

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

【提示】

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

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

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

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

 

一、业务分级

核心业务;登录、充值、购买(英雄和皮肤)

 

二、数据分类

【登录】

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

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

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

【充值】

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

2. 充值订单 ID:全局唯一,不可重复,每次算法生成。

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

【购买】

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

2. 购买订单 ID:全局唯一,不可重复,每次算法生成。

3. 英雄和皮肤的商品 ID:全局唯一,不可重复,算法生成。

 

三、数据同步

【登录】

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

【充值】

1. RoleID:同登录;

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

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

【购买】

1. RoleID:同登录;

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

3.英雄和皮肤的商品 ID:全局一致性,不会修改,数据库同步即可;

 

四、异常处理

【登录】

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

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

【充值】

1. 充值服务挂了怎么办?

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

2. 充值过程中,服务异常怎么办?

系统提示:支付核对中。人工订正数据,达到最终一致性;

3. 点券余额没有同步到异地机房,用户看不到怎么办?

等恢复了再看。

【购买】

1.购买服务挂了怎么办?

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

2.购买过程中,服务异常怎么办?

系统提示:购买核对中。人工订正数据,达到最终一致性;

3.用户异地机房点券余额不够,用户无法购买怎么办?

业务上放松一部分约束,允许一定额度的欠费。


五、架构示意图


发布于: 刚刚阅读数: 2
用户头像

还未添加个人签名 2018.08.31 加入

还未添加个人简介

评论

发布
暂无评论
模块7作业-王者荣耀商城异地多活架构设计_#架构实战营_卡西毛豆静爸_InfoQ写作平台