写点什么

第七周作业 - 王者荣耀商城异地多活架构设计

  • 2023-02-23
    北京
  • 本文字数:811 字

    阅读完需:约 3 分钟

业务背景

2020.11 月 全年日均活跃 1 亿,注册玩家 6 亿,同时最高在线 100w

业务功能

充值点券、购买英雄、皮肤、道具

业务约束

登录用户才能购买

用户需要先通过微信钱包或者 QQ 钱包充值购买点券,用点券再支付

同样的英雄和皮肤只能购买一个,不可重复

鲜花、改名卡、遗忘之水等道具卡可以买多个

业务分级

充值点券、消费点券

数据分类

【充值】

依赖 QQ 钱包、微信钱包、ios 账户授权支付,依赖登录信息

RoleID: 登录后就不会变了

授权 ID: 每次新建,全局唯一,不会修改

充值 ID: 每次新建,全局唯一,不会修改

点券余额:强一致性、不可丢失、不可恢复

【消费】

消费点券:强一致性、不可丢失、不可恢复、数据修改大

RoleID: 登录后就不会变了

支付 ID:只会新增、全局唯一

消费记录:1)英雄或皮肤 --> RoleID+英雄 ID 或皮肤 ID 全局唯一

2)道具:---> RoleID+道具 ID -->可重复

数据同步

【充值】

RoleID、授权 ID、充值 ID 只会新增不会修改 数据库同步+消息队列

点券余额:数据库同步

【消费】

RoleID、支付 ID 只会新增不会修改 数据库同步+消息队列

点券余额:数据库同步

消费记录:购买英雄和皮肤数据 数据库同步+消息队列

购买道具数据:数据库同步

异常处理

Q: 微信和 QQ 挂了

A: 直接挂公告系统停服


Q:第三方授权支付异常

A: 只能无法充值


Q: 玩家在某个区服充值或消费,点券余额没同步到异地机房,在异地机房再充值或消费怎么办?

A: 临时事务表合并+消息队列同步+数据库同步

Q: 玩家购买了某个英雄或皮肤,没同步到异地机房

A: 客服告知退出登录重新二次读取,可做金币或者钻石的赔偿策略,或者少许积分也可以

Q: 玩家购买道具卡没同步到异地机房,导致用户再次购买

A: 业务上允许多次购买,如果玩家要求退款,客服可操作退款

异地多活架构示意图


用户头像

还未添加个人签名 2020-11-15 加入

还未添加个人简介

评论

发布
暂无评论
第七周作业-王者荣耀商城异地多活架构设计_不爱学习的程序猿_InfoQ写作社区