写点什么

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

作者:白杨
  • 2023-04-08
    广东
  • 本文字数:916 字

    阅读完需:约 3 分钟

【背景】

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

【作业要求】

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

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

【提示】

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

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

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

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

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


设计步骤

步骤一:业务分级


• 王者荣耀商城涉及注册、登录、点券、道具(英雄、皮肤、特效等)、活动;


• 在异地多活架构设计中,需要优先保障的是登录、点券、道具。


步骤二:数据分类


• 用户信息关键数据:RoleID。依赖 QQ 、微信、苹果账号授权登录,本身无需登录信息,QQ、微信、苹果授权登录会返回给王者荣耀全局唯一 RoleID;


• 登录关键数据:登录 Session。拿到 RoleID 时,生成游戏访问所需要的 Session;


• 充值关键数据:点券信息。充值依赖 QQ、微信、苹果支付系统,充值成功后,按对应平台的回调信息更新点券数值即可;


• 道具关键数据:用户点击购买道具时,检查其是否已经拥有(APP 前台检查,已付款的隐藏购买选项),若没有购买过,则在校验点券足够之后,解锁道具的使用权限,并完成点券扣除。


步骤三:数据同步


• RoleID:接受到登录请求的服务器自行去调用三方接口获取,不涉及数据同步;


• 登录 Session:由 DNS 将请求路由到对应服务器,不涉及数据同步,登录时自动生成即可。若所在区域的机房整个宕机,提示用户重新登录;


• 点券数据:三方充值成功的回调消息执行幂等消费,


• 道具数据:类似于用户的权限信息,购买后,按 RoleID 全量复制到其他


步骤四:异常处理


• 微信、QQ、苹果登录不上、三方充值失败:发布公告,让用户耐心等待三方修复问题;


• 充值扣款点券却没更新:通过客服申诉,由人工复核,若确认系统问题,在恢复其余额的同时,给予适当补偿;


• 道具购买后,后续发现还不能使用道具:提示用户稍后再查看,等待数据复制,视情况可以给予用户补偿。


架构图


用户头像

白杨

关注

还未添加个人签名 2017-11-02 加入

还未添加个人简介

评论

发布
暂无评论
王者荣耀商城异地多活架构设计_白杨_InfoQ写作社区