【发布时间】:2018-04-12 12:38:36
【问题描述】:
我知道可以使用 PostgreSQL 驱动程序通过 PGReplication API 接收单个数据库的逻辑数据库复制操作流。
但我想从 所有 postgresql 集群中的数据库接收事件,只需一个流。
主要动机是减少我们的用例所需的连接数量;如果我们可以只使用所有数据库的单个数据流,我们就可以避免使用或管理每台服务器 30 多个连接。这将在我们运行的许多服务器上更好地扩展。
这在 JDBC 中可行吗?也很高兴考虑 JDBC 的替代方案。
【问题讨论】:
-
如果你想复制所有的数据库,那为什么不使用物理复制呢?我也不认为您可以在 JDBC 中避免这种情况,因为核心中的逻辑复制适用于每个数据库级别,而不是集群级别。所以 JDBC 和任何其他接口都无法做到这一点。
-
我实际上并不想复制数据库,我想在特定表更改时向我的堆栈发送通知。我知道这可以通过 NOTIFY 完成,但是 NOTIFY 不支持两阶段提交,并且管理超过 60 个数据库(2 个 30 个数据库的集群)很复杂。肯定有利有弊,但如果可以跨多个数据库完成,我想探索使用逻辑复制。
标签: postgresql jdbc replication