2012-03-10 23 views
8

Tomcat ile kullanmak için iyi bir yük dengeleyici arıyorum. Uygulamamız, oturum bağlamında hiçbir şey depolamamaktadır, bu nedenle aynı kullanıcı için aynı sunucuya yönlendirmek önemli değildir. Basitçe, yuvarlak-robin stili isteklerini sıraya koyan veya her bir sunucunun bireysel yüküne dayanan bir şeyden hoşlanırdım. Yük dengeleyicisini yeniden başlatmaya gerek kalmadan, istekleri işlemek için mevcut olanlara uygulama sunucuları ekleyebilmeyi isterim. Eğer önemliyse uygulamayı linux üzerinde çalıştırıyoruz.Tomcat yük dengeleyici çözümleri

+0

Nasıl bir uygulamanın büyük Burada konuşuyorsun?Yükü işlemek için sadece iki sunucu ise, bunu web sunucusu düzeyinde yapabilirsiniz. 5+ sunucuya bakıyorsanız ticari çözümlere bakmak isteyebilirsiniz. – Sean

+0

Muhtemelen 5+ sunucu. –

cevap

6

tek ihtiyacınız Linux kullanımı Apache Webserver2, Mod-Jk ve Tomcat Kümeleme bir yazılım yük dengeleyici ise:

1) apache2 ve modjk yükleyin::

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

2) Apache'niz için bir "workers.properties" dosyası oluşturun2. Bazı durumlarda ist/etc/apache2 dizininde otomatik olarak oluşturulur. Bu dosya otomatik olarak oluşturulmadı eğer

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), sizin apache2 yapılandırma dosyasında bir Mod-Jk bölümü oluşturun .:, yani senin Tomcat sunucuların lb yapılandırma, düğüm adları, ips ve portları düzenliyor.

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

4) yük dengeleyici başvurunuzu (apache2 yapılandırma dosyası) bağlayın: şekilde daha sonra (arşivini paketini kullanarak tomcat'ı kurun

5): En Tomcat sunucularına anda

JkMount /MyApp  balancer 
JkMount /MyApp/*  balancer 

JkMount /modjkstatus lbstats 

apt verison). Değişim server.xml:

  1. http konektörleri devre dışı bırakın.
  2. AJP/1.3 bağlacını etkinleştirin ve bu düğüm için worker.properties içinde tanımladığınız bağlantı noktasını ayarlayın.)

    <Engine jvmRoute="node1" ... 
    
  3. En basit konfigürasyonda

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

6 için bir "Küme" öğesi ekleyin Başvurunuzu dağıtın:

  • "Motor" öğesine sağ düğüm adıyla jvmRoute eklemek Tüm tomcats ve web.xml için dağıtılabilir bir öğe ekleyin.

    <distributable/> 
    

    7) web sunucusu Tomcat sunucularında ajp portları erişebilir emin olun ve başka kimsenin yapamayacağı. 8) Web sunucusunu ve tomcats'ı birbiri ardına başlatın ve günlükleri kontrol edin (/var/log/apache2/mod_jk.log da).

    9) uygulamanızı erişin: http://mywebserver.com/MyApp

    10) kontrol edin (ve erişim) lb durumu sayfasını inkar http://mywebserver.com/modjkstatus

  • +0

    modjk ve modcluster arasındaki fark nedir? – user12458

    +0

    mod_cluster, JBoss'tan farklı bir [yük dengeleme çözümü] (http://mod-cluster.jboss.org/) – Stefan

    İlgili konular