缓存与消息同步

缓存不一定强同步

缓存不一定要强同步,很多可以在切换后回源重建。真正需要关注的是:

  • 缓存是否承载会话或关键状态?
  • 缓存丢失后数据库是否能承受回源压力?
  • 备用机房是否需要提前预热热点数据?

如果缓存不可用会导致雪崩,容灾预案里要包含限流、降级和预热。

消息在切换中的问题

消息系统在容灾中容易出问题。切换时可能出现:

  • 消息在主机房已写入但未同步。
  • 备用机房重复消费。
  • 消费进度不一致。

解决思路:幂等

解决思路是让消费端具备幂等能力,并保存业务侧处理状态:

  • 每条消息带全局唯一 ID。
  • 消费端按 ID 去重,重复投递只处理一次。
  • 容灾切换后,即使消息重复投递,也不能导致重复扣款、重复发货或重复通知。

一句话

缓存可回源重建,但要防雪崩(限流、降级、预热);消息要幂等消费 + 保存处理状态——重复投递也不能导致重复扣款、重复发货。

发现内容有问题?

告诉我们哪里需要改进。