架构实战营模块 7 作业指导
虚拟物品商城与实物电商的两个区别:1)没有库存的概念,因此设计的时候在一致性这一部分处理就简单很多;2)有发货但是没有物流的概念,也就是说用户购买虚拟物品后,商城同步信息给用户的区服即可
调用微信钱包和 QQ 钱包充值的时候,支付本身高可用不需要商城自己实现;
用户的点券看起来是强一致性的数据,但实际上是可以允许一定额度的透支的,因为两个原因:1)没有实物发货,不用担心被薅羊毛;2)充值点券后不能提现;3)如果用户在异地多活场景透支,那么恢复后是可以发现的,而且用户也不会因为这点毛头小利退游,因为一旦退游,他充的钱都浪费了;
买英雄和皮肤业务约束不能重复购买,但其实用户买了一个英雄后,遇到机房故障,到另外一个机房再买一个是可以的,这个异常场景的用户很少,如果有的话,将英雄熟练度和经验值合并就可以了
鲜花、改名卡等道具有数量的概念,多买是没有关系的,合并数量就可以了;
整体方案其实用数据库同步 + 消息队列同步就够了,再加上述说的几个业务上的异常处理。
评论