6

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

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

- 直到现在还没有找到太多关于此的内容:)

感谢任何帮助。

4

3 回答 3

4

也许您可以看看Atomikos,它是 Java 中分布式事务的开源实现。此外,您可能想了解 JTA 以获取有关分布式事务的更多信息。

基本上 2-phase-commit (2PC) 理论上不是很难理解:

  • 询问所有参与系统是否能够现在提交
  • 所有这些系统都必须回答是/否,而“是”意味着从那一刻起必须通过提交
  • 当所有系统都同意时,他们将执行提交,仅此而已
  • 如果一个系统不同意,所有系统都必须回滚
  • 协调系统应该期望在特定的时间范围内达成共识,否则它应该将其视为不同意提交
于 2012-03-10T21:01:35.047 回答
1

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

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

问候

通道。F。

于 2012-05-20T20:01:29.980 回答
1

检查Enduro/X 中间件。它也实现了两阶段提交。通过使用底层 XA 基础设施,它们提供 XATMI、tpopen()、tpbegin()、tpcommit()、tpend() 调用。在enduro.org网站上可以找到一些概念图。事务管理器来源在这里。请注意,它使用 XATMI 基础设施与其他事务管理器进行协调——它们被表示为服务。请参阅 XA决策状态机

请参阅Enduro/X PHP Client,也许您可​​以从中使用一些东西。可能 XATMI 服务支持也可以为 PHP 编码。

于 2018-04-13T23:27:04.433 回答