写点什么

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

作者:π
  • 2022-12-07
    广东
  • 本文字数:758 字

    阅读完需:约 2 分钟

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

一、业务背景

【业务数据】

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

【业务功能】

1. 使用微信或者 QQ 账号登录游戏;

2. 商城:购买英雄、皮肤、道具等;

【关键业务约束】

1. 登录用户才能在商城购买英雄、皮肤、道具等;

2. 用户属于不同的区服,例如 Android 平台微信 22 区“刺客信条”,同一微信 ID 可以加入多个区服,俗称“大号”、“小号”,不同区服购买的英雄、皮肤和道具不能共享;

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

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

二、商城业务分析


2.1 业务分级

按核心场景优先级:浏览商品>购买英雄、皮肤、道具>充值。游戏虚拟电子商品无需库存管理,浏览商品缓存至客户端本地可以不用做异地多活,充值业务做异地多活比较复杂,综合考虑选择购买英雄、皮肤、道具业务做异地多活。

2.2 数据分类

【购买英雄、皮肤、道具】

RoleID:登录后就不会变了;

订单 ID:每次新建,全局唯一,不会修改;

已购商品:与 RoleID 绑定,交易成功后新增商品与用户角色的关系数据,不会修改;

2.3 数据同步

【购买英雄、皮肤、道具】

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

订单 ID:每次新建,全局唯一,不会修改,用算法生成,数据库同步即可;

已购商品:与 RoleID 绑定,交易成功后新增商品与用户角色的关系数据,不会修改,数据库同步即可;

2.4 异常处理

【购买英雄、皮肤、道具】

1. 用户购买交易过程中系统挂掉怎么办?

用户重新购买即可,原有交易数据作废。

2. 用户购买的商品数据未及时同步到异地机房,用户无法使用已购英雄、皮肤和道具怎么办?

等恢复了再使用。

3. 用户购买的商品数据未及时同步到异地机房,用户若再次购买同一英雄、皮肤怎么办?

系统挂掉后公告用户不能交易英雄和皮肤,等恢复了再购买。

二、异地多活架构


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

π

关注

还未添加个人签名 2019-01-31 加入

还未添加个人简介

评论

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