王者荣耀商城异地多活架构设计
【分析】
采用业务定制型异地多活
按照业务的优先级进行排序,优先保证核心业务异地多活 ;
基于核心业务的流程和数据,设计定制化的异地多活架构。
步骤
业务分级
2. 数据分类
数据同步
4. 异常处理
王者荣耀业务背景
【业务数据】
2020.11 月公布数据,全年日均活跃 1 亿,注册玩家数 6 亿,最高同时在线 100 万
【商城业务功能】
1、充值点券
2、使用点券购买英雄、皮肤、道具。
3、折扣优惠
4、金币购买英雄、碎片兑换英雄 or 皮肤。
【关键业务约束】
1. 买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买;
2. 买鲜花、改名卡之类的道具可以买多个;
3. 充值点券需要保证一致性;
设计步骤 1 - - 业务分级
【核心业务】
1、充值点券
2、使用点券购买英雄、皮肤、道具。
备注:1.2 点强相关。
设计步骤 2 - - 数据分类
【充值点券】
1、剩余点券数与王者荣耀全局唯一 RoleID 绑定。
2、剩余点数会更新频繁。
【使用点券购买英雄、皮肤、道具】
1、不同英雄和皮肤对于 RoleID 具有唯一性
2、鲜花、改名卡之类的道具可以买多个
3、英雄、皮肤、鲜花等道具具备有效期
设计步骤 3 - - 数据同步
【充值点券】
1、剩余点券数和 RoleID 绑定,且一致性要求高,用户使用评率相对不高,使用数据库同步即可
【使用点券购买英雄、皮肤、道具】
1、英雄、皮肤,存在新增和修改,用户使用评率相对不高,使用数据库同步即可
2、鲜花、改名卡等道具存在新增、修改、删除,用户使用评率相对不高,使用数据库同步即可
设计步骤 4 - -异常处理
【充值点券】
1、如果商城服务器挂了,直接反馈用户商城维护,等商城恢复了再充值
2、如果刚购买了点券,该区域服务异常,数据没有同步到异地;等一会恢复了再看
【使用点券购买英雄、皮肤、道具】
1、如果刚购买了鲜花、改名卡等道具,数据没有同步到异地;等一会恢复了再看
评论