分布式事务

Posted wenjiajun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式事务相关的知识,希望对你有一定的参考价值。

2PC

2PC(Two-phase commit protocol),中文叫二阶段提交。 二阶段提交是一种强一致性设计,2PC 引入一个事务协调者的角色来协调管理各参与者(也可称之为各本地资源)的提交和回滚,二阶段分别指的是准备(投票)和提交两个阶段。

这个举个例子,比如说咱们公司里经常tb(团建),然后一般会有个tb主席(就是负责组织团建的那个人)。

第一个阶段,一般tb主席会提前一周问一下团队里的每个人,说,大家伙,下周六我们去滑雪+烧烤,去吗?这个时候tb主席开始等待每个人的回答,如果所有人都说ok,那么就可以决定一起去这次tb。如果这个阶段里,任何一个人回答说,我有事不去了,那么tb主席就会取消这次活动。

第二个阶段,那下周六大家就一起去滑雪+烧烤了。

2PC 是一种尽量保证强一致性的分布式事务,因此它是同步阻塞的,而同步阻塞就导致长久的资源锁定问题,总体而言效率低,并且存在单点故障问题,在极端条件下存在数据不一致的风险。

这种分布式事务方案,比较适合单块应用里,跨多个库的分布式事务,而且因为严重依赖于数据库层面来搞定复杂的事务,效率很低,绝对不适合高并发的场景。如果要玩儿,那么基于spring + JTA就可以搞定。

 

以上是关于分布式事务的主要内容,如果未能解决你的问题,请参考以下文章

86 SpringCloud解决分布式事务

MongoDB4.2分布式事务

分布式事务

分布式事务初探

分布式事务,高并发下分布式事务的解决方案

分布式事务就是由多个本地事务组合而成的事务