分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上,简单的说,就是一次大的事务由不同的小事务组成,这些小事务分布在不同的服务器上,且属于不同的应用,它们共同来完成这次大事务。

目前分布式事务解决方案大概有以下几种:
1、两阶段提交(2PC): 第一个阶段是准备阶段,确保所有参与节点都已经准备好,并锁定资源,第二个阶段是提交阶段,所有节点要么全部提交,要么全部回滚。
2、三阶段提交(3PC): CanCommit、PreCommit和Do Commit三个阶段,CanCommit询问所有节点是否可以进行提交;PreCommit预提交,所有节点锁定资源但不提交;Do Commit阶段所有节点提交或者回滚。
3、最终一致性: 不要求每次请求都能保持数据一致,但在经过一定时间后,通过异步的方式让数据达到最终一致。
4、TCC (Try/Confirm/Cancel): Try阶段尝试执行业务,完成所有业务的一致性检查,预留必须的业务资源,Confirm阶段真正执行业务,不做任何业务检查,只使用Try阶段预留的业务资源,Cancel阶段释放Try阶段预留的业务资源。
5、可靠消息最终一致性: 将本地操作和发送消息放在一个事务中,保证本地操作和发送消息要么都成功要么都失败。
6、最大努力通知: 在实施分布式事务时,当事务发起方执行完本地事务后,向事务参与方发送一个消息,参与方收到消息后执行相关操作,如果执行失败则重试,直到成功为止。
7、补偿事务(CT):在分布式事务中,每个分支事务都有自己的补偿事务,当某个分支事务失败时,就可以执行它的补偿事务进行恢复。

就是一些常见的分布式事务解决方案,每种方案都有其优缺点和适用场景,需要根据实际业务需求来选择。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复