Clustering overview
Use clustering to create identical copies of an application server. A cluster is created based on an existing application server, and then you can add additional cluster members as needed. It is recommended that you convert the original application server into a cluster member. When you create a new cluster member, it is identical to the original application server.
To manage clustered application servers efficiently, you manage the cluster that contains them. When you make changes to the cluster, those changes are automatically propogated to the application server cluster members when you restart them. In addition to making it easy to administer several servers as one logical server, clustering ensures that the cluster members are identical so that requests are processed in the same manner, regardless of which application server processes the request.
Clustering applications servers preserves containment relationships. For example, you create a cluster from an application server, which hosts an enterprise application. All cluster members that you create from that cluster also contain the enterprise application.
The process of creating a cluster consists of these steps:
- Before you create a cluster, configure the application server that you want to use to create the cluster.
- Install the applications that want to run in your cluster.
- Configure resources for the applications and the application server.
- Verify and test the application.
- Use the administrative console to create a cluster based on your application server, and include the original application server as a cluster member in the new cluster.
- Create additional cluster members based on the original application server.
- When you need to make changes to your clustered application servers, make the changes to the cluster. Restart the cluster members to propogate the changes.
Workload management is enabled when you start the application server cluster. No additional configuration is necessary.
Benefits of clustering
Clustering provides several benefits that improve the availability of your enterprise applications. Clusters provide support primarily for workload management, but they also enhance scalability and provide failover support.
The ability to route a request to any server in a cluster of identical servers allows the servers to share work. You can distribute requests among clustered servers according to their capabilities.
Scalability
Clustering is an effective way to perform vertical and horizontal scaling of application servers.
- In vertical scaling, defining cluster members on a single machine may allow more efficient allocation of its processing power. This is particularly useful when your environment contains large, underutilized machines. For more information about vertical scaling, see Vertical scaling sample topology.
- In horizontal scaling, defining cluster members on multiple machines in a system allows you to run a single WebSphere Application Server application on several machines. Although the application is deployed on multiple physical machines, it presents a single system image to clients. Horizontal scaling is particularly useful in environments that consist of smaller, less powerful machines. For more information about horizontal scaling, see Horizontal scaling sample topology and Horizontal scaling with Network Dispatcher sample topology.
Failover
If a single application server fails, the other servers in the cluster are not affected. They continue to process the client workload, maintaining throughput and reliability. With cluster members distributed to various machines, even failure of an entire machine does not result in an loss of service (unless the failed machine is a single point of failure). When one machine fails, workload management failover support routes requests to other machines.
You can combine horizontal and vertical scaling to gain the benefits of both scaling techniques.