写点什么

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

作者:Geek_8d5fe5
  • 2022 年 4 月 05 日
  • 本文字数:716 字

    阅读完需:约 2 分钟

【业务数据】

2020.11 月公布数据,全年日均活跃 1 亿,注册玩家数 6 亿,最高同时在线 100 万。

【业务分析】

商城的商品是虚拟物品商城,其商品主要是虚拟商品,因此没有库存,也不存在物流。商城的核心业务是充值和商品购买。

【数据分类】

充值:

1.    用户 RoleID: 全局唯一,不可变。

2.    交易 ID: 每次新建,全局唯一,不会修改。

3.    交易数据: 和交易 ID 绑定, 只会新建,不会修改。

4.    余额:区服强一致性。

商品购买:

1.    用户 RoleID: 全局唯一,不可变。

2.    交易 ID: 每次新建,全局唯一,不会修改。

3.    交易数据: 和交易 ID 绑定。

不能重复购买的商品:只可新建,不能修改。

可重复购买的商品: 可以新建,也可以修改(增加数量或减少数量)。

【数据同步】

充值:

1.    用户 RoleID: 全局唯一,不可变。数据库同步加消息队列同步。

2.    交易 ID: 每次新建,全局唯一,不会修改。数据库同步加消息队列同步。

3.    交易数据: 和交易 ID 绑定, 只会新建,不会修改。数据库同步

4.    余额:区服强一致性。数据库同步

商品购买:

1.    用户 RoleID: 全局唯一,不可变。数据库同步加消息队列同步。

2.    交易 ID: 每次新建,全局唯一,不会修改。数据库同步加消息队列同步。

3.    交易数据: 和交易 ID 绑定。数据库同步

不能重复购买的商品:只可新建,不能修改。

可重复购买的商品: 可以新建,也可以修改(增加数量或减少数量)。

【异常处理】

充值:

1.    充值过程中,系统突然挂了怎么办?

钱退回用户,提示暂未充值成功,道具补偿用户,也可以手动修正数据。

商品购买:

1.    用户购买商品过程中,系统突然挂了怎么办?

做好分布式,保持最终一致。点卷退回给用户,或者补偿用户商品和道具

用户头像

Geek_8d5fe5

关注

还未添加个人签名 2021.12.24 加入

还未添加个人简介

评论

发布
暂无评论
王者荣耀商城异地多活架构设计_「架构实战营」_Geek_8d5fe5_InfoQ写作平台