写点什么

模块七 - 王者荣耀商城异地多活架构设计

作者:Geek_b35d92
  • 2022-12-07
    江苏
  • 本文字数:708 字

    阅读完需:约 2 分钟

模块七-王者荣耀商城异地多活架构设计

王者荣耀业务背景

业务数据

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

业务功能

  1. 微信、QQ 账号登录

  2. 商城:

  3. 英雄、皮肤、碎片、礼物、其他道具等交易购买

  4. 积分|砖石夺宝、优惠等活动

  5. 交易的币种:游戏金币、钻石、点券,都可以用来购买

关键业务约束

  1. 登录用户才能购买

  2. 一个用户可以在多个区服登录,各区服的英雄、皮肤、道具等权益信息都是独立的


设计分析

业务分级

商城最主要的核心业务就是账号登录、微信 QQ 支付购买点券、游戏金币钻石购买英雄皮肤

数据分类

登录

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

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

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

交易

  1. RoleID:登录后就不会变

  2. 交易 ID: 每次发生交易时创建,全局唯一,不会修改,这里的交易 ID 指:点券充值单 ID、点券|金币|砖石购买虚拟商品记录订单 ID

  3. 商城里点券、金币、钻石购买的皮肤、英雄、道具维度:用户+区服

  4. 其中皮肤、英雄只能购买一次

  5. 其他道具可以购买多次

  6. 虚拟物品没有库存,没有物流信息,支付成功即可获取虚拟物品。

数据同步

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

  2. 交易记录和 RoleID、区服对应关系,只会新建不会修改,数据库同步即可,记录 ID 通过算法(比如 雪花算法)生成

  3. 权益信息(点券、英雄、皮肤、道具)与 RoleID、区服对应关系,强一致性,数据库同步即可

异常处理

  1. 交易记录、购买的英雄皮肤没有同步到异地机房,用户在账号的对应区服下发现没有,怎么办?

适当容忍,提供客服联系入口,通过相关道具礼物作为补偿

  1. 微信、QQ 服务有问题,怎么办

挂公告:系统停机维护,事后通过道具礼物补偿


王者荣耀商城异地多活架构示意图



用户头像

Geek_b35d92

关注

还未添加个人签名 2020-07-13 加入

还未添加个人简介

评论

发布
暂无评论
模块七-王者荣耀商城异地多活架构设计_商城_Geek_b35d92_InfoQ写作社区