第七章作业
问题:王者荣耀商城异地多活架构设计
分析:
因为王者荣耀不需要注册,只需要通过微信或 qq 授权登录即可,因此无需考虑注册的情况。
其次虚拟商城,不存在库存不足的问题,只需要避免英雄和皮肤重复购买。
第三购买时并非直接使用金钱,而是使用来自微信、qq 的点券,因此购买凭据、失败处理都围绕点券处理。
设计:
集群需要与腾讯进行同步服务,确认账户的授权情况、点券情况;
用户通过路由,访问节点,优先按照地域进行划分;若归属的服务离线,则可以转到其他临时服务器;
用户购买某个商品,成功后扣除点券,在原归属服务重新上线后,临时服务器与原归属服务器进行同步,将这部分数据复制给它;因为购买动作是增量的,因此不需要修改原有的交易动作。
异常处理:若是英雄和皮肤,是不能重复购买的,因此数据同步发现重复购买后,可以退回点券;若是可重复购买的物品,可以直接退回原服务器离线时进行的购买物品,也可以不处理,直接累加物品数量
评论