写点什么

架构实战营 - 第 6 期 模块七课后作业

作者:乐邦
  • 2022 年 5 月 30 日
  • 本文字数:790 字

    阅读完需:约 3 分钟

一、业务分级

王者荣耀商城主要业务:购买英雄、皮肤、道具等。

需要异地多活的核心业务:登录,交易

二、数据分类

登录:

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、商品库存数据同步不及时,超卖怎么办?

因为是虚拟商品,不存在绝对物理库存限制,正常补货售卖给用户即可。


五、王者荣耀商城异地多活架构图


发布于: 刚刚阅读数: 5
用户头像

乐邦

关注

还未添加个人签名 2018.06.15 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营 - 第 6 期 模块七课后作业_「架构实战营」_乐邦_InfoQ写作社区