php 分布式事务,分布式事务的七种实现方案汇总?

用户投稿 67 0

关于“php分布式事务处理”的问题,小编就整理了【3】个相关介绍“php分布式事务处理”的解答:

分布式事务的七种实现方案汇总?

分布式事务的七种实现方案:

1、基于可靠消息服务(基于可靠消息中间件);

2、较大努力尝试(基于消息中间件);

3、TX-LCN(对LCN的实现);

4、X/Open DTP模型(XA规范,基于两阶段提交);

5、阿里DTS(基于TCC);

6、华为ServiceComb(对SAGA模式的实现);

7、阿里GTS(开源产品为Fescar,对XA协议改进后的实现)。

分布式事务seata没人用吗?

没人用

这是一种强一致性的解决方案,因为每一个微服务都是基于各自的事务的,各自的事务是满足ACID的,而且等到大家都执行完了且都成功了才提交,所以全局事务是满足ACID的

分布式事务怎么控制?

分布式事务的控制是通过多阶段提交协议来实现的。

1.分布式事务的控制是通过多阶段提交协议来实现的。

2.多阶段提交协议是一种用于保证多个参与者之间数据一致性的协议。

它将整个分布式事务分为两个基本阶段:准备阶段和提交阶段。

在准备阶段,协调者节点向所有参与者节点发送准备请求,参与者节点执行相应的操作,并将操作结果以准备回复的形式返回给协调者节点。

在提交阶段,如果所有参与者节点都返回了准备回复,则协调者节点发出提交请求,参与者节点执行较终提交操作。

如果任意一个参与者节点返回了中断消息,则协调者节点发出中断请求,参与者节点执行中断操作。

通过多阶段提交协议,可以保证在分布式环境下各参与者节点之间的数据一致性。

3.除了多阶段提交协议外,还有其他的分布式事务控制机制,如基于锁机制的两阶段锁协议和基于时间戳的时间戳序列协议。

这些协议在具体场景中选择使用,可以根据实际需求和系统特点来决定。

同时,分布式事务的控制也需要考虑并发性能、故障恢复等因素,以保证系统的可靠性和效率。

XA是一个分布式事务协议,由Tuxedo提出。XA中大致分为两部分:事务管理器和本地资源管理器。其中本地资源管理器往往由数据库实现,比如Oracle、DB2这些商业数据库都实现了XA接口,而事务管理器作为全局的调度者,负责各个本地资源的提交和回滚。XA实现分布式事务的原理如下:

3:用消息队列消除分布式事务

步骤一出错,则整个事务失败,不会执行A的本地操作

步骤二出错,则整个事务失败,不会执行A的本地操作

步骤三出错,这时候需要回滚预备消息,怎么回滚?答案是A系统实现一个消息中间件的回调接口,消息中间件会去不断执行回调接口,检查A事务执行是否执行成功,如果失败则回滚预备消息

步骤四出错,这时候A的本地事务是成功的,那么消息中间件要回滚A吗?答案是不需要,其实通过回调接口,消息中间件能够检查到A执行成功了,这时候其实不需要A发提交消息了,消息中间件可以自己对消息进行提交,从而完成整个消息事务

虽然上面的方案能够完成A和B的操作,但是A和B并不是严格一致的,而是较终一致的,我们在这里牺牲了一致性,换来了性能的大幅度提升。当然,这种玩法也是有风险的,如果B一直执行不成功,那么一致性会被破坏,具体要不要玩,还是得看业务能够承担多少风险

到此,以上就是小编对于“php分布式事务处理”的问题就介绍到这了,希望介绍关于“php分布式事务处理”的【3】点解答对大家有用。

抱歉,评论功能暂时关闭!