分布式事务的常见解决方案

在我们微服务开发中我们经常会遇到分布式事务的问题。

常见的解决方法:

        1.2PC模式

分布式事务的常见解决方案_第1张图片

分布式事务的常见解决方案_第2张图片 

分布式事务的常见解决方案_第3张图片 

        2.柔性事务-TCC补偿方案

分布式事务的常见解决方案_第4张图片 

        3.柔性事务-最大努力通知方案 

分布式事务的常见解决方案_第5张图片

        4.柔性事务-可靠消息-最终一致性方案(异步确保形)

分布式事务的常见解决方案_第6张图片

以下我们重点介绍下2pc和 柔性事务-可靠消息-最终一致性方案

1.2pc模式典型的实现是阿里巴巴提供的seata

分布式事务的常见解决方案_第7张图片

 

具体实现如下:

分布式事务的常见解决方案_第8张图片 

问题:seata实现事务是默认AT模式,其实在我们查看源码中会发现seata里面使用加锁的方式。这会导致在并发的情况下我们效率是很低的,所以seata实现分布式事务只是适用于后台管理类型的分布式事务情况,不适用于高并发的分布式事务处理。

那遇到高并发的分布式事务情况,我们怎么处理呢?,此时我们就可以使用之前提到的柔性事务-可靠消息-最终一致性方案

入用rabbitmq的消息可靠性保证消息的可靠,用队列(死信队列)来完成补偿机制,最终达到我们的柔性事务

 

你可能感兴趣的:(分布式)