写点什么

架构实战营 - 模块七作业

用户头像
Julian Chu
关注
发布于: 1 小时前

背景

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

假设现在决定要实现王者荣耀里面的商城的异地多活架构

业务分级

商城确定要做异地多活

关键业务约束

  • 依赖微信钱包和 QQ 钱包充值点劵,商城裡用点劵支付

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

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

虚拟物品商城和实物电商区别

  • 不需物流,交易成功商品即到货

  • 可由后台进行即时商品补偿

数据分类

充值、支付、馀额

Role ID: 全局唯一,不会修改

充值 ID:全局唯一,不会修改

点劵信息: 和充值 ID 绑定,只会新建不会修改

商城

Role ID: 全局唯一,不会修改

交易 ID: 全局唯一,不会修改

商品资讯: 和交易 ID 绑定,只会新建不会修改

数据同步

充值

Role ID: 全局唯一,不会修改

充值 ID:全局唯一,不会修改

充值信息: 和充值 ID 绑定,只会新建不会修改,充值只能在归属地充值

=> 数据库同步

商城

Role ID: 全局唯一,不会修改

交易 ID: 全局唯一,不会修改

馀额: 全局一致性,采用数据库同步余额, 购买只能在归属地购买

商品资讯: 和交易 ID 绑定,只会新建不会修改

=> 数据库同步

异常处理

Q: 微信钱包和 QQ 钱包挂了?

A: 公告暂停充值,等待钱包系统恢复


Q: 机房挂了导致区服间数据未同步?

A: 待系统回復即可,或运营根据交易资讯新增


Q: 系统恢復后数据未同步?

A: 人工介入



用户头像

Julian Chu

关注

还未添加个人签名 2016.08.16 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营 - 模块七作业