2012-03-10 1 views
8

Tomcatで使用するロードバランサを探しています。私たちのアプリケーションはセッションコンテキストに何も保存しないので、同じユーザーに対して同じサーバーにリダイレクトすることは重要ではありません。私は単純に要求をラウンドロビン方式でキューに入れるか、各サーバーの個々の負荷に基づいてキューできるものが好きです。また、ロードバランサを再起動することなく、要求を処理できるアプリケーションサーバーを追加することもできます。私たちはLinux上でアプリケーションを実行しています。Tomcatのロードバランサソリューション

+0

あなたはここにどのようにアプリケーションの大きなを話していますか?負荷を処理するサーバーが2つの場合は、Webサーバーレベルで行うことができます。 5台以上のサーバーをお探しの場合は、商用ソリューションを検討してください。 – Sean

+0

おそらく5台以上のサーバー。 –

答えて

6

あなたが必要とするすべては、Linux上のソフトウェアロードバランサは、Apache Webserver2、モッドのJkとTomcatクラスタリングを使用している場合:

あなたのWebサーバーで:

1)のapache2とmodjkインストール:

sudo apt-get install apache2 libapache2-mod-jk 
sudo a2enmod jk 

2)apache2で利用できる "workers.properties"ファイルを作成します。場合によっては、/ etc/apache2ディレクトリに自動的に作成されます。このファイルには、すなわち、LBの設定、ノード名、IPSとあなたのTomcatサーバのポートを保持している。:

worker.list=balancer,lbstats 

#node1 
worker.node1.type=ajp13 
worker.node1.host=NODE-IP 
worker.node1.port=NODE-AJP-PORT 
worker.node1.lbfactor=10 

#more nodes here ... (change name in between) 

#lb config 
worker.balancer.type=lb 
#turn off sticky session 
worker.balancer.sticky_session=0 

#add all defined node names to this list: 
worker.balancer.balance_workers=node1 

#lb status information (optional) 
worker.lbstats.type=status 

3)が自動的に作成されていない場合は、お使いのapache2の設定ファイルでのMod-Jkのセクションを作成します。

JkWorkersFile /etc/apache2/workers.properties 
JkLogFile  /var/log/apache2/mod_jk.log 
JkShmFile  /tmp/jk-runtime-status 
JkLogLevel  info 

4)は、ロードバランサ(apache2の設定ファイル)にアプリケーションをマウントします。あなたのTomcatサーバで

JkMount /MyApp  balancer 
JkMount /MyApp/*  balancer 

JkMount /modjkstatus lbstats 

を:

5)のtarballパッケージを使用してTomcatをインストールします(ずっといいその後、 apt verison)を使用します。 server.xmlを変更してください:

  1. httpコネクタを無効にしてください。
  2. AJP/1.3コネクタを有効にし、このノードのworkers.propertiesで定義したポートを設定します。 )

    <Engine jvmRoute="node1" ... 
    
  3. 最も単純な構成

    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" /> 
    

6は、 "クラスタ" の要素を追加するには、アプリケーションをデプロイします。

  • "エンジン" の要素に右ノード名でのjvmRouteを追加すべてのTomcatに配布し、web.xmlにdistributable要素を追加します。

    <distributable/> 
    

    7)は、ウェブサーバがあなたのTomcatサーバー上でAJPポートにアクセスすることができますし、誰もができることを確認してください。

    8)WebサーバーとTomcatを順番に起動し、ログ(/var/log/apache2/mod_jk.logも参照)を確認します。

    9)は、あなたのアプリにアクセスします。http://mywebserver.com/MyApp

    10)チェック(とへのアクセスを拒否)ポンドのステータスページhttp://mywebserver.com/modjkstatus

  • +0

    modjkとmodclusterの違いは何ですか? – user12458

    +0

    mod_clusterは、[JBossとのロードバランシングソリューション](http://mod-cluster.jboss.org/) – Stefan