写点什么

模块七作业

用户头像
Geek_1cdcf6
关注
发布于: 2 小时前

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


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

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

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

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


业务背景

根据 2020.11 月公布的数据,王者荣耀全年日均活跃 1 亿,注册玩家数 6 亿,最高同时在线 100 万。

业务功能

  • 登录:使用微信或 QQ 账号登录游戏

  • 对战:例如匹配、排位、巅峰赛

  • 商城:购买英雄、皮肤、道具等

  • 活动:领取各种奖励和道具

  • 社区:各种攻略,视频等

关键业务约束

商城业务的关键约束:

  • 登录用户才能充值和购买

  • 点卷余额不够不能购买道具

  • 英雄和皮肤不能重复购买

业务分级

登录对战为游戏最核心的部分,其次是商城功能。

商城功能中最核心的是:1. 浏览和购买,2. 充值,其他功能如赠送,打折,抢购等相对优先级更低。

数据分类

商城关键数据:商品信息,用户余额及充值信息,用户拥有商品信息,订单信息。

  • 商城内商品信息:各个英雄,皮肤,道具的商城内元数据,如图片,功能,价格等。虚拟商品一般无库存限制(如果有限时/限量抢购功能等可以额外添加)。

  • 用户 RoleID:和区服对应,区服数据只会新增不会修改。

  • 用户点卷余额:点卷余额信息,绑定 RoleID。

  • 用户充值订单信息:与微信/QQ 支付订单相对应。订单完成后不会再修改。

  • 用户商品购买订单信息:用户购买商城道具的订单。订单完成后不会再修改。

  • 用户已拥有商品信息:用户已经拥有的英雄,皮肤,剩余道具数量等。

数据同步

商品购买信息,强一致性数据库同步,不可丢失。

充值余额信息,强一致性数据库同步,不可丢失。

商城内商品上架信息,数据库同步,最终一致性。

异地多活架构


异常处理

微信或 QQ 挂了怎么办?

  • 对应区服进行公告停服处理。

微信或 QQ 支付出问题怎么办?

  • 暂停充值功能,报错提醒。

充值后未及时同步到异地机房怎么办?

  • 如果消费余额不足,进行暂时性的余额不足提醒。等同步完成之后即可顺利购买,如果同步长时间出问题可以考虑用户道具补偿。

购买英雄或皮肤未及时成功同步导致多次购买怎么办?

  • 对无效订单进行撤销。

发布于: 2 小时前阅读数: 4
用户头像

Geek_1cdcf6

关注

还未添加个人签名 2021.01.18 加入

还未添加个人简介

评论

发布
暂无评论
模块七作业