写点什么

模块七

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

    阅读完需:约 2 分钟

背景

业务功能

  1. 使用微信/QQ 登录游戏

  2. 商城查看商品

  3. 在商城购买商品

  4. 调用微信/QQ 点券充值


关键业务约束

  1. 登录才能进入商城

  2. 同一款皮肤,只能购买一次

  3. 道具类的商品可以重复购买

  4. 虚拟商品购买之后立即发货,不能退款

  5. 商品没有库存限制


设计步骤 1 - 业务分级

业务

登录,下单,点券,商品


核心业务

登录,点券,下单


设计步骤 2 - 数据分类

登录

  1. 依赖 QQ 和微信账号授权登录,本身无需登录信息;

  2. 微信和 QQ 授权登录会返回给王者荣耀全局唯一 RoleID;

  3. 王者荣耀只需要记录 RoleID 对应的区服信息,区服数据只会新增不会修改。


点券

  1. 依赖 QQ 和微信充值

  2. 充值成功后,返回对应的流水 id,全局唯一

  3. 充值记录只会新增不会修改,并会将点券写入区服对应的账户中


下单

  1. 玩家皮肤 ID:针对皮肤根据区服信息和皮肤数据,利用算法生成全局唯一 id,不修改

  2. 玩家道具订单 ID:针对道具类,根据用户和道具,时间,利用算法生成全局唯一 id,数据会存在修改

  3. 下单成功后,自动发货,不会有扣库存的步骤,所以下单扣完点券成功,就代表购买成功


设计步骤 3 - 数据同步

登录

RoleID 和区服对应关系,只会新建不会修改,数据库同步即可。


点券

点券余额:全局一致,采用数据库同步


下单

玩家皮肤 ID:全局唯一,不可变,数据库同步+消息队列同步

玩家道具订单 ID:全局唯一,不可变,数据库同步+消息队列同步


设计步骤 4 - 异常处理

登录

  1. 微信和 QQ 挂了怎么办?

直接挂公告:系统停服维护。

  1. 玩家在某个区服开了小号,没同步到异地机房,购买不了怎么办?

等系统恢复就可以购买。


点券

  1. 微信和 QQ 挂了怎么办?

直接挂公告:系统停服维护。

  1. B 机房宕机,导致点券同步失败?

点券功能暂时关闭不可用


下单

  1. 道具和皮肤同步失败怎么办?

产品方案解决,通过商店公告提示玩家,商品数据写入存在一定延时


异地多活架构图



发布于: 刚刚阅读数: 2
用户头像

Only

关注

还未添加个人签名 2020.05.27 加入

还未添加个人简介

评论

发布
暂无评论
模块七