There are two ways of Clustering applications on Tomcat
1. Sticky Session
User request will always goes to same tomcat instance
2. Session Replication
User request can go to any tomcat in cluster and his session is copied on entire cluster
There are pros and cons of both approach, however i'll update this blog later on those.
Lets get started for Sticky Session based clustering and load balancing.
Use-Case
Setting up two tomcat along with apache on same windows machine.
Pre-requirements
1. install Apche 2.x
2. download tomcat 5.x /6.x and make an extra copy
Steps 1. open httpd.conf from apache_home/conf/ and add these lines at the end
BalancerMember ajp://localhost:8009/ route=tomcatA
BalancerMember ajp://localhost:8010/ route=tomcatB
ProxyPass balancer://mycluster/ stickysession=JSESSIONID
SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from localhost
Step 2.
uncomment the following four lines
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule status_module modules/mod_status.so
Step 3.
open tomcat_home_1/conf/server.xml and add jvmRoute="tomcatA" to the following line
Engine name="Catalina" defaultHost="localhost"
so it should look like this
Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcatA"
Step 4.
open tomcat_home_2/conf/server.xml and add jvmRoute="tomcatB" to the following line
Engine name="Catalina" defaultHost="localhost"
so it should look like this
Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcatB
also change the following port nos
Server port="8006" shutdown="SHUTDOWN"
Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8444"
Connector port="8010" protocol="AJP/1.3" redirectPort="8444"
Thats It!
start apache, tomcatA, tomcatB and
navigate to http://localhost/
also checkout balancer-manager
http://localhost/balancer-manager
for more configuration and understanding checkout the following link
Comments