架构实战营 - 第 6 期 模块七课后作业
一、业务分级
王者荣耀商城主要业务:购买英雄、皮肤、道具等。
需要异地多活的核心业务:登录,交易
二、数据分类
登录:
1. 商城依赖 QQ 和微信账号授权登录,本身无需登录信息;
2. 微信和 QQ 授权登录会返回给王者荣耀商城全局唯一 RoleID;
3. 王者荣耀商城只需要记录 RoleID 对应的区服信息,区服数据只会新增不会修改。
4、Session ID:可重复生成,可丢失;
5、若绑定过手机号:全局唯一,很少变。
6、若设置过密码:可丢失
交易:
1、订单 ID:每次新建,全局唯一,不会修改
2、点券余额:点券数据全局强一致性
3、英雄和皮肤:单个 RoleID 对应全局唯一的英雄和皮肤,不能重复购买;
4、鲜花和改名卡:单个 RoleID 可对应多个鲜花和改名卡,可以重复购买。
商品:
1、商品数据:可以新建,修改,删除,全局共享。
2、商品库存:不存在严格意义上的绝对库存数据,但是需要设置的话,也可以设置,全局共享即可。
三、数据同步
登录:
1、 用户 ID:全局唯一,不可变,采用数据库同步 + 消息队列同步;
2、 用户手机号:全局唯一,很少变,采用数据库同步 + 消息队列同步;
3、 Session ID:可重复生成,可丢失,不同步,用户重新登录生成。
交易:
1、订单 ID:每次新建,全局唯一,不会修改,用算法生成,数据库同步即可;
2、订单数据:和订单 ID 绑定,不会修改,数据库同步即可
3、用户余额:全局强一致性,采用数据库同步余额,充值只能在归属地充值;
商城/商品:
1、商品数据、商品库存、商城其他数据(如活动,推荐,公告等),无需同步,从共享数据获取即可
四、异常处理
1. 微信和 QQ 挂了怎么办?
如之前绑定过手机号,则使用手机号登录。
如没有绑定手机号,则直接挂公告:系统停服维护。
2、订单信息同步不及时,无法及时看到购买记录和购买商品?
等数据同步好了就可以查看了。
3、商品库存数据同步不及时,超卖怎么办?
因为是虚拟商品,不存在绝对物理库存限制,正常补货售卖给用户即可。
五、王者荣耀商城异地多活架构图
版权声明: 本文为 InfoQ 作者【乐邦】的原创文章。
原文链接:【http://xie.infoq.cn/article/b33bd290365f384900eea60a8】。未经作者许可,禁止转载。
评论