面试题答案
一键面试Saga模式补偿机制基本原理
- 事务分拆:将一个长事务分解为多个本地短事务,每个短事务都有明确的业务语义和边界。
- 正向执行:按照业务流程依次执行这些本地短事务,完成整体业务功能。
- 补偿机制:如果其中某个本地短事务执行失败,Saga模式会调用已执行成功的短事务的补偿操作,将系统状态恢复到事务开始前,以此来保证数据的一致性。这些补偿操作通常是与正向操作相反的逻辑,例如正向操作是增加库存,补偿操作就是减少库存。
电商下单场景运用Saga模式补偿机制保证数据一致性示例
- 业务步骤
- 库存扣减:检查库存并扣减相应商品数量。
- 订单创建:在订单系统中创建新订单记录。
- 支付:调用支付系统完成支付流程。
- 正向执行
- 首先执行库存扣减操作,假设库存足够,扣除相应商品数量。
- 接着执行订单创建操作,在订单数据库中插入一条新订单记录。
- 最后执行支付操作,向支付系统发起支付请求。
- 补偿机制应用
- 支付失败:如果支付环节出现异常,支付系统返回失败。此时需要调用订单创建的补偿操作,即删除刚刚创建的订单记录;同时调用库存扣减的补偿操作,将已扣减的库存数量加回去,使库存和订单状态恢复到下单前的状态。
- 订单创建失败:若订单创建失败,在这种情况下支付操作还未执行,只需要调用库存扣减的补偿操作,恢复库存数量,确保库存数据的一致性。