Project mod_cluster is a httpd-based load-balancer. It uses a communication channel to forward requests from httpd to one of a set of application server nodes. Unlike mod_jk and mod_proxy, mod_cluster leverages an additional connection between the application server nodes and httpd to transmit server-side load-balance factors and lifecycle events back to httpd. This additional feedback channel allows mod_cluster to offer a level of intelligence and granularity not found in other load-balancing solutions.
Mod_cluster boasts the following advantages over other httpd-based load-balancers:
- Dynamic configuration of httpd workers
- Server-side load balance factor calculation
- Fine grained web-app lifecycle control
- AJP is optional
http://www.jboss.org/mod_cluster
These versions already ship with bundled mod_cluster. It is configured via mod_cluster subsystem.
This is the first version of AS that bundled mod_cluster, the configuration is located in
/server/<profile>/deploy/mod_cluster.sar/META-INF
directory.
- Copy the exploded sar
mod_cluster.sar
directory into the deploy directory of a JBoss AS server profile. - Modify the
server.xml
withinjbossweb.sar
and add a clustered mode engine listener as documented here.
The tar.gz
from the assembly contains the JBossWeb-Tomcat
.
- Extract the
JBossWeb-Tomcat
directory. - Copy the JAR files from
JBossWeb-Tomcat/lib
to the Tomcat lib. - Remove the
mod_cluster-container-tomcat(n).jar
that don't correspond to the Tomcat version you are using. - Copy the
JBossWeb-Tomcat/lib/jboss-logging-jdk.jar
andJBossWeb-Tomcat/lib/jboss-logging-spi.jar
dependency jars into the samelib
directory. - Modify
server.xml
within theconf
directory and add a non-cluster mode engine listener as documented here.
container-spi (contains no dependencies on a specific web container)
container
catalina (base Tomcat/JBoss Web container implementation, based on Tomcat 5.5)
catalina-standalone (contains ModClusterListener, used for standalone Tomcat/JBoss Web installations)
jbossweb (JBoss Web container implementation, all versions)
tomcat6 (Tomcat 6.0 container implementation)
tomcat7 (Tomcat 7.0 container implementation)
core
demo
client
server
native (native httpd modules)
Before building, ensure you have Maven version 3.0 or newer (mvn -version
) and JDK 6.0 or newer (java -version
).
It is possible to build modules for all containers:
mvn install
Distribution package:
mvn -P dist package
Dynamic load-balancing demo is located in the /demo
directory:
mvn install
To build the native component from the sources you need a C compiler and the following tools:
- m4
- perl
- autoconf
- automake
- libtool
- make
- patch
- python
Of course the make and the patch must be GNU ones. For example on Solaris you need:
- SMCm4 (requires libsigsegv and libgcc34)
- SMCperl
- SMCautoc
- SMCautom
- SMClibt
- SMCmake
- SMCpatch
- SMCpython
All can be downloaded from http://www.sunfreeware.com/.
This software is distributed under the terms of the GNU Lesser General Public License (see lgpl.txt).