HAproxy に次の DB サーバーの IP アドレスを返すようにするにはどうすればよいですか?

HAproxy に次の DB サーバーの IP アドレスを返すようにするにはどうすればよいですか?

HAproxy を使用して、実際に HAproxy ボックス経由でリクエストをルーティングせずに、DB サーバーがオンラインかどうかを確認したいと思います。HAproxy に接続して DB ホストの IP アドレスを返す方法はありますか?

たとえば、Web サーバー #1 からポート 3306 で HAproxy に接続します。HAproxy は 3306 でリッスンし、DB ホストのリストから DB ホスト #1 をエコーし​​ます (ラウンドロビン)。次に、Web サーバー #1 から DB ホスト #1 に直接接続します。

答え1

バニラの haproxy ではありませんが、私も同じ問題を抱えていたので、haproxy にパッチを当ててまさにこの機能を追加しました。いつかは haproxy 自体に組み込まれるかもしれません (作者はこれに前向きでしたが、まだ手を付けていない変更をいくつか要求しました)。

もし興味があれば、このパッチを共有します。しかし、本当に必要かどうか自問してください。なぜ「通常の」ロードバランシングでは不十分なのでしょうか。おそらく、戻りトラフィックがロードバランサーをバイパスするように、直接サーバーに返す必要があるのでしょう。安定した、サポートされた製品を実行することは、ちょうど必要な機能 (私の知る限り、どのオープンソース ロードバランサーにも存在せず、私が調べたクローズド ソース ロードバランサーにも存在しません)。

関連情報