模块 7 作业
业务背景
业务数据
2020.11 月公布数据,全年日均活跃 1 亿,注册玩家数 6 亿,最高同时在线 100 万
业务功能
充值点券
购买英雄,皮肤,不可重复购买
购买道具,可重复购买
赠送礼物
夺宝
关键业务约束
商城流通货币有金币,钻石,点券;皮肤和大部分道具只有点券可购买
点券通过充值获取,现金无法直接在商城支付
用户属于不同的区服,可创建多个区服角色,不同区服的商品不共享
商城商品为虚拟商品,无需物流,直接发放至用户账号
业务分级
异地多活应该保证哪些核心业务
用户登录,充值点券(收入主要来源),购买英雄,皮肤和道具
数据分类
充值点券
用户 ID,采用微信或者 QQ 授予的 RoleID;
用户充值成功之后添加账户点券余额,余额需要保障强一致
购买英雄,皮肤
1 用户购买英雄,皮肤之后,扣减点券余额
2 新增订单,全局唯一,不重复,可使用算法生成
商品信息
图片,功能,价格等信息,通常修改较少,全局数据
数据同步
充值点券
用户 ID,数据库同步
余额需要保障强一致,采用数据库同步
购买英雄,皮肤
1 用户购买英雄,皮肤之后,扣减点券余额
2 新增订单,全局唯一,不重复,可使用算法生成,使用数据库同步加消息队列
商城内商品信息,消息队列同步,最终一致性
异步处理
用户充值: 微信钱包出问题,对应进行停服公告处理
账户余额:充值后未及时同步到异地机房,对用户显示支付结果待确认。
用户购物:商品数量,种类未同步,从运营平台数据核对
同步长时间不能支付,考虑赠品补偿
暂时性提醒系统忙
游戏购物商城异地多活架构示意图:
评论