模块七作业
王者荣耀商城异地多活架构设计
一、背景
【业务背景】
王者荣耀里面的商城的异地多活架构。
【业务功能】
购买英雄、皮肤、道具等。
【关键业务约束】
1、登录用户才能购买;
2、用户买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买;
3、用户买鲜花、改名卡之类的道具可以买多个。
二、异地多活架构设计
1、业务分级
商城涉及到的功能有商品展示、促销活动、登录、充值、购买、用户财产管理等。异地多活应该优先保证登录、用户财产管理两项功能。
2、数据分类
【登录】
1)用户 ID:全局唯一,不可变;
2)用户手机号:全局唯一,很少变;
3)Session ID:可重复生成,可丢失;
4)密码:可丢失。
【用户财产管理】
1)财产 ID:全局唯一,不可变;
2)用户余额:全局强一致性。
3、数据同步
【登录】
1)用户 ID:全局唯一,不可变,采用数据库同步 + 消息队列同步;
2)用户手机号:全局唯一,很少变,采用数据库同步 + 消息队列同步;
3)Session ID:可重复生成,可丢失,不同步,用户重新登录生成。
【用户财产管理】
1)财产 ID:全局唯一,不可变,采用数据库同步 + 消息队列同步;
2)用户余额:全局强一致性,采用数据库同步。
4、异常处理
1)登录服务异常怎么办?
直接挂公告:系统停服维护。
2)微信钱包或者 QQ 钱包不能使用怎么办?
直接挂公告+发滚动动态公告:充值维护。
评论