王者荣耀商城异地多活架构设计
一、业务分级
1.1 业务分析
分析王者荣耀商城的业务需求,由于商城都是虚拟物品,无需考虑库存,业务分析如下:
点券充值、点券支付、英雄购买、皮肤购买、鲜花等道具购买
1.2 核心业务
业务背景:用户已经完成登录
核心业务:点券支付、英雄购买
二、数据分类
2.1 点券支付
1、每个 RoleId 都有唯一的剩余点券纪录,剩余点券会根据点券充值、点券支付实时修改剩余点券。
2、支付订单 ID:每次新建,全局唯一,不会修改。
2.2 英雄购买
1、RoleId 和英雄关联 ID:每次关联后,全局唯一、不会修改。
三、数据同步
3.1 点券支付
1、用户剩余点券:全局强一致性一致性,采用数据库同步余额。
2、支付订单 ID:每次新建,全局唯一,不会修改,时效性要求较高,采用数据库同步。
3.2 英雄购买
1、RoleId 和英雄关联 ID:每次关联后,全局唯一、不会修改,采用数据库同步+ 消息队列同步。
四、异常处理
4.1 点券支付
1、点券支付挂了怎么办?
直接挂公告:商城系统停止使用。
2、点券支付成功过,发现看不到支付订单怎么办?
等系统恢复再来查看,不影响物品购买。
4.2 英雄购买
1、如果无法购买英雄了怎么办?
提供免费试玩英雄,保证用户有英雄可以对战。
2、如果用户的购买英雄未及时同步到异地机房,用户看不到购买英雄怎么办?
等恢复了再看。
评论