写点什么

模块 7 作业

用户头像
dwade
关注
发布于: 1 小时前

王者荣耀异地多活架构设计

 

1. 业务背景

 

【业务数据】

2020.11 月公布数据,全年日均活跃 1 亿,注册玩家数 6 亿,最高同时在线 100 万。

【业务功能】

1. 使用微信或者 QQ 账号登录游戏;

2. 对战:例如匹配、排位、巅峰赛;

3. 商城:购买英雄、皮肤、道具等;

4. 活动:领取各种奖励和道具;

5. 社区:各种攻略,视频等。

【关键业务约束】

1. 登录用户才能对战;

2. 用户属于不同的区服,例如 Android 平台微信 22 区“刺客信条”,同一微信 ID 可以加入多个区服,俗称“大号”、“小号”;

3. 不同区服用户可以一起对战。


2. 异地多活架构设计步骤 1:业务分级

 

   Top3 业务: 登录,对战,商城

 

3. 异地多活架构设计步骤 2:数据分类

 

【商城】

RoleID:不会改变,全局唯一;

商品信息类别:修改少,全局数据

支付关键数据: 支付本身依赖 QQ 钱包、微信;因为是企鹅产品,暂时不支持支付宝;

点券:和用户的 RoleID 关联,全局强一致性

商品库存:虚拟商品,没有库存的概念;

英雄和皮肤:和用户 RoleID 绑定,同一个 RoleID 只能购买一次。强一致性

鲜花、改名卡道具:和用户 RoleID 绑定,可以无限购买。强一致性

 

4. 异地多活架构设计步骤 3:数据同步

 

【商城】

RoleID:不会改变,全局唯一;数据库同步

商品信息类别:修改少,全局数据。数据库同步

商品库存:虚拟商品,没有库存的概念。不需要同步

点券:全局强一致性.数据库同步; 点券充值只能在归属地充值

英雄和皮肤:全局一致性,只能购买一次,可以覆盖。 数据库同步 + 可加消息队列

鲜花、改名卡道具:全局一致性,数据库同步

支付系统的账号密码: 第三方管理,无需处理。

 

4. 异地多活架构设计步骤 4:异常处理

 

【异步处理】

点券不对怎么办,等数据同步了再看。适当可以给用户补偿

英雄和皮肤不对:可以人工介入修复,适当可以给用户补偿

鲜花、改名卡道具丢失 : 可以接入修复,适当可以给用户补偿


5. 架构图


发布于: 1 小时前阅读数: 2
用户头像

dwade

关注

还未添加个人签名 2021.01.24 加入

还未添加个人简介

评论

发布
暂无评论
模块7作业