写点什么

[架构实战营] 第七模块

作者:Vincent
  • 2022 年 2 月 17 日
  • 本文字数:536 字

    阅读完需:约 2 分钟

王者荣耀商城异地多活架构分析

业务分级
1. 用户信息2. 充值(本地拉起支付通道,支付成功后回调充值)3. 购买(内部服务,下单后直接发货,对应全局RID+区服)
复制代码
数据分类
  1. 用户信息,全局唯一,不可丢失

  2. 余额,最终一致性,不可丢失,

  3. 英雄+皮肤,全局唯一,可恢复

  4. 其他道具,可重复,可丢失,可恢复

数据同步
  1. 用户信息

  2. 用户 ID,全局唯一,数据库+消息队列

  3. 用户拥有的商品

  4. 英雄、皮肤,全局唯一,数据库+消息队列同步

  5. 其他商品,全局一致,数据库同步

  6. 充值

  7. 流水号,全局唯一,数据库+消息队列

  8. 余额,全局一致,数据库同步

  9. 购买

  10. 订单号,不同步,算法保证全局唯一,只新增

异常处理
  1. 用户信息

  2. 如果用户无法登录,直接停服公告

  3. 如果用户在南方机房购买了英雄/皮肤,没有同步到北方机房,用户在北方机房再次购买怎么办?

  4. 多次购买记录,退点券即可

  5. 如果用户在南方机房购买了非英雄/皮肤商品,没有同步到北方机房,用户在北方机房再次购买怎么办?

  6. 最终一致性,运营恢复,补偿用户

  7. 充值

  8. 无法充值?

  9. 支付通道问题,换支付通道

  10. 自身服务问题,挂公告。

  11. 如果用户在南方机房充值了,没有同步到北方机房怎么办?

  12. 最终一致性,请用户等待一段后刷新查看

  13. 记录好充值日志,人工恢复

  14. 如果用户在北方机房充值消费,记录在临时事务表,等故障恢复后,同步临时事务表

  15. 购买

  16. 订单号全局冲突?

  17. 重新生成即可


架构图:


发布于: 刚刚阅读数: 2
用户头像

Vincent

关注

还未添加个人签名 2018.03.14 加入

还未添加个人简介

评论

发布
暂无评论
[架构实战营]第七模块