Load Balancer
Overview
The Dispatcher is a part of the Load Balancer component set of the IBM WebSphere Application Server Edge Components product. The Edge components are included in WebSphere Application Server Network Deployment. The Dispatcher performs intelligent load balancing by using server availability, capability, workload, and other criteria you can define, to determine where to send a TCP/IP request. You can use the Dispatcher component of Load Balancer to distribute HTTP requests among Application Server instances that are running on multiple physical machines.
A simple Dispatcher topology
The following figure illustrates a simple horizontal scaling configuration that uses the Dispatcher component of Load Balancer to distribute requests among Application Servers on different machines.
You normally configure a backup node for the Load Balancer machine, to eliminate it as a single point of failure. In this example, you can set up the backup Load Balancer node (Machine D) to take over if the primary Load Balancer node (Machine A) fails.
You can cluster Application Servers in this example from the same model, or configure them independently.
A more complex Dispatcher topology
The next figure shows a Dispatcher component of Load Balancer that distributes requests among several machines containing clustered Web servers and Application Servers. Backups are not shown.
The first tier Web server machines host servlet-based applications. The second tier Application Servers contain mostly enterprise beans that access application data and execute business logic. This approach lets you employ numerous, less powerful machines on the first tier and fewer but more powerful machines on the second tier.
Using the Dispatcher with firewalls
You can also use the Dispatcher component of Load Balancer with demilitarized zone (DMZ) topologies. The Dispatcher simplifies creating a DMZ topology with two firewalls. One firewall protects the Web server from the public Web site. The second protects backend systems from the Web server in the DMZ, by using proxy services.
The Load Balancer machine is placed between the outside firewall and the cluster of Web servers that it serves. The outside firewall provides filtering to allow only HTTP and HTTPS traffic. The firewall to the backend systems (DBMS, CICS, SAP, and so on) handles non-HTTP protocols, such as IIOP and JDBC. The WebSphere Application Server can reside in the DMZ or on the same side of the firewall as the data tier.
The Dispatcher and session affinity
With a Dispatcher or similarly configured topology, associate a Web server with a separate, rather than clustered, Application Server to preserve affinity between the servers.
Discussion
Adding a mechanism for the Load Balancer to distribute HTTP requests provides these advantages:
- Improves server performance, by distributing incoming TCP/IP requests - in this case, HTTP requests, among a cluster of servers.
- Increases the number of connected users.
- Eliminates the Web server as a single point of failure. You can also use this mechanism in combination with WebSphere Application Server workload management, to eliminate the Application Server as a single point of failure.
- Improves throughput, by letting multiple servers and CPUs handle the client workload.
Instructions
Set up machines containing Web servers and Application Servers for the topology you plan to implement.
Place the Load Balancer, or another load balancing product, in front of the Web server machines. See the Edge Component documentation for the Load Balancer. Instructions vary per product.
The load balancing product communicates with the Web server, which in turn communicates with Application Servers. The configuration involves setting up communications between the load balancing product and the Web server.
It does not matter to the Load Balancer whether the Web server is routing requests to an Application Server or processing them itself. Therefore, it is not necessary to perform any special configuration to make the load balancing product and Application Servers aware of one another. This lack of configuration is true with the Load Balancer, based on testing with IBM WebSphere Application Server. Results can vary with other load balancing products.
Setting up a multinode environment