Patroni 和 等 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Patroni 和 等

我們建議將 Patroni 做為提供 HA 自動容錯移轉管理的解決方案。Patroni 是 PostgreSQL 資料庫的開放原始碼自動容錯移轉管理員。您可以使用 Patroni 作為範本,透過使用 Python 和分散式組態存放區,例如來建立自訂 HA 解決方案,以實現最大的可存取性。

Patroni 也提供 APIs來檢查 PostgreSQL 服務的狀態,以及每個資料庫執行個體或節點的角色。您必須在每個資料庫執行個體上安裝 Patroni,才能使用 等式 (分散式組態存放區)。

根據預設,Patroni 會設定 PostgreSQL 進行非同步複寫。選擇複寫方法取決於您的業務考量。Patroni 是設定 HA 的最佳工具之一,因為它具有高度可設定性。以下是使用 Patroni 的一些優點:

  1. 在不同的複寫模式之間切換很容易 (同步和非同步)。

  2. Patroni 具有豐富的 REST API。Patroni 會針對自身使用此 API,透過使用 HAProxy 或其他負載平衡器執行 HTTP 運作狀態檢查,在領導者競賽期間執行容錯移轉。

  3. Patroni 必須暫時停止管理叢集,同時仍保留分散式組態存放區 (DCS) 中的叢集狀態。例如,您不希望容錯移轉發生在手動維護時段。Patroni 提供暫停和繼續命令,讓您避免不必要的停機時間。

  4. 為了避免分裂腦問題,Patroni 必須確保在 DCS 中的領導金鑰過期之後,PostgreSQL 不會接受任何交易遞交。Patroni 也支援 Watchdog 之類的裝置,以避免分片腦問題。如需分割腦問題和監視器的詳細資訊,請參閱 Patroni 文件中的監視器支援

架構

下圖顯示使用 Patroni 等,在 Amazon EC2 上設定內部部署 PostgreSQL 資料庫的 HADR 架構。

Patroni 架構

該圖顯示以下工作流程:

  1. 建立 EC2 執行個體。

  2. 安裝 PostgreSQL 資料庫。

  3. 在 EC2 執行個體上安裝和設定 Patroni。

  4. 建立和設定 Network Load Balancer。

  5. 設定 etcd (適用於 Patroni) 中的每個 PostgreSQL 資料庫以取得 HA。

考量事項

建議您先考慮下列事項,再使用 Patroni 開始遷移:

  • 使用者必須具備 PostgreSQL 管理和 DCS 專業知識,才能使用 Patroni。

  • Patroni 具有陡峭的學習曲線和許多組態選項可供選擇。

  • 您必須擁有專用於 Patroni 的額外連接埠。