架构实战营模块 7 作业
游戲王者榮耀商城的異地多活架構設計
商城使用情境
主要充值买点券,点券作为真实货币和游戏币的唯一交换媒介。
玩家 15 级以上可以向赠送朋友礼物和向朋友索要,有心愿单和心愿点
与实体差异在没有库存和物流
另外它也没有商店,商店就是腾迅游戏。
CAP 无法三者都达到
在分区容忍下可以做到 CP
在一般情况下可以做到 CA
1 业务分级
2 数据分类
3 数据同步
可以适用:
1 事务合并:游戏玩家异地充值买点券 500,消费 288 点券,买一个英雄,即使 IDC-B 的业务服务器不知道玩家的实际点券 (在 IDC-A 的数据库中),业务也是可以继续处理的。
2 实时改异步:请求异地机房服务失败,不断重试
不适用:
1 消息队列同步:适合全局唯一的数据,因为可以覆盖,不适合商城点券的数据。
2 库存拆分:商城没有真正的库存。点券不适合这样拆分,需要强一致性,拆分会造成数据不一致。
3 适当容忍:点券同步可能不及时,若点券不足额,不能容忍消费该项物品。
4 异常处理
业务兼容:体验不好优于无法体验。数据短时间不一致。物品数量不一致。数据无法获取:支付核对中。
事后补偿:少量用户损失,用钱解决 礼包、物品
人工修正:尽力而为,减少损失。 人工订正数据,达到最终一致性。日志。
评论