王者荣耀商城异地多活架构设计
1.业务分级
商城核心为交易逻辑
具体的业务有:
2.1 个人资产(金币,钻石,点券)
2.2 英雄购买
2.3 皮肤购买
2.4 星元
2.5 礼物
2.6 营销逻辑(夺宝,特惠)
其中核心逻辑为,英雄及皮肤的购买,以及个人资产的管理。核心为交易频次和游戏核心的东西很重要,以及购买这些东西的资产很重要
2.数据分类
【个人资产】
资产分类,当前王者荣耀有,金币,钻石,点券等不同类型的资产
资产金额,不同资产的金额,也包括消费和充值,获得记录
【购物】
购物记录,关联具体的虚拟商品,以及购买者
限制数据,存在个别虚拟商品的购买限制,以及前后逻辑
【促销】
夺宝活动 id,每个均唯一
夺宝记录,主要关联参与的用户 id
促销规则记录,限时特惠逻辑等
3.数据同步
【个人资产】
个人资产对用户来说比价重要,尤其金币这种,获得频次较高,NoSql 数据库+消息队列
【购物】
订单 id 值需保证全局唯一,全局唯一,不会修改,算法生成,NoSql 数据库+消息队列
【促销】
整个促销的使用逻辑及规则,非高频,但是主键 id 等保证全局唯一,不会修改,数据库同步即可
4.异常处理
【个人资产】
如果个人资产的服务挂了怎么办
等服务修复再进行购买即可,毕竟游戏免费送的有英雄,还有周免英雄可以玩
【购物】
下不了单怎么办?
等服务可用时再进行下单
【促销】
夺宝活动不可用怎么办?
先打游戏,可用的时候再用
2.规则失效后,特惠商品,原价购买了?
先进行交易,差额部分,可待系统修复后,进行金币等补送(人工补偿)
评论