MST

星途 面试题库

面试题:分布式系统中最终一致性与Saga模式的理解

请简要阐述分布式事务中的最终一致性概念,并说明Saga模式是如何实现最终一致性的,举例说明常见的Saga模式应用场景。
36.3万 热度难度
后端开发分布式系统

知识考点

AI 面试

面试题答案

一键面试

最终一致性概念

最终一致性是分布式系统的一种一致性模型。在分布式环境中,由于数据的副本分布在不同节点,当数据发生更新时,系统不会立即让所有副本达到一致状态。但经过一段时间后,在没有新的更新操作干扰下,所有副本数据最终会达到一致。它允许系统在数据更新后短期内存在不一致情况,适用于对一致性要求相对较低,但对系统可用性和性能要求较高的场景,比如社交平台的点赞数统计,短暂的不一致不影响用户体验,最终点赞数会达到正确的统计。

Saga模式实现最终一致性方式

  1. 事务分解:将一个大的业务事务拆分成多个小的本地事务。例如在电商下单场景,可拆分为订单创建、库存扣减、账户余额支付等本地事务。
  2. 顺序执行:按照一定顺序依次执行这些本地事务。如先创建订单,再扣减库存,最后支付。
  3. 补偿机制:如果某个本地事务执行失败,Saga模式会执行一系列补偿事务来撤销之前已执行成功的本地事务。比如库存扣减成功但支付失败,就执行库存回滚的补偿事务,保证数据的一致性。通过这种对事务的拆分、按序执行以及失败后的补偿机制,Saga模式实现了最终一致性。

常见Saga模式应用场景

  1. 电商订单系统:下单过程涉及多个服务,如订单服务、库存服务、支付服务等。通过Saga模式,按顺序调用各服务完成下单流程,若支付失败可回滚库存等已执行操作。
  2. 银行转账:从一个账户扣款并向另一个账户打款,可拆分为两个本地事务,若打款失败,可回滚扣款事务,确保资金一致性。