写点什么

架构实战营 第 4 期 模块七作业

作者:
  • 2022 年 2 月 17 日
  • 本文字数:892 字

    阅读完需:约 3 分钟

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

商城业务功能

  1. 进入商城,查看皮肤、英雄

  2. 充值,使用微信钱包或 QQ 钱包充值点券,商城中使用点券进行支付

  3. 支付,使用点券购买皮肤、英雄、鲜花等虚拟商品,

  4. 商品无库存,但是英雄和皮肤只能买 1 个,不能重复购买,鲜花、改名卡之类的道具可以买多个

  5. 商品发送给玩家指定区服的账户

设计步骤 1 - 业务分级

选择进入 商城、支付 作为核心功能


选择原因:1. 选择进入商城: 只有用户查看商品才会进行后续的,充值、支付操作


  1. 选择 支付:用户消费是游戏盈利的途径,商城如果不能支付购物商品,会直接影响游戏收益

  2. 不选择 充值: 用户可以通过多种渠道进行充值,多个渠道同时无法支付的概率相对较低

  3. 不选择 商品库存:除了英雄和皮肤外,其他物品用户是可以无限次购买,用户如果重复购买了限制商品比如英雄和皮肤,并不会影响游戏体验,可以通过后续返还点券的方式来补偿用户

  4. 不选择 商品发送给玩家指定区服的账户:游戏商城的物品都是虚拟物品,物品即使延迟发放,用户也可以接受,并不会影响游戏体验。如果系统出现问题,也可以通过后台给用户重新补发,即使超发也并无损失,也可以通过返还点券、体验券的方式来补偿用户

设计步骤 2 - 数据分类

浏览商品


  1. 商品 id:游戏商城的商品是固定的,并且所有区服中商品都是相同的,商品一旦创建,就不会进行修改,数据库同步即可

  2. 商品数据:跟商品 id 绑定,修改频率低,数据库同步即可


支付


  1. 订单 id: 根据商品 id 和用户生成 全局唯一 id

  2. 订单记录:订单数据跟订单 id 绑定,不允许修改,数据库同步

设计步骤 3 - 数据同步

设计步骤 4 - 异常处理

浏览商品

1.商城系统更新后,商品未同步


等待商城系统数据同步,用户可以正常购买已有的商品,新增商品同步后再购买


2.商城系统服务异常


切换至其他机房,商品数据都相同不影响用户使用

支付

1.用户支付过程中,商城系统异常


允许用户发起退款,或者商城系统恢复后重新同步支付记录,进行补发。当商城系统切换至异地机房时,用户可以对同一商品进行支付,后续商城恢复同步时进行补偿


2.用户充值点券后,点券数据未同步至异地机房


当用户使用异地机房支付时,如果异地机房的点券余额充足,则允许用户支付,不足时,不允许用户支付,

商城异地多活架构示意图


用户头像

关注

还未添加个人签名 2018.08.10 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营 第 4 期 模块七作业