架构实战营 模块七作业
王者荣耀商城异地多活架构设计
背景
假设现在决定要实现王者荣耀里面的商城的异地多活架构,请你分析设计一下。
异地多活架构设计
业务背景
【业务数据】
2020.11 月公布数据,全年日均活跃 1 亿,注册玩家数 6 亿,最高同
时在线 100 万。
【业务功能】
使用微信或者 QQ 账号登录游戏;
对战:例如匹配、排位、巅峰赛;
商城:购买英雄、皮肤、道具等;
活动:领取各种奖励和道具;
社区:各种攻略,视频等。
【关键业务约束】
登录用户才能充值。
余额不够不能购买道具。
业务分级
商城的功能包含:
购买英雄
购买皮肤
购买碎片
夺宝
充值
送礼物
星元
TOP3 分析:
新手:进入游戏后,系统会默认送一些英雄,此时处于熟悉游戏的过程中,充值、买英雄、买皮肤,是快速提高战力的手段
老鸟:一般都有不少的英雄了,买皮肤、买碎片、夺宝会是日常行为
因此前三名基本上是:
充值
买英雄
买皮肤
数据分类
充值
依赖 QQ 钱包、微信支付付款,付款后变成点券
点券和用户绑定
数据不能丢失,一致性强
买英雄
使用点券购买
购买后在当前用户下唯一
购买后不能卖出、删除
数据不能丢失,一致性强
买皮肤
使用点券购买
购买后在当前用户下唯一
购买后不能卖出、删除
一个英雄可以有多个皮肤
数据不能丢失,一致性强
数据同步

异常处理
充值
QQ 和微信支付挂了怎么办
直接公告,停服
买英雄
以前买过的英雄没了怎么办
换一个英雄玩,后续运营补偿
购买后,没有收到
等待一段时间后再看,或者后续补偿
买皮肤
以前买过的皮肤没了怎么办
可以用默认皮肤,后续运营补偿
购买后,没有收到
等待一段时间后再看,或者后续补偿
异地多活架构示意图

版权声明: 本文为 InfoQ 作者【eoeoeo】的原创文章。
原文链接:【http://xie.infoq.cn/article/b333506b709856d99e628a67a】。文章转载请联系作者。
评论