An Introduction to IBM's Network Dispatcher
Mike Wilcox
The Internet has brought us many new technologies as well as new requirements for the Web-based application. One urgent need is for high availability and rapid scalabilty of the infrastructure supporting our Web-based application. To meet this need, I am going to discuss "client spraying". In a basic setup, an HTTP client will connect to one HTTP server. However, if this server is down or is busy, there is not a backup server for the client to connect to. Although there are other ways to correct this problem, the method used by IBM's Network Dispatcher is called "client spraying".
The idea behind client spraying is to create a pool of HTTP servers and allow a client to connect to any one of the available servers. Because the Network Dispatcher only allows connections to available servers, high availability can be achieved. By adding more servers to the pool and then using advisors (which I will address later), the Network Dispatcher can load balance among the available servers. The ease of adding servers combined with the load balancing provides a powerful architecture to scale our application's server resources.
My goal in this article is to introduce the technology and then, via an example, elaborate on how the Network Dispatcher works. I will start with a discussion of how load balancing and high availability of the servers is achieved using Network Dispatcher's advisors and metrics. I will then discuss how high availability is built into the Network Dispatcher, so that the Network Dispatcher is not a single point of failure.
I'll begin with a simple example of one machine running Network Dispatcher
(ND1) and two servers (HTTP1 and HTTP2) running our application. See Figure
1. Our Network Dispatcher cluster address is 9.9.10.1 (www.m
|