王者荣耀商城异地多活架构设计
王者荣耀商城有哪些数据?
1、点券:充值获取,强一致性
2、虚拟商品信息:无库存概念,全局统一
3、roleId:登录后不会变化,全局唯一
4、订单:只会新建不会修改。
5、roleID 关联的商品数据:很少修改。
相关数据如何同步?
1、点券:数据库同步。
2、虚拟商品信息:不同步,全局缓存。
3、roleId:不同步,重新登录获取。
4、订单:数据库同步
5、roleID 关联的其它用户数据按照区服同步(英雄、皮肤、等级、成就、铭文……):数据库同步
架构示意图:
整体架构类似上图,将对战服务器换为商城服务器,对战结果更换为购买商品的消息同步,主主同步的数据为订单数据,订单数据只新建不更新,可以做主主同步。
异常处理:
当前机房宕机,点券数据未同步?
1、可以按当前的余额让用户进行购买。
2、若用户新增的点券未同步,可以容忍用户晚点等恢复了再购买。
3、若用户减少的点券未同步,可能会造成透支。
4、等恢复后发现透支时,提醒用户进行充值补偿或回收相应物品。
用户的商品数据未同步,用户重复购买商品?
1、允许用户重复购买,恢复后合并相应物品。
2、若用户提出申诉,给用户进行相应的回滚和补偿。
版权声明: 本文为 InfoQ 作者【Sky】的原创文章。
原文链接:【http://xie.infoq.cn/article/6ca1a98a1be4eba3f626efdd4】。未经作者许可,禁止转载。
评论