模块七作业 - 王者荣耀商城异地多活架构设计
【背景】
假设现在决定要实现王者荣耀里面的商城的异地多活架构,请你分析设计一下。
【作业要求】
1. 分析王者荣耀商城的业务特点,设计其异地多活架构;
2. 按照模块 7 第 5 课的方法来设计异地多活架构。
虚拟物品商城和实际物品商城的区别
1.没有库存概念,不需要考虑库存
2.不用运输,不需要考虑物流
业务分级
王者荣耀商城的业务有:商品列表、商品展示、充值、消费、抽奖、兑换、奖励等
核心业务:充值、消费
数据分类
充值
充值记录 全局唯一、强一致性、不可丢失、不可恢复
点券结余:强一致性、不可丢失、不可恢复
支付记录:支付依赖微信支付和 QQ 钱包,支付高可用不需要商城实现
消费
订单数据:全局唯一、强一致性、不可丢失、不可恢复
用户拥有的物品:最终一致性、可丢失、可恢复
数据同步
订单 id:每次新建,全局唯一,不修改,用算法生成,使用数据库同步
点券结余:会修改,使用消息队列同步
用户拥有的物品:有些可重复比如铭文,有些不可重复比如英雄、皮肤,会修改、使用消息队列同步
异常处理
微信支付挂了怎么办?
直接挂公告,暂时推荐使用 QQ 钱包支付;只能使用微信支付的用户,建议等微信支付恢复后再充值,恢复之后发通知
用户购买的物品未及时同步到异地机房,用户看不到物品到账怎么办?
等同步之后再看
评论