写点什么

架构实战营模块 7 作业

作者:陌生流云
  • 2022-12-02
    北京
  • 本文字数:582 字

    阅读完需:约 2 分钟

作业

作业:王者荣耀商城异地多活架构设计

【背景】

假设现在决定要实现王者荣耀里面的商城的异地多活架构,请你分析设计一下。

【作业要求】

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

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

王者荣耀商城业务背景

【业务功能】

登录、充值、订单、查看背包、查看英雄

【关键业务约束】

充值才能购买

余额不足不能购买

英雄、皮肤、道具属于虚拟商品,不涉及到库存

业务分类

充值、购买(订单)

数据分类

【充值】

  • 关联 RoleId 及区服 Id,全局强一致性

  • 点券余额,全局强一致性

  • 依赖微信钱包和 QQ 钱包

【购买一次性道具(英雄、皮肤)】

  • 关联 RoleId、区服 Id 和商品 id,全局强一致性

【购买多次性道具】

可以购买多次,最终一致性

数据同步

【充值】

  • RoleId:RoleID 和区服对应关系,只会新建不会修改,全局强一致性,数据库同步即可。

  • 点券余额:充值只能在归属地充值,全局强一致性,数据库同步即可。

【购买一次性道具(英雄、皮肤)】

  • 关联 RoleId、区服 Id 和商品 id,全局强一致性,数据库同步即可。

【购买多次性道具】

最终一致性,采用数据库 + 消息队列同步

异常处理

  1. 登录异常:微信或 QQ 登录异常,发公告告知用户,恢复正常后补发一定的补偿

  2. 充值异常:恢复后,补偿

  3. 购买英雄、皮肤异常:数据还没有同步过来,只是短时间内看到,可以考虑是否给补偿

  4. 购买道具异常:根据订单数据合并数据,考虑是否给补偿

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


用户头像

陌生流云

关注

还未添加个人签名 2018-04-26 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块 7 作业_架构实战营_陌生流云_InfoQ写作社区