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

简介: 常见分布式事务的解决方案(一)

2PC两段提交的方案

解决的问题:为了保障数据强一致性的问题。

角色:协调者(可以是leader),事务参与者(follow)

步骤如下:

首先分成两个阶段:

准备阶段:

协调者要向所有的参与者发送事务内容,询问是否可以提交事务,并等待所有的事务参与者的一个回应,然后各个的参与者会执行事务的操作。会将undo,redo信息写入事务日志(MySQL)当中缓冲区临时的数据,但是不提交事务,如果重启服务器的话,日志会丢失,因为没有提交,上面的过程只要有一个出现问题,就全部回滚

提交阶段:

当协调者收到所有参与者的yes,这时协调者会发送commit命令。如果执行失败,就给所有的参与者发送no。

注意:阶段一,只要有一个参与者返回了一个No,然后协调者在阶段二向所有的参与者发送全部回滚rollback的命令-事务中断。

总结:2pc方案实现起来很简单,但是实际项目中用的很少

1、性能问题:在提交阶段所有的事务参与者都在协调者发送命令者处于同步阻塞状态。阻塞最占用系统资源的。

2、可靠性问题:如果协调者宕机,所有的参与者就一直阻塞状态,就有单点故障的问题。

3、数据的一致性问题:在阶段2处于局域网的状态,部分事务参与者收到了commit消息,另一部分参与者没有收到commit消息,导致节点之间的数据 不一致的问题。

相关文章
|
17天前
|
存储 SQL 微服务
常用的分布式事务解决方案(三)
常用的分布式事务解决方案(三)
|
17天前
|
消息中间件 中间件 关系型数据库
常用的分布式事务解决方案(四)
常用的分布式事务解决方案(四)
|
17天前
常用的分布式事务解决方案(二)
常用的分布式事务解决方案(二)
|
2月前
|
存储 NoSQL Java
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
这篇文章是关于Java面试中的分布式架构问题的笔记,包括分布式架构下的Session共享方案、RPC和RMI的理解、分布式ID生成方案、分布式锁解决方案以及分布式事务解决方案。
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
|
2月前
|
存储 监控 数据可视化
性能监控之JMeter分布式压测轻量日志解决方案
【8月更文挑战第11天】性能监控之JMeter分布式压测轻量日志解决方案
63 0
性能监控之JMeter分布式压测轻量日志解决方案
|
3月前
|
存储 NoSQL 算法
实现分布式锁的Java解决方案
实现分布式锁的Java解决方案
|
3月前
|
关系型数据库 分布式数据库 数据库
PolarDB,阿里云的开源分布式数据库,与微服务相结合,提供灵活扩展和高效管理解决方案。
【7月更文挑战第3天】PolarDB,阿里云的开源分布式数据库,与微服务相结合,提供灵活扩展和高效管理解决方案。通过数据分片和水平扩展支持微服务弹性,保证高可用性,且兼容MySQL协议,简化集成。示例展示了如何使用Spring Boot配置PolarDB,实现服务动态扩展。PolarDB缓解了微服务数据库挑战,加速了开发部署,为云原生应用奠定基础。
236 3
|
3月前
|
负载均衡 Java 开发者
Spring Cloud实战:构建分布式系统解决方案
Spring Cloud实战:构建分布式系统解决方案
|
3月前
|
存储 数据管理 数据库
现代数据库技术中的分布式一致性问题与解决方案探讨
分布式系统在现代数据库技术中扮演着重要角色,但分布式环境下的数据一致性问题始终是挑战之一。本文深入探讨了分布式一致性的核心概念、各种一致性模型的特点及其在实际应用中的优缺点,旨在为技术从业者提供全面的视角和实用的解决方案。
|
3月前
|
消息中间件 Java 中间件
Java面试题:解释分布式事务的概念,讨论常见的分布式事务解决方案。
Java面试题:解释分布式事务的概念,讨论常见的分布式事务解决方案。
50 0