Saga实现隔离的对策
2019-08-11 本文已影响0人
defungo
对策
- 语义锁:应用程序的锁
- 交换式更新:把更新操作设计成可以按任何顺序执行
- 悲观视图 : 重新排序Saga的步骤,以最大限度地较低业务风险。
- 重读值:通过重写数据防止脏写,以在覆盖数据之前验证它是否保持不变。
- 版本文件:将更新记录下来,以便可以对它们重新排序。
- 业务风险评级 :使用每一个请求的业务风险来动态选择并发机制。
Saga的结构模型
补偿性事务:可使用补偿事务回滚的事务。
关键性事务:Saga执行过程的关键点,如果关键事务成功,则Saga可运行到完成,可能是可补偿事务,也可能是可重复性事务。
可重复性事务:在关键性事务之后的事务,保证成功。