本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Patroni 和 等
我們建議將 Patroni
Patroni 也提供 APIs來檢查 PostgreSQL 服務的狀態,以及每個資料庫執行個體或節點的角色。您必須在每個資料庫執行個體上安裝 Patroni,才能使用 等式 (分散式組態存放區)。
根據預設,Patroni 會設定 PostgreSQL 進行非同步複寫。選擇複寫方法取決於您的業務考量。Patroni 是設定 HA 的最佳工具之一,因為它具有高度可設定性。以下是使用 Patroni 的一些優點:
-
在不同的複寫模式之間切換很容易 (同步和非同步)。
-
Patroni 具有豐富的 REST API。Patroni 會針對自身使用此 API,透過使用 HAProxy
或其他負載平衡器執行 HTTP 運作狀態檢查,在領導者競賽期間執行容錯移轉。 -
Patroni 必須暫時停止管理叢集,同時仍保留分散式組態存放區 (DCS) 中的叢集狀態。例如,您不希望容錯移轉發生在手動維護時段。Patroni 提供暫停和繼續命令,讓您避免不必要的停機時間。
-
為了避免分裂腦問題,Patroni 必須確保在 DCS 中的領導金鑰過期之後,PostgreSQL 不會接受任何交易遞交。Patroni 也支援 Watchdog 之類的裝置,以避免分片腦問題。如需分割腦問題和監視器的詳細資訊,請參閱 Patroni 文件中的監視器支援
。
架構
下圖顯示使用 Patroni 等,在 Amazon EC2 上設定內部部署 PostgreSQL 資料庫的 HADR 架構。

該圖顯示以下工作流程:
-
建立 EC2 執行個體。
-
安裝 PostgreSQL 資料庫。
-
在 EC2 執行個體上安裝和設定 Patroni。
-
建立和設定 Network Load Balancer。
-
設定 etcd (適用於 Patroni) 中的每個 PostgreSQL 資料庫以取得 HA。
考量事項
建議您先考慮下列事項,再使用 Patroni 開始遷移:
-
使用者必須具備 PostgreSQL 管理和 DCS 專業知識,才能使用 Patroni。
-
Patroni 具有陡峭的學習曲線和許多組態選項可供選擇。
-
您必須擁有專用於 Patroni 的額外連接埠。