写点什么

如何设计业务异地多活架构 - week7

作者:in9
  • 2022-12-05
    北京
  • 本文字数:609 字

    阅读完需:约 2 分钟

1 业务背景

目前在王者荣耀游戏的业务上,我们已经针对核心业务 Top3 中的登录和对战进行了异地多活架构设计,并已经落地运行。现针对游戏商城业务进行异地多活架构设计,尽可能做到保证玩家在游戏中的商品购买的稳定性。


2 数据分类

【购买商品】

  1. 用户 ID:由微信和 QQ 授权登录,会返回全局唯一 RoleID, 登录后此 ID 是唯一的。

  2. 商品 ID:商品信息,包括英雄、皮肤等虚拟物品,每个商品 ID 都是唯一的。

  3. 用户余额:全局强一致性。

  4. 充值 ID:此 ID 用户用于建立与微信钱包或 QQ 钱包等发起,充值 ID 是唯一的,不可变。

  5. 支付 ID:商城内支付请求 ID, 用户记录用户通过点卷购买对应的商品,支付 ID 是唯一的,不可变的。

3 数据同步

  1. 用户 ID: 全局唯一,不可变,登录场景已经包含用户 ID 的同步设计,主要采用数据同步+消息队列同步。

  2. 商品 ID:当有新商品加入时,会产生新的商品 ID, 商品 ID 全局唯一,不会修改,采用算法生成,数据库同步即可。

  3. 用户余额:采用数据库同步,且保证全局强一致性。且只能在归属地充值。

  4. 充值 ID:充值 ID 由三方充值商提供,唯一 ID,不可变,采用双主方式写入。

  5. 支付 ID:支付 ID 由内部生成的唯一 ID,不可变,采用双主方式写入。

4 异常处理

  1. 无法充值: 因支付商(qq 钱包和微信钱包)异常导致的违法充值,直接挂公告提示用户暂时无法充值。

  2. 充值未到账:

  • 通过人工审核,手动调整。

  • 客户等待一段时间等待数据一致性延时

  1. 无法支付:

  • 客户等待一段时间后再尝试

  • 或因支付失败,重新将产品加入购物车,等待支付恢复。

5 异地多活架构示意图


用户头像

in9

关注

还未添加个人签名 2017-11-30 加入

还未添加个人简介

评论

发布
暂无评论
如何设计业务异地多活架构 - week7_in9_InfoQ写作社区