架构实战营模块七作业
•背景
假设现在决定要实现王者荣耀里面的商城的异地多活架构,请分析设计。
•作业要求
1.分析王者荣耀商城的业务特点,设计其异地多活架构
2.按照模块 7 的方法设计异地多活架构
•提示
1.王者荣耀商城时虚拟物品商城,和淘宝这种实物电商有两个很大的区别,注意识别
2.用户要先调用微信钱包或者 QQ 钱包充值点券,然后用点券支付
3.用户买英雄和皮肤的时候,同样的英雄和皮肤只能买 1 个,不能重复
4.用户买鲜花、改名卡之类的道具可以买多个
5.分析步骤参考模块 7
一、业务分级
商城主要业务分为:碎片商店、英雄(购买)、皮肤(购买)、星元、礼物、特惠、夺宝。可以通过金币商店和碎片兑换两种方式购买。
核心业务为:购买英雄、购买皮肤和充值。购买英雄在游戏中最重要,所以购买英雄第一位。购买需要充值,所以充值第二位。皮肤预估在商城中除了英雄外,购买的量最大,所以第三位。
虚拟物品商城,和实物电商主要区别在于,不用考虑库存和物流。直接在账号里的物品栏里加上某物品即可。
二、数据分类
购买英雄和购买皮肤
已经购买的英雄或皮肤无法重复购买。
已经拥有的英雄或皮肤只会新增,不会减少。
一个 RoleID 在某个大区对应多个英雄。
充值
数据不可丢失,不可重复,需要幂等,所以不可以用消息队列来传输。
需要产生订单数据。
查看购买到的英雄或者皮肤,这个数据只会新增,不会修改。
三、数据同步
除了余额数据会有减少以外,其他的比如 RoleID、英雄 ID、皮肤 ID 都只会新增。所以可以用数据库同步。一开始采用全量同步,后续采用增量同步。
四、异常处理
无法充值或充值渠道无法登录
公告充值服务器正在维护
2.充值完成后,账户没到账
a.提示请刷新。
b. 联系客服,事后赠送赔偿的礼包。
无法购买英雄或皮肤
提示服务器繁忙,该英雄暂时无法购买,请稍后再试。
购买英雄,皮肤完成后,没有到账
a. 提示刷新重新查看
b. 还有问题则由人工客服手动操作,事后可赠送赔偿礼包
充值或购买完成后,无法查看订单信息
a. 提示刷新重新查看
b. 还有问题则由人工客服手动操作,事后可赠送赔偿礼包
评论