写点什么

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

  • 2022 年 7 月 20 日
  • 本文字数:670 字

    阅读完需:约 2 分钟

作业要求:

1. 分析王者荣耀商城的业务特点,设计其异地多活架构;

2. 按照模块 7 第 5 课的方法来设计异地多活架构。

提示:

1. 王者荣耀的商城是虚拟物品商城,和淘宝这种实物电商有两个很大的区别,注意识别出来;

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

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

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

5. 分析步骤参考模块 7 第 6 课的案例。


数据分级

王者荣耀的商城是虚拟物品商城, 和淘宝这种实物电商有两个很大的区别:

  1. 虚拟物品不涉及到发货流程,没有物流信息,下单之后直接到账

  2. 虚拟物品不涉及到库存, 只要用户下达,自动生成虚拟商品,直接到账

数据分级分析

核心数据

  • 账户: 调用微信 QQ 授权登录 > 获得 RoleID

  • 点券:调用钱包充值 > 增加点券

  • 英雄、皮肤:使用点券购买英雄、皮肤 > 英雄、皮肤到账

  • 鲜花、道具:使用点券购买鲜花、道具 > 鲜花、道具到账

数据分类


数据同步

账户 RoleID



同时支持两种数据复制通道:

  1. RoleID 从 IDC-A 数据库 同步数据到 IDC-B 数据库 (数据库主从同步)

  2. RoleID 的新增和更新会产生消息发布到消息队列中,IDC-B 来消费消息,然后 crud RoleID

点券

点券数据是要求强一致性,不允许丢失的。使用数据库来同步点券数据,如果数据库同步失败,采用异步消息通知,消费端不断重试修改的方式。


英雄、皮肤、鲜花、道具

这些都是区域性数据,购买的时候做好幂等就可以了

  • 英雄皮肤

使用 UID 和 HeroId 来限制购买的幂等性

  • 鲜花道具

不限制购买数量,下单就增加道具数量

如果出现数据库宕机,导致数据没有同步成功,采用消息异步通知的方式,重试入库的方式。

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

还未添加个人签名 2018.02.08 加入

还未添加个人简介

评论

发布
暂无评论
如何设计业务异地多活架构 - 作业_阿拉阿拉幽幽_InfoQ写作社区