写点什么

架构实战营模块七作业

作者:Geek_Q
  • 2022 年 7 月 20 日
  • 本文字数:558 字

    阅读完需:约 2 分钟

王者荣耀商城异地多活架构设计

原理

CAP 只能同时满足两个,AP。遵循 BASE 理论,出现短暂的不一致,业务上可接受,满足最终一致性。

原则

  1. 只保证核心业务:不同业务的数据特征不同,无法全部异地多活。

  2. 只能做到最终一致性:复制肯定有时间窗,会有短暂不一致状态。

  3. 只能保证绝大多数用户。

业务分析

登录:使用微信或 QQ 返回的 roleId,与区服关联

注册:用户只有注册了账户才能登录游戏商城

下单:使用点券购买商品

商品:英雄和皮肤只能买一个,不能重复购买;鲜花、改名卡之类道具可以买多个;数据修改的频率低。

与淘宝等商城区别:游戏商城商品是虚拟物品,对数据的高可用要求很高;没有退货业务,没有库存业务。

业务分级

登录和下单最重要,不能登录,就不能买商品;不能下单也不能购买商品。

数据分类

登录使用微信或 QQ 返回的 roleId,与区服关联,而区服只新增,不会修改,数据库同步。

下单使用 roleId 关联商品 id、商品数量生产订单,只新增,不会修改,数据库同步。

异常处理

  1. 微信或 QQ 不可用

直接挂公告,系统停服维护;

  1. 玩家在某区服注册账户,切换中心后,没有了

等系统恢复了就能看到了;

  1. 下单后系统挂掉,买到的商品没了

等系统恢复后就能看到,如果不能恢复,则补偿用户;

  1. 在主买了英雄和皮肤,切换后,发现没有购买,用户再次购买,主中心恢复后,英雄和皮肤重复

帮用户去重

异地多活架构图


用户头像

Geek_Q

关注

还未添加个人签名 2021.10.21 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块七作业_Geek_Q_InfoQ写作社区