簡體   English   中英

跨多個PostgreSQL數據庫的JDBC邏輯復制

[英]JDBC Logical replication across multiple PostgreSQL databases

我知道可以使用PostgreSQL驅動程序通過PGReplication API接收單個數據庫的邏輯數據庫復制操作流。

但是我想從一個PostgreSQL集群中的所有數據庫接收事件。

主要動機是減少用例所需的連接數。 如果我們可以僅消耗所有數據庫的單個數據流,則可以避免消耗或管理每個服務器30個以上的連接。 這將在我們運行的許多服務器上更好地擴展。

在JDBC中可能嗎? 很高興也考慮替代JDBC。

PostgreSQL提供的任何功能都不能直接讓您執行此操作,因為PostgreSQL后端無法連接到多個數據庫,也無法從多個數據庫接收更改。

不管使用LISTENNOTIFY ,邏輯解碼還是其他類型,每個數據庫都將需要一個連接。 否則,您將需要某種聚合器/代理來維持這些連接並為您的應用提供單個流。

考慮:

  • 在數據庫服務器上或數據庫服務器附近運行每個數據庫服務器的聚合器,該聚合器與服務器上的所有數據庫都連接,並通過Kafka或其他方式提供單個事件流。

  • 檢查出於某種目的需要互連的具有這么多獨立數據庫的體系結構是否有意義。 您是否應該使用模式分片?

下一版本的pgologic(不是PostgreSQL的內置邏輯復制,不是一個單獨的工具)將支持向Kafka中饋送事件流,然后您可以從應用程序中使用它。 因此,這可能是一種選擇。 免責聲明:我是開發人員之一,並在2ndQuadrant工作,該公司是其工具。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM