postgresql - 如何在postgresql中处理分布式事务?

标签 postgresql distributed-transactions xa

任何人都可以告诉我如何在 postgresql 中处理分布式事务,也称为“XA”?有相关资源吗?非常感谢您的回答。

最佳答案

看来你有点糊涂了。通常数据库系统支持分布式事务类型的两种概念:

  • native 分布式事务和
  • XA 交易。

原生分布式事务一般在同一个RDBMS的不同服务器之间。 Postgres 也支持使用 dblink_exec 命令。通常,与其他服务器的连接是由所谓的数据库链接创建的。 Postgres 比其他一些商业级 RDBMS 使用起来更笨拙。您首先需要安装一个扩展才能使用数据库链接。然而,postgres rdbms 正在管理事务。

另一方面,XA 事务由外部事务管理器 (TM) 管理,每个参与的数据库都具有 XA 资源的角色,它与事务管理器一起登记。 RDBMS 无法再自行决定何时提交事务。这是 XA 事务管理器的任务。他使用 2PC 协议(protocol)来确保以一致的方式跨数据库应用或回滚更改。

在某些操作系统(如 Windows)上,事务管理器是操作系统的一部分,而在其他操作系统上则不是。一般java自带事务管理器,需要配置相应的数据源才能使用XA。

关于postgresql - 如何在postgresql中处理分布式事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21109362/

相关文章:

linux - 如何在 Linux Ubuntu 16 上安装 luasql?

.net - MSDTC促进交易分布式的可靠测试吗?

Java - 启发式异常

java - Spring JMS 监听器中的事务管理

spring - 我什么时候使用 XA 数据源和 2 阶段提交

ruby-on-rails - 在 has_many 关系上应用条件

postgresql - 我们可以在 kubernetes 中的同一个持久卷中创建多个数据库吗?

jms - 分布式事务 Java JMS

jms - 非法尝试将单相资源与现有的两相资源一起提交

python - Django/Python : Update the relation to point at settings. AUTH_USER_MODEL