王者荣耀商城异地多活架构设计
1. 业务背景分析
【业务属性】
游戏商城:虚拟商城,不存在物流、实物、库存等
【业务功能】
用户先调用微信钱包或者 QQ 钱包充值点券,再在商城里面用点券支付;
商城:购买英雄、皮肤、道具等;
【业务约束】
王者荣耀商城为虚拟物品商城;
用户买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买;
用户买鲜花、改名卡之类的道具可以买多个;
2.架构设计
根据下图思路参考进行架构细节设计:
3.业务分级
主要业务有登录(qq 或微信,得到 id),充值、支付(需要服务间数据同步)
次要业务英雄、皮肤、道具,修改量非常小,几乎可以忽略,本地数据几乎不更新
4.数据分类
数据细节
账户余额:金币余额
英雄关系:RoleId 与英雄 Id
皮肤关系:RoleId 与皮肤 Id
道具关系:RoleId 与道具 Id
5.数据同步
账户余额属于强一致数据,暂不做异地多活。
6.异常处理
【登录】
1.微信和 QQ 挂了怎么办?
直接挂公告:系统停服维护。
2.玩家在某个区服开了小号,没同步到异地机房,玩不了怎么办?
等系统恢复就可以玩了。
【充值】
异常,返回用户余额到银行卡,与银行交易有关
【购买】
异常,等系统恢复
【点券支付】
异常,等系统恢复
评论