架构实战营模块 7 作业
作业
作业:王者荣耀商城异地多活架构设计
【背景】
假设现在决定要实现王者荣耀里面的商城的异地多活架构,请你分析设计一下。
【作业要求】
1. 分析王者荣耀商城的业务特点,设计其异地多活架构;
2. 按照模块 7 第 5 课的方法来设计异地多活架构。
王者荣耀商城业务背景
【业务功能】
登录、充值、订单、查看背包、查看英雄
【关键业务约束】
充值才能购买
余额不足不能购买
英雄、皮肤、道具属于虚拟商品,不涉及到库存
业务分类
充值、购买(订单)
数据分类
【充值】
关联 RoleId 及区服 Id,全局强一致性
点券余额,全局强一致性
依赖微信钱包和 QQ 钱包
【购买一次性道具(英雄、皮肤)】
关联 RoleId、区服 Id 和商品 id,全局强一致性
【购买多次性道具】
可以购买多次,最终一致性
数据同步
【充值】
RoleId:RoleID 和区服对应关系,只会新建不会修改,全局强一致性,数据库同步即可。
点券余额:充值只能在归属地充值,全局强一致性,数据库同步即可。
【购买一次性道具(英雄、皮肤)】
关联 RoleId、区服 Id 和商品 id,全局强一致性,数据库同步即可。
【购买多次性道具】
最终一致性,采用数据库 + 消息队列同步
异常处理
登录异常:微信或 QQ 登录异常,发公告告知用户,恢复正常后补发一定的补偿
充值异常:恢复后,补偿
购买英雄、皮肤异常:数据还没有同步过来,只是短时间内看到,可以考虑是否给补偿
购买道具异常:根据订单数据合并数据,考虑是否给补偿
评论