两阶段提交 - 寻找实现

时间:2012-03-10 20:50:37

标签: php 2phase-commit

我正在寻找两阶段提交协议的实现,是的,我是分布式事务的新手:)必须在php应用程序和远程“应用程序”(系统)之间实现两阶段提交。

我是否必须从头开始实施两阶段提交?您是否了解以任何语言实施的任何模块可以让我先行一步?

- 直到现在才发现这个问题:)

感谢任何帮助。

3 个答案:

答案 0 :(得分:4)

也许您可以查看Atomikos,它是java中分布式事务的开源实现。此外,您可能希望阅读有关JTA的信息,以获取有关分布式事务的更多信息。

基本上,2阶段提交(2PC)在理论上并不是很难理解:

  • 询问所有参与系统是否能够立即提交
  • 所有这些系统必须回答是/否,而是肯定意味着从承诺的那一刻起必须通过
  • 当所有系统都给他们好的时,他们将执行提交,就是这样
  • 如果一个系统不同意所有系统必须回滚
  • 协调系统应该在某个时间范围内达成一个好的,否则它应该视为不同意提交

答案 1 :(得分:1)

看看LIXA事务管理器(http://lixa.sourceforge.net/)它从0.9.0版开始集成了PHP和MySQL

它还提供分布式事务处理和两阶段提交功能。

此致

章。 F。

答案 2 :(得分:1)

检查Enduro/X middleware。它也实现了两阶段提交。通过使用底层XA基础结构,它们提供了XATMI,tpopen(),tpbegin(),tpcommit(),tpend()调用。在enduro.org网站上可以找到一些概念图。交易经理来源是here。请注意,它使用XATMI基础结构与其他事务管理器协调 - 它们表示为服务。请参阅XA decision state machine

请参阅Enduro/X PHP Client,也许您可​​以使用此内容。对于PHP,也可以编码XATMI服务支持。