写点什么

架构训练营模块七作业

用户头像
Neil43
关注
发布于: 1 小时前

王者荣耀商城异地多活架构设计

一、设计步骤

1.1、业务分级

王者荣耀的 Top3 业务按照顺序是登录、对战、商城;

1.2、数据分类

王者荣耀的商城是虚拟物品商城,和淘宝这种实物电商有两个很大的区别,我觉得两个很大区别是:

1、库存只要最终一致性就可以,毕竟不是实体商品,系统可以按照规则调整商品库存数量;2、商品是可恢复的,由系统生成的,不像实体电商商品一旦丢失是没法恢复的;

商品 ID:为了确保同样的英雄和皮肤只能买 1 个,商品 ID 都设置成全局唯一的

库存数据:最终一致性,但是数据可丢失且是可恢复的

点券:强一致性,数据不可丢失

1.3、数据同步

商品 ID:全局唯一,不会修改,数据库同步即可;

库存数据:数据是可恢复的,数据库同步即可;

点券:要保证强一致性,数据库同步+ 消息队列同步;

1.4、异常处理

1、库存未及时同步到异地机房,库存数据异常怎么办?

王者荣耀商品毕竟是虚拟商品,首先还是确保用户可以正常购买,先确保可用,保证数据最终一致性;如果最终库存和购买出现偏差,可以通过礼物或者其他方式,最差的就是运营策略去调整规则调整库存;


2、点券数额可能为及时同步到异地机房,用户要购买商品怎么办?

点券数额必须保证强一致性,在用户体验上做一些增强,提示支付正在处理,实时改异步操作;


二、王者荣耀商城异地多活架构示意图


异地多活架构示意图如下:



发布于: 1 小时前阅读数: 4
用户头像

Neil43

关注

还未添加个人签名 2018.03.14 加入

还未添加个人简介

评论

发布
暂无评论
架构训练营模块七作业