任何人都可以告诉我如何在 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/