代码之家  ›  专栏  ›  技术社区  ›  Doctor Eval

跨多个PostgreSQL数据库的JDBC逻辑复制

  •  0
  • Doctor Eval  · 技术社区  · 7 年前

    我知道可以使用PostgreSQL驱动程序通过PGReplication API接收单个数据库的逻辑数据库复制操作流。

    但是我想收到来自 全部的 只有一个流的postgresql集群中的数据库。

    主要动机是减少用例所需的连接数量;如果我们可以为所有数据库只消耗一个数据流,那么我们可以避免每个服务器消耗或管理30多个连接。这将在我们运行的许多服务器上更好地扩展。

    这在JDBC中可能吗?很高兴考虑JDBC的替代方案。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Craig Ringer    7 年前

    PostgreSQL提供的任何功能都不允许您直接执行此操作,因为PostgreSQL后端无法连接到多个数据库或接收来自多个数据库的更改。

    如果你使用 LISTEN NOTIFY ,逻辑解码,或者什么,每个数据库需要一个连接。或者你需要某种聚合器/代理来维护这些连接,并为你的应用程序提供单一流。

    考虑:

    • 在db服务器上或其附近运行每db服务器聚合器,该聚合器连接到服务器上的所有db,并通过Kafka或其他方式提供单个事件流。

    • 检查一个具有这么多独立数据库的体系结构是否有意义,您需要为某些目的互连这些数据库。您是否应该改为模式切分?