2 つの Tomcat サーバーでクライアントの要求を分散するように、Apache Web サーバーをセットアップしようとしています。Web サービスには Axis2 を使用します。2 つの Tomcat にデプロイされます。Web サービスを呼び出すと、クラスタが確立されているにもかかわらず、応答するサーバーは常に 1 つだけです。このチュートリアル、Axis2 1.6.1、Tomcat 7、Apache Web Server 2.2 を使用し、Windows 32 ビット システムで実行しています。両方の Tomcat でクライアント要求のバランスをとるにはどうすればよいですか? Web サーバーのプロキシ構成と関係があるかもしれませんが、それは単なる考えです。スクリーンショットなどが必要な場合は、お知らせください。そして、私のドイツ語のアクセントでごめんなさい:)
2 に答える
通常、ロード バランシング (クラスタリング) では、1 つのサーバーが最初に応答します。どのサーバーが構成内のロード バランサー (プロキシ) によって決定されます。通常、ロード バランサー (プロキシ) は、使用頻度の低いサーバーが見つかるまで、クラスター化されたすべてのサーバーにクエリを実行します。クラスター化された環境をテストするには、高負荷をシミュレート (または作成) するか、サーバーの 1 つを「減速」 (または完全に停止) する必要があります。
それは今動作します。これは、間違った IP を持つ axis2.xml ファイルの構成の問題でした。今、私はすべてのインスタンスで次の構成を持っています:
<!-- The host name or IP address of this member -->
<parameter name="localMemberHost">127.0.0.1</parameter>
Tomcat インスタンスの server.xml ファイルも重要です。ここで、シャットダウン ポートはインスタンスごとに異なる必要があります。
インスタンス 1:
<Server port="8005" shutdown="SHUTDOWN">
インスタンス 2:
<Server port="8015" shutdown="SHUTDOWN">
コネクタ ポートも異なる必要があります。
インスタンス 1:
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
インスタンス 2:
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
次に、これらの調整を Apache Web サーバーの httpd.conf ファイルで次のように設定します。
BalancerMember ajp://127.0.0.1:8009 min=1 max=1 route=node1 loadfactor=1
BalancerMember ajp://127.0.0.1:8010 min=1 max=1 route=node2 loadfactor=1
そして今、私のクラスターは正常に動作します。何が問題なのかを理解するために、いくつかのステップに戻る必要がある場合があります。