如何设计业务异地多活架构 - 作业
作业要求:
1. 分析王者荣耀商城的业务特点,设计其异地多活架构;
2. 按照模块 7 第 5 课的方法来设计异地多活架构。
提示:
1. 王者荣耀的商城是虚拟物品商城,和淘宝这种实物电商有两个很大的区别,注意识别出来;
2. 用户要先调用微信钱包或者 QQ 钱包充值点券,然后在商城里面用点券支付;
3. 用户买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买;
4. 用户买鲜花、改名卡之类的道具可以买多个;
5. 分析步骤参考模块 7 第 6 课的案例。
数据分级
王者荣耀的商城是虚拟物品商城, 和淘宝这种实物电商有两个很大的区别:
虚拟物品不涉及到发货流程,没有物流信息,下单之后直接到账
虚拟物品不涉及到库存, 只要用户下达,自动生成虚拟商品,直接到账
数据分级分析
核心数据
账户: 调用微信 QQ 授权登录 > 获得 RoleID
点券:调用钱包充值 > 增加点券
英雄、皮肤:使用点券购买英雄、皮肤 > 英雄、皮肤到账
鲜花、道具:使用点券购买鲜花、道具 > 鲜花、道具到账
数据分类
数据同步
账户 RoleID
同时支持两种数据复制通道:
RoleID 从 IDC-A 数据库 同步数据到 IDC-B 数据库 (数据库主从同步)
RoleID 的新增和更新会产生消息发布到消息队列中,IDC-B 来消费消息,然后 crud RoleID
点券
点券数据是要求强一致性,不允许丢失的。使用数据库来同步点券数据,如果数据库同步失败,采用异步消息通知,消费端不断重试修改的方式。
英雄、皮肤、鲜花、道具
这些都是区域性数据,购买的时候做好幂等就可以了
英雄皮肤
使用 UID 和 HeroId 来限制购买的幂等性
鲜花道具
不限制购买数量,下单就增加道具数量
如果出现数据库宕机,导致数据没有同步成功,采用消息异步通知的方式,重试入库的方式。
版权声明: 本文为 InfoQ 作者【阿拉阿拉幽幽】的原创文章。
原文链接:【http://xie.infoq.cn/article/4e0c03f72c8004520f88b4798】。文章转载请联系作者。
评论