模块 7 作业 王者荣耀线上商城异地多活架构设计
业务分级
假设商城业务的重要性突显,需要考虑异地多活架构
数据分类
王者荣耀的商城是虚拟物品商城:
1)商城的主要货币是点券
点券购买:用户要先调用微信钱包或者 QQ 钱包充值点券,相当于用户在商城的余额。
点券使用:商城里的商品用点券支付
一个区域的存储作为点券的主存储服务器,另一个区域只是备份,不可修改。简化余额管理的复杂度。
2)用户买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买。每个 roleId 只能绑定一个英雄或者特定的皮肤
购买英雄和皮肤的记录,只能新增,不能修改,需要做查重处理。
数据库同步。可以做主备切换。
3)用户买鲜花、改名卡之类的道具可以买多个
购买鲜花,改名卡之类的道具记录,只能新增,不能修改,无法做查重。
数据库同步。可以做主备切换。
异常处理
1)点券存储区服挂,等修复。
2)购买英雄皮肤,切换到异地机房,可以购买。之后再将数据同步到恢复后的机房。
3)购买鲜花等,切换到异地机房,可以购买。之后再将数据同步到恢复后的机房。
4)如果购买的英雄皮肤记录,未及时同步到异地机房,无法查重,导致重复购买。可以容忍。恢复后退回用户点券,及退回到上次的购买内容。
异地多活架构示意图:
版权声明: 本文为 InfoQ 作者【sandywrh】的原创文章。
原文链接:【http://xie.infoq.cn/article/368b6559b12765e1ffa6df909】。未经作者许可,禁止转载。
评论