问题:如何在postgresql中处理分布式事务?

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

解答

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

  • 原生分布式事务和

  • XA 事务。

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

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

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

Logo

PostgreSQL社区为您提供最前沿的新闻资讯和知识内容

更多推荐