2017-08-21 2 views
0

私は32ビットJDKとtomcatで動作するWebアプリケーションを持っています。このWebアプリケーションは、OOMと断続的にクラッシュし、接続プールスレッドを待機するタイムアウトになります。だから私は2つの異なるマシン上の2つの異なるtomcatsにアプリケーションをインストールしようとしています。 2つの異なるマシンで、より多くのヒープスペースがOOMの支援に利用できるようになります。2台のTomcatが異なるマシンにある場合、Tomcatでロードバランサを実装する方法は?

複数の並列セッションが進行中の場合、自由に利用可能なTomcatにユーザを誘導することが必須です。

負荷分散とクラスタリングについて読んだところ、ユーザーセッションからのすべての要求が同じTomcatに送られるように負荷分散が適しているようです。これは正しい理解ですか?

しかし、クラスタリングとロードバランシングは、2つの異なるマシン上のトムキャットをサポートしているようには見えません。アプリケーション(JVM)がより多くのメモリを利用できるように、別のマシンにtomcatsが必要です。

もっと読書等「テラコッタ」、「memcachedの」、「セッションレプリケーション」の用語で、より混乱が生じた

誰かがどのような可能な解決策に正しい方向に私を指すことができればそれは非常に参考になりますWebアプリケーションが利用できるリソースを増やすという観点から考えることができます。

+0

https://serverfault.com/questions/637303/scaling-a-web-application-horizo​​ntally-in-tomcat-load-balancing-clustering 2台のマシン間で状態レプリケーションが必要ですか? – drelliot

+0

フロントファサードとしてnginxを使用してください。フロントファサードは、バックエンドで動作しているTomcatへリクエストをリダイレクトします。セッションの場合、Tomcatの新しいバージョンはRedisを介したセッションの共有をサポートします。 – LFF

+0

はい、状態複製が必要です。 2つのセッションのユーザーが同じdbテーブルに書き込みを行っている場合は、そのケースを処理する必要があります。 – user811433

答えて

0

これはApache HTTPDとそのmod_proxy_loadbalancerで非常に簡単に実行できます。私はこのような構成を何年も続けてきました。それはセッションスティッキーとそれをすべて行うことができ、実行時に動的に制御することができます。

+0

私は現在、このセットアップをWindowsでHTTPD + mod_jk + tomcatを実行しようとしています。一つの質問があります。 Tomcatにデプロイされた私のWebアプリケーションは、https経由でアクセスできます。 HTTPDを使用してアプリケーションへのすべてのアクセスをルーティングする場合、TomcatでアプリケーションにHTTPS要求をサポートするようにHTTPDを設定するにはどうすればよいですか? mod_jkはこれをサポートしていますか、別のTomcatコネクタを使用する必要がありますか? – user811433

+0

HTTPDとTomcatの間にJK(またはAJP:以下を参照)プレーンテキストが必要です。 TomcatからHTTP/HTTPSコネクタを削除して、HTTP/SアクセスがHTTPD経由でしか行えないようにします。私はmod_jkではなくmod_ajpも使用します。一つは、AJPコネクタをTomcat側に、他のTomcat側の設定を全く必要としないように設定するほうがはるかに簡単です。 – EJP

関連する問題