jump to navigation

Apache? Tomcat? mod_xxx? Load-Balancing? Failover? READ THIS. June 18, 2009

Posted by Sacha in JBoss.

Since I have been in the middleware field, I’ve been visiting lots of customers. And a very high percentage of them are using a very similar setup for their web deployments: an Apache httpd front-end acting as a long-balancer/failover for a cluster of tomcat-related instances (“-related” since it can be any flavor of a tomcat-engine, including JBoss AS).

But each time I met with any of those users, the problem is ALWAYS the same: which load-balancing module should I be running in httpd? mod_jk? mod_jk2? mod_proxy? which version? in which setup? For which OS? Truth is that picking up the right module isn’t exactly an easy choice: all had their own little issues, shortcomings and some releases would simply not work reliably on some OSes.

At JBoss, we had decided to fix the reliability issues by providing stable releases of those mod_xxx compiled on many different OSes. Still, this wasn’t fixing the fact that none of those modules provide enough features for a sophisticated load-balancing/failover setup. Consequently, about 1-2 years ago, we initiated a new project aiming at providing a clean next-gen solution: mod_cluster.

From the mod_cluster overview page:

mod_cluster is an httpd-based load balancer. Like mod_jk and mod_proxy, mod_cluster 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. The application server nodes use this connection to transmit server-side load balance factors and lifecycle events back to httpd via a custom set of HTTP methods, affectionately called the Mod-Cluster Management Protocol (MCMP). This additional feedback channel allows mod_cluster to offer a level of intelligence and granularity not found in other load balancing solutions.

The good news is that mod_cluster recently hit the 1.0GA milestone.

So, using Apache as a front-end to your JBoss or Tomcat worker nodes? Check-out mod_cluster, I bet this will quickly become part of your deployment.





1. Jim - June 19, 2009

Kudos to all those Apache developers who did all the work on mod_proxy and mod_heartbeat and mod_* that were leveraged to develop mod_cluster as well.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: