2

mysql-proxy を使用するのはこれが初めてで、コミュニティが以前に取り組んだことがあるかどうか疑問に思っていた奇妙な動作を経験しています。

2 台の mysql サーバーに接続された amazon Linux (ec2 内) で mysql-proxy (0.8.2) を実行しています。Java クライアントはプロキシに接続でき、負荷分散は正常に機能します。

私の問題は次のとおりです。サーバー A に (プロキシ経由で) 接続されているクライアントがあります。フェールオーバーをテストするまでは問題なく動作します。サーバー A を閉じて、クライアントが単純な挿入コマンドを (既に確立された接続で) 実行しようとすると、プロキシが要求をサーバー B にリダイレクトすることを期待していましたが、次の例外が発生しています。

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: 通信リンク障害。

この場合のクライアントは、mysql-connector-java-5.1.17-bin.jar を使用する Java プログラムです。

これを解決する方法はありますか、それともここに何か欠けていますか?

4

1 に答える 1

0

他の誰かが同じ問題を抱えている場合に備えて、この問題に関する最新情報を以下に示します。

mysql-proxyは、クライアントがバックエンドサーバーに接続するときにバックエンドサーバーのステータスをチェックしているようです。DBとのキープアライブ\ハートビートは実行されません。私はluaスクリプトを使用してそのような動作を強制しようとしましたが、惨めに失敗しました。

考えられる代替案は、HAProxyを使用し、xintedmysqlchecksを含めることです。個人的には試していません。おそらく、java.sql.Connectionをラップし、mysql-proxyと適切に対話するプロキシ接続クライアントを構築することになります。

上記を達成する他の方法を見つけた場合はお知らせください。

于 2011-09-16T22:45:14.343 に答える