写点什么

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

作者:小虾米
  • 2022 年 5 月 31 日
  • 本文字数:452 字

    阅读完需:约 1 分钟

游戏内的商城和一般的电商平台有几个重要区别:

1. 游戏内商城售卖的都是虚拟物品,没有库存的约束。

2. 很多情况下会对购买的数量或者能否购买有一些限制条件,比如限购或者玩家达到一定等级才能进行购买。

  1. 虽然游戏商城可能会有直购,但是大多数场景还是先充值成点券,再使用点券消费。

设计步骤 1 - 业务分级

点券充值>点券消费>商品展示


设计步骤 2 - 数据分类

【点券充值】

RoleID:注册登录后就不会变了;

充值订单 ID:每次新建,全局唯一,不会修改;

点券余额:和 RoleID 绑定,全局强一致。

【点券消费】

RoleID:登录后就不会变了;

商品 ID: 全局唯一,不会修改;

购买订单 ID:每次新建,全局唯一,不会修改;

用户点券余额:和 RoleID 绑定,全局强一致。

【商品展示】

商品 ID: 全局唯一,不会修改。


设计步骤 3 - 数据同步

账号信息(RoleID), 强一致,全区唯一,数据库同步+消息队列同步

充值订单/购买订单:强一致,数据库同步

点券余额:强一致,数据库同步

商品:最终一致,数据库同步


设计步骤 4 - 异常处理

充值失败或商场购买失败,在确定事实后,以人工补偿为主


架构设计图


用户头像

小虾米

关注

还未添加个人签名 2017.10.18 加入

还未添加个人简介

评论

发布
暂无评论
王者荣耀商城异地多活架构设计_架构师实战营_小虾米_InfoQ写作社区