社区
Java SE
帖子详情
请问数据库中的双步提交(Two-Phase Commit,2PC)是什么意思?
wingardium
2010-05-21 11:29:06
请举个具体例子说明下,谢谢!
...全文
542
5
打赏
收藏
请问数据库中的双步提交(Two-Phase Commit,2PC)是什么意思?
请举个具体例子说明下,谢谢!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
@井九
2010-05-21
打赏
举报
回复
主要是事务的嵌套会发生2PC
火龙果被占用了
2010-05-21
打赏
举报
回复
JTA 在 J2SE 环境中是没办法测试的,必须在 J2EE 应用服务器中。
J2EE 应用服务器为什么说会有好的、差的,免费的和商业的,其中最为重要的一点就是对于事务的处理能力。像开源的 J2EE 应用服务器在这一点上是没办法跟 WebLogic, WebSphere 这些商业 J2EE 应用服务器相比拟的。
在 J2EE 环境中使用 JTA 事务与 Local 事务的代码是一模一样的,对于开发人员来说这绝对是希望听到的。
Local 事务就是通常所称的 Connection 的事务
火龙果被占用了
2010-05-21
打赏
举报
回复
2-PC 称为“两阶段提交”,2-PC 是分布式事务协议。
比如说一个事务涉及 Oracle、MySQL 和 MS SQLServer 三个数据库的操作,举个最简单的例子,要在这三个数据库中各插入一条数据,但必须保持在一个事务中,要三个插入全部成功才算成功,如果只成功了一个或者两个,那么所有的操作都进行回滚,而 2-PC 就是用来干这事的。
两阶段提交需要有个中间协调人。在 Java 中只有 JTA 才能支持两阶段提交,而这个中间协调人就是 J2EE 应用服务器。
继续刚才那个事务,两个阶段如下:
一、各数据库在执行完 INSERT 后,J2EE 应用服务器在收到提交指令,这时通知各数据库进行事务提交准备。
数据库在收到响应后,进行准备工作,基本上是一个预提交工作,如果能提交则响应 J2EE 应用服务器是 能成功提交的,如果无法提交则响应 J2EE 应用服务器是无法提交的。
二、J2EE 应用服务器在收集到所有的响应之后进行判断,如果在第一阶段收到的信息都是可提交的,那么就通知所有的数据库进行提交;如果在第一阶段收到的信息有一个是无法提交的,那么就通知所有的数据库进行回滚操作。
通过这些步骤,可以看出分布式事务处理是很耗时的,也是相当麻烦的。因为数据库在第一阶段给事务协调器响应后如果能提交,在第二阶段就必须要保证事务能被提交,这是数据库要做的事情。
这里的 J2EE 应用服务器是 2-PC 的协调者。2-PC 在 JAVA 中不仅可以用于分布式数据库事务,也能应用于 JMS 事务。
要支持分布式事务,那么数据库就必须支持两阶段提交协议,否则是不能支持的。
wingardium
2010-05-21
打赏
举报
回复
[Quote=引用 1 楼 hardycheng 的回复:]
http://en.wikipedia.org/wiki/Two-phase_commit_protocol
维基百科中的解释
[/Quote]
但是里面没有实际例子。
hardycheng
2010-05-21
打赏
举报
回复
http://en.wikipedia.org/wiki/Two-phase_commit_protocol
维基百科中的解释
两阶段
提交
协议(two
phase
commit
protocol,2
PC
)
本文介绍了两阶段
提交
协议(2
PC
)的基本原理及其在分布式事务
中
的应用。2
PC
是一种确保数据一致性的算法,用于协调分布式事务参与者决定
提交
或回滚事务。文章详细解释了2
PC
的两个阶段:请求阶段和
提交
阶段,并通过实例展示了其工作流程。
两阶段
提交
协议(two
phase
commit
protocol,2
PC
)详解
本文介绍了两阶段
提交
协议(2
PC
)的基本概念及其在分布式事务
中
的应用。2
PC
是一种确保数据强一致性的算法,用于协调分布式事务参与者
提交
或回滚事务。文章详细解释了2
PC
的执行过程、特点及存在的问题。
架构之2
PC
(Two-
Phase
Commit
)协议
本文全面介绍两阶段
提交
协议(2
PC
),涵盖其定义、核心流程、优缺点及典型故障处理机制。重点分析了在分布式环境下如何保障事务的原子性与一致性,并探讨了3
PC
优化方案和实际应用场景如
数据库
XA、RocketMQ事务消息等,最后给出使用建议与发展趋势。
两阶段
提交
协议(Two-
Phase
Commit
,2
PC
)
两阶段
提交
协议(2
PC
)是分布式事务处理协议,能确保分布式系统
中
事务的一致性。它将
提交
过程分为准备和
提交
两阶段,有保证一致性、简单易理解等优点,但也存在阻塞、性能开销大等缺点。为解决问题,还出现了三阶段
提交
协议等变种。
分布式事务理论-二阶段
提交
(Two-
phase
Commit
)
本文介绍了两阶段
提交
(2
PC
)与三阶段
提交
(3
PC
)协议,探讨了这两种协议如何解决分布式事务
中
的一致性问题。2
PC
通过协调者统一管理节点
提交
流程,而3
PC
在此基础上增加了预
提交
阶段及超时机制,有效缓解了阻塞问题并提高了系统的可用性。
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章