写点什么

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

作者:Geek_cb2b43
  • 2021 年 12 月 23 日
  • 本文字数:744 字

    阅读完需:约 2 分钟

1 王者荣耀业务背景

【业务数据】

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

王者荣耀的商城是虚拟物品商城;不存在物流和实物,只是虚拟的数字,即不存在库存 

【业务功能】

1.用户先调用微信钱包或者 QQ 钱包充值点券,再在商城里面用点券支付; 

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

【业务约束】

1 王者荣耀的商城是虚拟物品商城; 

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

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

设计步骤 1 -业务分级

主要业务有登录(qq 或微信,得到 id),充值、支付(需要服务间数据同步)

次要业务英雄、皮肤、道具,修改量非常小,几乎可以忽略,本地数据几乎不更新

设计步骤 2 -数据分类

【登录】

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

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

3.王者荣耀只需要记录 RoleID 对应的区服信息,

 

 【充值】

增加账号的余额,生成充值流水

【购买】

更新与 roleid 相关的属性,

【点券支付】

减少余额,生成订单流水

设计步骤 3 -数据同步

【登录】

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

【充值】

余额(主主同步,一致性高),充值流水(全量同步,一致性弱),数据库同步

【购买】

roleid 相关的属性,数据库同步(主主同步,一致性高)

【点券支付】

余额(主主同步,一致性高),订单流水(全量同步,一致性弱),数据库同步

设计步骤 4 -异常处理

【登录】

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

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

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

等系统恢复就可以玩了。

【充值】

异常,返回用户余额到银行卡,与银行交易有关

 

【购买】

异常,等系统恢复

【点券支付】

异常,等系统恢复

 

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


用户头像

Geek_cb2b43

关注

还未添加个人签名 2020.10.20 加入

还未添加个人简介

评论

发布
暂无评论
王者荣耀商城异地多活架构设计