模块七作业:王者荣耀商城异地多活架构设计
1)业务分级
王者荣耀商城业务包括:充值、下单、支付、使用道具
核心业务为下单、支付和使用道具。因为商城是使用点券支付的,只要有点券余额就能进行购买,所以对充值业务先不做异地多活。
2)数据分类
【下单】
商品数据:创建好商品后就不会修改,没有库存限制。
背包数据:对于英雄和皮肤类商品,是否可购买要根据用户背包情况来判断。
【支付】
点券余额:数据强一致性要求,且不可丢失。
【使用道具】
背包数据:支付成功后将商品发送到背包。只会新增不会修改。消耗类道具使用后数量相应减少。
3)数据同步
【下单】
商品数据不会频繁修改,数据库同步即可。
背包数据(英雄和皮肤等无数量类道具),数据只会新增,不会删除和修改,数据库同步即可。
【支付】
点券余额需要保证数据强一致要求,可用采用强一致性的分布式数据存储方案。
【使用道具】
背包数据(英雄和皮肤等无数量类道具),同下单业务。
背包数据(鲜花和改名卡有数量类道具),数据强一致性,可用使用强一致性分布式数据存储方案。
4)异常处理
【下单】
1. 用户背包数据(无数量类道具)查不到怎么办?
不可购买英雄和皮肤类商品。
【支付】
1. 点券余额不够,且不能充值怎么办?
等充值功能恢复后再购买。
【使用道具】
用户背包数据(有数量类道具)查不到怎么办?
道具不可用使用。
评论