01_分布式事务是什么
大约 2 分钟
分布式事务是什么
分布式事务是一种特殊的事务处理机制,用于确保在分布式系统中进行跨多个数据库或服务的操作时数据的一致性和原子性。
在分布式事务中,参与者(如不同的计算机或服务)和支持事务的服务器、资源服务器等分布在不同的物理节点上。这些节点可能位于不同的网络或数据库中。分布式事务需要一种机制来保证所有涉及的系统或服务在事务中的一致性和原子性,这意味着一组操作(如数据修改)要么全部成功提交,要么全部回滚,不留下处于中间状态的数据。
举个例子
本地事务会失效不回滚的两种情况:
- 锁库存假失败,由于网络原因导致连接超时,但是锁库存已经操作成功。此时,订单数据回滚而锁库存数据没有回滚。
- 其它远程服务调用失败,订单数据回滚,但是已经执行成功的远程服务调用的数据库数据无法回滚

事务保证:
- 订单服务异常,库存锁定不运行,全部回滚, 撤销操作
- 库存服务事务自治,锁定失败全部回滚,订 单感受到,继续回滚
- 库存服务锁定成功了,但是网络原因返回数 据途中问题?
- 库存服务锁定成功了,库存服务下面的逻辑 发生故障,订单回滚了,怎么处理?
传统的关系型数据库事务(如ACID属性)通常只适用于单个数据库实例,而在分布式系统中,事务可能跨越多个数据库或服务,因此需要使用特定的技术和协议来保证分布式事务的一致性和可靠性。
为了解决分布式事务的问题,出现了一些分布式事务解决方案,如XA协议(2PC、3PC)、TCC(Try-Confirm-Cancel)事务、最大努力通知等。这些解决方案的实现方式各不相同,但都需要考虑如何确保所有参与者的事务操作能够保持一致性,以及如何处理可能出现的异常情况。