架构实战营 - 模块七作业
背景
王者荣耀 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: 人工介入
评论