协议介绍
Saga的组成:
每个Saga由一系列sub-transaction Ti 组成
每个Ti 都有对应的补偿动作Ci,补偿动作用于撤销Ti造成的结果
可以看到,和TCC相比,Saga没有“预留”...Saga的执行顺序有两种:
T1, T2, T3, ..., Tn
T1, T2, ..., Tj, Cj,..., C2, C1,其中0 < j < n
Saga定义了两种恢复策略:
backward...而Saga则就直接发送邮件了(Ti),如果要撤销则得再发送一份邮件说明撤销(Ci),实现起来有一些麻烦。...TCC最少通信次数为2n,而Saga为n(n=sub-transaction的数量)。
有些第三方服务没有Try接口,TCC模式实现起来就比较tricky了,而Saga则很简单。...实现Saga的注意事项
对于服务来说,实现Saga有以下这些要求:
Ti和Ci是幂等的。
Ci必须是能够成功的,如果无法成功则需要人工介入。