王者荣耀商城异地多活设计
业务分级
业务功能
商品列表、充值点券、通过点券购买商品
业务特点
点券需要用户调用微信或 QQ 钱包充值
点券购买后不能提现
同样的英雄和皮肤只能买 1 个
鲜花、改名卡这类的道具可以买多个
商品都是虚拟物品,不需要考虑库存、物流、退货退款等问题
异地多活选择的业务
商品列表
点券数据
消费流水数据
英雄和皮肤数据
鲜花、改名卡等道具数据
数据分类
商品列表全局只有一份,商品 ID 也是唯一。商品 ID 由人工给定
点券数据,消费流水与用户唯一 ID 绑定
英雄和皮肤,鲜花、改名卡等道具与用户唯一 ID 绑定
数据同步
商品列表所有机房同步一份
与用户 ID 绑定的相关业务数据也同步一份
异常处理
假如商品列表没有同步全,甚至一个都没同步到,由人工直接录入或导入到可用的机房【商品 ID 由人工给定是前提】
由于微信或 QQ 支付已实现了高可用,所以点券充值的异常不作考虑
点券数据用消息队列同步,假如同步出现问题,则通过允许一定程度的透支,记录消费流水,待数据同步恢复后,合并消费流水,再通过流水进行计算
英雄、皮肤数据同步失败后,允许用户再次购买,恢复后合并英雄熟练度和经验值
鲜花、改名卡等可重复购买的道具,在数据同步恢复后,合并数量即可
异地多活架构图
版权声明: 本文为 InfoQ 作者【kylexy_0817】的原创文章。
原文链接:【http://xie.infoq.cn/article/6e6fff5af10e0d73ea41f2522】。文章转载请联系作者。
评论