0

MySQL と Galera wsrep を使用して同期レプリケーションを取得します。その部分は稼働しています。

クライアント接続を処理するために一種のプロキシをセットアップする必要があります。クラスター内のどのノードにも障害が発生する可能性があるため、クライアントはノードに直接接続せず、プロキシ経由でのみ接続します。

現在、動作する Galera Load Balancer を使用していますが、例外が 1 つあります。1 つのノードに障害が発生すると、そのノードにプロキシ経由で接続されているすべてのクライアントが接続エラーを取得し、再接続する必要があります。

プロキシに接続されているサーバー アプリケーションを制御できず、一部のアプリケーションは自動的に再接続できず、手動で再起動する必要があります。問題は、再接続する必要なく、プロキシが既に接続されているアプリケーションを新しいデータノードに自動的にリダイレクトする方法です。

4

1 に答える 1

1

実際には2つの質問があります:

  1. glbd は、ほとんど (すべてではない) の新しい接続を失敗したノードに送信します。これは、デフォルトで「接続が最も少ない」分散ポリシーを使用し、ノードが TCP 接続を受け入れる場合、接続が短命で負荷が最も少ないため、それが使用されるためです。 glbd の観点から。そのため、ノードがクラッシュした場合にのみ機能します。ラウンド ロビン バランシング ポリシーを使用して、最終的にアプリケーションが動作中のサーバーに接続するか、mysql クライアントを使用してサーバー ステータスをポーリングし、よりインテリジェントな決定を行うことができる glb-1.0.0beta を使用するようにします。
  2. 一般に、再接続と再認証なしにクライアント接続を移行することはほとんど不可能です。これは、プロキシがアプリケーションに代わってサーバーに再接続して再認証する場合でも (これは、プロキシが mysqld と同じ方法でクライアントを認証できることを意味します。サーバーとのクライアント認証ハンドシェイクをスパイして再生することができます (可能性はさらに低いです)。 )
于 2013-01-22T10:14:57.283 に答える