写点什么

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

作者:smile
  • 2022 年 4 月 07 日
  • 本文字数:1024 字

    阅读完需:约 3 分钟

【背景】

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

【作业要求】

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

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

【提示】

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

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

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

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

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


业务分析

1.业务分级

王者荣耀访问: 登录>注册

商城的核心场景情况: 点券>皮肤>道具

收入情况: 点券充值>点券支付

综合考虑,在异地多活架构设计中,需要优先保障:登录、点券、皮肤、道具


2.数据分类

【商城】

RoleID:和区分对应关系,只会新建不会修改

商品数据:商城虚拟商品(英雄、皮肤、道具)的数据商品上架后很少修改(英雄上架就一直存在,皮肤上架后大部分一直存在,另一部分有期限)。

充值订单 ID:每次新建,全局唯一,不会修改;

充值订单数据:和订单 ID 绑定,不会修改;

支付订单 ID:每次新建,全局唯一,不会修改;

支付订单数据:和订单 ID 绑定,不会修改

玩家充值虚拟货币余额,随着充值和购买虚拟商品操作会进行修改,且具有强一致性,不可丢失。

玩家已购买的商品数据,数据只有新增,没有修改,只需要最终一致性就可以,不可丢失(英雄和皮肤:每个账号只能购买一次;道具可购买多次)


3. 数据同步

RoleID:和区分对应关系,只会新建不会修改,数据库同步

商品数据:商城虚拟商品(英雄、皮肤、道具)的数据商品上架后很少修改(英雄上架就一直存在,皮肤上架后大部分一直存在,另一部分有期限),数据库同步

充值订单 ID:每次新建,全局唯一,不会修改,数据库同步

充值订单数据:和订单 ID 绑定,不会修改,数据库同步

支付订单 ID:每次新建,全局唯一,不会修改,数据库同步

支付订单数据:和订单 ID 绑定,不会修改,数据库同步

玩家充值虚拟货币余额,随着充值和购买虚拟商品操作会进行修改,且具有强一致性,不可丢失,数据库同步

玩家已购买的商品数据,数据只有新增,没有修改,只需要最终一致性就可以,不可丢失(英雄和皮肤:每个账号只能购买一次;道具可购买多次)数据库同步


4. 异常处理

① 登录异常:短期登录异常就用户重试,长时间登录异常出公告和告示,恢复正常后给予一定补偿

② 点券充值异常:客诉,人工修正数据,恢复余额,适当补偿


架构设计图



用户头像

smile

关注

还未添加个人签名 2021.04.07 加入

还未添加个人简介

评论

发布
暂无评论
王者荣耀商城异地多活架构设计_smile_InfoQ写作平台