王者荣耀商城异地多活架构设计分析
业务数据:
2020.11 月公布数据,全年日均活跃 1 亿,注册玩家数 6 亿,最高同时在线 100 万
业务功能:
商城 : 购买英雄,皮肤和道具等
关键业务约束:
1.登录用户才能进入商城购买物品
2.用户属于不同的区服, 例如 Android 平台微信 20 区 "刺客信条",使用同一个微信 ID 可以加入多个区服, 俗称"大号"和"小号"
3.不同区服用户可以一起对战
异地多活首先保证商城核心业务的支持
商城登录:
1.依赖微信账号授权登录,本身无需登录信息
2.微信授权登录会返回给王者荣耀全局唯一的 RoldID
3.王者荣耀只需要记录 RoleID 对应的区服信息,区服数据只会新增不会修改
4.RoleID 只会和区服有对应的关系,只会新建不会修改,与数据库
商城物品购买:
1.RoleId: 在登录王者荣耀之后就不会改变了
2.购买商品 : 和唯一的 RoleId 绑定,可以修改或者新增购买的商品;
异常处理:
1.微信产生异常该如何处理?
直接挂公告: 系统停服维护
2.登录用户在某个区服开了小号,但是没有同步到异地机房,该如何处理?
等待系统同步后就可以了
3.商品购买过程中产生异常该如何处理?
用户重新购买商品即可,原来购买的商品数据丢弃
根据以上所述, 该商品业务的异地多活的架构设计如下:
评论