写点什么

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

作者:ren
  • 2022 年 1 月 15 日
  • 本文字数:510 字

    阅读完需:约 2 分钟

业务背景

 

【业务数据】

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

 

【业务功能】

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

 

【业务约束】

登录用户才能购买

商城是虚拟物品商城

要先调用微信钱包或者 QQ 钱包充值点券,商城使用点券消费

英雄、皮肤只能买一个,不能重复购买

鲜花、改名卡之类的可以买多个

 

数据分类

 

商城是个人商城

玩家不能多机登录

商城只使用自己的点券

必须登录才能购买

所以可以通过用户的 roleId 和自增 id 操作 id 保证最终一致性

英雄、皮肤只能购买一个,满足幂等

鲜花、改名卡多次调用会出问题,可以通过唯一 id 保证幂等

 

需要保存玩家点券、物品、记录

点券数和 RoleID 绑定

RoleID+自增订单 id+操作 id

物品数据:和 RoleID 绑定,需要查询是否已有

 

数据同步:

RoleID 同登录

订单 ID 根据用户记录的 id 自增

操作 ID 具体定义即可

用户数据检查是否拥有该道具

 

异常处理

1. 微信和 QQ 挂了,如果点券不够那就买不了,有点券就还能服务

2. 支付之后没到账,利用消息队列保证最终一致性,可以让玩家重新刷新,稍后再试

3. 真的没有恢复,那就客服补偿该物品即可

 

用户头像

ren

关注

还未添加个人签名 2021.07.22 加入

还未添加个人简介

评论

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