写点什么

模块七作业

用户头像
VE
关注
发布于: 5 小时前
模块七作业

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

【背景】

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

【作业要求】

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

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

【提示】

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

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

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

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

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


1. 业务分级

充值,购买商品

2. 数据分类

【充值】

1.用户 ID:全局唯一,不可变,由 QQ 或微信登陆后返回;

2.区服信息:只需要记录用户对应的区服信息,区服信息只会新增不会修改;

3.点券余额:全局强一致性。


【购买商品】

1.用户 ID:全局唯一,不可变,由 QQ 或微信登陆后返回;

2.区服信息:只需要记录用户对应的区服信息,区服信息只会新增不会修改;

3.点券余额:全局强一致性;

4.英雄与皮肤数据:同一英雄与皮肤在同一个区服内不可重复,全局强一致性;

5.其他道具:可以买多个,最终一致性。

3. 数据同步

【充值】

1.用户 ID:只会新建不会修改,数据库同步+消息队列;

2.区服信息:只会新建不会修改,数据库同步+消息队列;

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


【购买商品】

1.用户 ID:只会新建不会修改,数据库同步+消息队列;

2.区服信息:只会新建不会修改,数据库同步+消息队列;

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

4.英雄与皮肤数据:全局一致性,采用数据库同步,购买只能在归属地服务器操作。

5.其他道具:最终一致性,采用数据库同步+消息队列。

4. 异常处理

【充值】

1.QQ 服务器故障或微信服务器故障导致无法充值,怎么办?

如果 QQ 服务器故障,可以使用微信充值。如果微信服务器故障,可以使用 QQ 充值。如果同时故障可以提示【暂时无法充值】,等待恢复后再充值。


2.充值过程中,微信余额已经被扣除,但是点券没有增加,怎么办?

联系王者荣耀客服介入,补齐丢失的点券,并且可以发放小道具补偿。


【购买商品】

1.购买了英雄或者皮肤,但是由于未同步至异地服务器,导致无法使用,怎么办?

可以等待同步完成后再使用。


2.购买鲜花,但是到账的数量与实际购买的数量不一致,怎么办?

联系客服解决处理,可以通过发放鲜花,或者修改鲜花数量来解决。


5. 王者荣耀异地多活架构示意图


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

VE

关注

还未添加个人签名 2021.04.18 加入

还未添加个人简介

评论

发布
暂无评论
模块七作业