A cluster is a group of linked servers working closely together to provide enterprise services—Servlets and EJBs—as if it were a single server. Clusters can be used for various reasons such as high-availability, load balancing, and so on. Configuring multiple servers to form a cluster is referred to as Clustering. These servers, referred to as nodes in the cluster, could be running on the same system or separate systems. Typically, the nodes exchange messages to synchronize data, such that any node can process the requests in a distributed application. Geronimo provides a rich set of features for creating multiple servers from the same installation (referred to as a vertical cluster), easy application management across multiple server installations on multiple systems (referred to as a horizontal cluster), and session replication between nodes in the cluster. In this chapter, we will examine the various features provided by Geronimo for the clustering of web applications and configure an Apache web server to achieve load balancing and high availability. You will learn about:
Clustering support in Geronimo
Getting Geronimo server and your application ready for clustered deployment
Load balancing your clustered application by using Apache web server
Running multiple server instances from a single Geronimo installation
Farming