問題描述
在兩個不同的 PostgreSQL 數據庫服務器中更新數據 (Update data in two differents PostgreSQL database servers)
我有 2 個不同的應用程序(Web 應用程序和桌面應用程序),它們具有不同的數據庫服務器但結構相同。
我希望所有數據庫中的數據都相同,無論用戶在哪裡插入/更新/刪除記錄。這對我來說是最簡單的,但我認為不是最佳的。
因此,例如,如果我在桌面應用程序中插入一條記錄,則該記錄必須插入到 Web 應用程序服務器中("雲”),反之亦然。
我正在為 Web 應用程序使用 Spring+Hibernate+PostgreSQL,為桌面應用程序使用 JavaFX+Hibernate+PostgreSQL。
我正在考慮 2目前的選項:
每次插入/刪除/更新記錄時,使用套接字在服務器之間發送消息。
在 PostgreSQL 中使用觸發器和外部數據包裝器。我對此不太熟悉,所以我不知道我是否可以使用此選項製作我想要的東西。他們可以一起工作嗎?
還有其他選擇嗎?你認為什麼是最好的?
參考解法
方法 1:
The simplest and maybe best solution is to have one central read‑write database and several physical replication standbys.
The standby servers will be physical copies of the main database, and you can read from them (but not modify data).
(by jdbg91、Laurenz Albe)