1

背景: 私のアプリケーションでは、ServiceMixインスタンスを使用して HTTP 要求を処理しています。これらの負荷を分散するには、(いくつかの要件に従って) Tomcat を使用する必要があることがわかりました。

質問: Tomcat には独自の http サーバーが組み込まれていると言うべきだと思いますが、Tomcat と mod_jk (Apache HTTP サーバーなし) をロード バランサーとして使用できますか?

私の読書: Tomcat Clustering docTomcat JK load balancer のようなTomcatのドキュメントをいくつか読みました(これはあまり役に立ちませんでした)

では、Tomcat と mod_jk だけをロード バランシングの目的で使用することさえ可能でしょうか?

どんな助けでも大歓迎です。

4

2 に答える 2

2

アプリケーションの負荷を分散するには、同じアプリケーションで 2 つ以上の Tomcat インスタンスを実行する必要があります。同じマシンの異なるポート (例: www.myapp.com:8080 と www.myapp.com:9090) または同じポートの異なるマシン (例: www1.myapp.com:8080 と www2. myapp.com:8080)。通常、インスタンスは同じバックエンド データ ストアを共有します。各 Tomcat は独自の Web サーバーであるため、複数の Web サーバーが実行されます。

同一のインスタンスが 2 つあるため、ユーザーは 2 つのインスタンスのいずれかを使用できます。また、現在使用しているマシンに問題が発生した場合に、一方から他方に切り替えることもできます。しかし、ユーザーが手動でマシンを選択したり交換したりする必要はありません。ここでロードバランサーの出番です。

ロード バランサーはユーザーからリクエストを受け取り、それを負荷分散されたインスタンスの 1 つに動的にルーティングします。ロードバランサーは Web サーバーでもあります。BIG-IP F5 のようなハードウェア ロード バランサー、または Apache、nginx、または別の Tomcat サーバーなどのソフトウェアを使用できます。

Apache Web サーバーを使用して負荷分散を行う場合は、Tomcat サーバーの 1 つにリクエストを渡すための Apache モジュールが必要です。通常、これは mod_jk または mod_proxy です。

簡単に言えば、Apache をロード バランサーとして使用する場合は、mod_jk (または mod_proxy) を使用する必要があります。別のロードバランサーを使用する場合、mod_jk は使用できません。

Tomcat ロード バランサ ソリューションも参照してください。

于 2012-08-01T10:30:07.453 に答える
1

mod_jk は、ネイティブ コードで記述された apache httpd サーバーまたはその他のサーバー内で実行されます。動作する構成を次に示します。

  1. mod_jk を使用した Apache httpd または IIS は、Tomcat サーバーへの要求を負荷分散します。
  2. リバース プロキシをサポートし、負荷分散機能を備えた Web サーバーを使用できます
  3. 専用のロードバランサ製品が利用可能

ロード バランシングを行うには、スティッキー セッション ルーティングが必要かどうかを判断する必要があります。

また、負荷分散を構成して使用するために、Tomcat クラスター セッション マネージャーを構成する必要はありません。

Tomcat 自体の Java 部分には組み込みのロード バランサーが付属していないことは確かです。ユーザーは上記のオプションのいずれかを使用する必要があります。

于 2012-08-01T08:33:15.543 に答える