一致性边界与异常

常见异常

礼物链路常见的异常包括:

异常场景
扣款成功但礼物未展示广播失败 / 客户端未收到
展示成功但统计延迟队列积压
队列重复投递榜单重复累加
账户系统超时实际已扣款,但下游以为失败

解决思路:以支付订单为准

所有下游动作以支付订单为准,幂等消费:

  1. 扣款状态以账户 / 支付系统为准。
  2. 礼物事件带 order_id + gift_event_id。
  3. 展示、统计、审计各自幂等。
  4. 对账兜底:定期核对订单与展示 / 统计。

超时与重试

  • 账户系统超时 → 不能直接判失败,要查询订单状态。
  • 广播失败 → 重试,保证至少展示一次。
  • 重试要幂等,不能因为重试造成重复扣款 / 重复累加。

一致性边界

资金正确性优先(强一致)
展示实时性尽力保证(最终一致)
  • 资金:绝不妥协,宁可慢也要准。
  • 展示:尽力而为,坏了可降级(如只显示文字不带动效)。

一句话

礼物系统的设计原则:资金正确性优先,展示实时性尽力保证。以订单为准 + 全链路幂等 + 定期对账,是礼物可靠性的三条防线。

下一章扩展更多互动功能:点赞、投票、抽奖、连麦、管理。

发现内容有问题?

告诉我们哪里需要改进。