写点什么

实战异地多活架构之王者荣耀商城

作者:晨亮
  • 2022 年 4 月 01 日
  • 本文字数:635 字

    阅读完需:约 2 分钟

异地多活的几点前提


  • 选择访问量高的,核心的业务,收入来源高的业务做异地多活

  • 尽量选择最终一致性的数据做异地多活,因为强一致性的复杂度高,成本高

  • 尽量选择数据是全局唯一或者可重复的业务做异地多活

  • 数据同步的方式一般有数据库同步,消息队列,二次读取,回源读取

  • 可以选择业务补偿,事后补偿,人工修正等手段补偿异地多活方案出现的异常情况


业务特性分析

  • 王者荣耀商城和电商的区别,商品全局唯一没有库存不能退货

  • 用户要先调用微信钱包或者 QQ 钱包充值点券,然后在商城里面用点券支付

  • 用户买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买

  • 用户买鲜花、改名卡之类的道具可以买多个


异地多活设计步骤

1.选择异地多活的业务

商城的浏览

英雄和皮肤的购买

2.数据分类

新商品上架:

商品信息全局唯一,并且不能修改,没有库存的概念

商品的信息满足最终一致性,对数据同步的延时要求不高

对于商家失败的商品可以由运营重新编辑商品上架

购买:

购买记录全局唯一,并且不能修改

购买记录满足最终一致性,对于数据同步的延迟要求不高

3.数据同步

新商品上架:

每次有新出的商城物品,商品 ID 用算法生成,商品详情信息做数据库同步

购买:

英雄和皮肤购买记录,全局唯一,不能改变,采用数据库+消息队列同步

4.异常处理

新商品上架:

购买:

1.微信和 QQ 挂了不能购买怎么办? 直接挂公告:系统停服维护。

2.购买的记录没能同步到异地机房, 客服手动添加。

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


用户头像

晨亮

关注

还未添加个人签名 2018.10.28 加入

还未添加个人简介

评论

发布
暂无评论
实战异地多活架构之王者荣耀商城_「架构实战营」_晨亮_InfoQ写作平台