MST

星途 面试题库

面试题:微服务架构中Saga模式如何处理局部事务失败的情况

在微服务架构下,当采用Saga模式处理分布式事务时,如果其中一个局部事务执行失败,通常有哪些策略来处理这种情况?请简要阐述并说明每种策略的适用场景。
38.5万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试
  1. 补偿事务策略
    • 阐述:执行与失败事务相反操作,恢复到事务执行前状态。例如订单创建成功但库存扣减失败,补偿事务会增加库存。
    • 适用场景:适用于大多数有明确反向操作事务场景,如金融交易、库存管理等,能最大程度恢复数据一致性。
  2. 重试策略
    • 阐述:在一定条件下重新尝试执行失败的局部事务。如因网络短暂波动导致事务失败,可设置重试次数与时间间隔进行重试。
    • 适用场景:适用于由临时性故障(如网络闪断、资源短暂繁忙)导致的事务失败,且失败事务本身幂等,重试不会产生副作用。
  3. 人工干预策略
    • 阐述:当失败情况复杂,系统无法自动处理时,通知运维或业务人员进行人工处理。如系统遇到无法识别异常或涉及复杂业务规则判断场景。
    • 适用场景:适用于异常情况难以自动化处理,需人工介入分析、决策处理方式场景,如涉及多方复杂协商或特殊业务逻辑场景。