4

4ノード(仮想マシン)間でBDR(Bi-Directional Replication)を使ってPostgreSQLのマルチマスターレプリケーションをセットアップしました。

今、高可用性のためにロードバランサーを配置したいと考えています。このために、5432/tcp で接続をリッスンしている別の仮想マシンに「HAProxy」をインストールして構成しました。haproxy の構成は次のとおりです。

listen pgsql_bdr *:5432
    mode tcp
    option  httpchk
    balance roundrobin
    server master 192.168.123.1:5432 check backup
    server slave1 192.168.123.2:5432 check
    server slave2 192.168.123.3:5432 check
    server slave3 192.168.123.4:5432 check

HAProxy サーバーの IP アドレスは 192.168.123.5 です。

アプリケーションで HAproxy サーバーの IP アドレスを使用してデータベースに接続しました (接続を実際のデータベース サーバーにリダイレクトする必要があります)。しかし、その時点で次のエラーが発生します。

サーバーへの接続エラー: サーバーが予期せず接続を閉じました。これはおそらく、リクエストの処理前または処理中にサーバーが異常終了したことを意味します。

そして、私は2つの方法で問題を解決しようとしたことに注意してください. まず、すべてのサーバー (HAProxy およびすべての postgres サーバー) でファイアウォールを無効にし、構成を次のように置き換えようとしました。

listen pgsql_bdr 0.0.0.0:5432

また

listen pgsql_bdr 127.0.0.1:5432

また

listen pgsql_bdr localhost:5432

しかし、私の場合、すべてが機能していませんでした。

問題を解決するのを手伝ってください。このシナリオで私が間違っていることは何ですか?

前もって感謝します!

4

2 に答える 2