Dynamic HTTP load balancing method and apparatus
AssigneeInternational Business Machines Corporation
InventorsRoberto DeLima, Craig A. Lanzen
Life of this patent
Estimating the term…
Abstract
The invention is a method and apparatus for facilitating load balancing in a server farm. In accordance with the invention, all of the information about each server necessary for a load balancing program to define and execute a load balancing algorithm is stored at a predetermined URL or each server. The load balancer can query the predefined URL, which returns the necessary information. The load balancer then dynamically configures the load balancing algorithm in accordance with the returned information.
Claims20
A method of configuring a load balancer for dispatching client requests in a server farm comprising:
- initializing a load balancer by identifying to said load balancer, address information for a plurality of servers in a server farm;
- individually polling each of the plurality of servers by the load balancer so as to obtain a configuration file from each polled server if available, wherein:
- each obtained configuration file contains the parameters necessary to configure the load balancer for bringing the associated polled server on-line;
- and
- polling is implemented by repeating for each of said plurality of servers:
- selecting by said load balancer, a next one of said plurality of servers;
- sending a request across a corresponding network from said load balancer to said next one of said plurality of servers for a corresponding configuration file by specifying a predefined Uniform Resource Locator (URL) using a standard network protocol request, wherein the corresponding configuration file is stored in a local memory of said next one of said plurality of servers identified by the predefined Uniform Resource Locator (URL) and contains parameters including variables to be applied for configuring a load balancing scheme implemented by said load balancer;
- waiting for a reply from said next one of said plurality of servers;
- receiving either said corresponding configuration file formatted into a markup language supported by the load balancer or an error message from said next one of said plurality of servers;
- and
- validating parameters in said corresponding configuration file if received;
- and
- configuring a load balancing algorithm by said load balancer in accordance with said parameters that were read out of each corresponding configuration file.
A computer readable product embodied on computer readable media readable by a computing device for configuring a scheme for balancing the servicing of client requests in a server farm comprising:
- computer readable program code configured to initialize a load balancer by identifying to said load balancer, address information for a plurality of servers in a server farm;
- computer readable program code configured to individually poll each of the plurality of servers by the load balancer so as to obtain a configuration file from each polled server if available, wherein:
- each obtained configuration file contains the parameters necessary to configure the load balancer for bringing the associated polled server on-line;
- and
- polling is implemented by repeating for each of said plurality of servers by:
- computer readable program code configured to select by said load balancer, a next one of said plurality of servers;
- computer readable program code configured to send a request across a corresponding network from said load balancer to said next one of said plurality of servers for a corresponding configuration file by specifying a predefined Uniform Resource Locator (URL) using a standard network protocol request, wherein the corresponding configuration file is stored in a local memory of said next one of said plurality of servers identified by the predefined Uniform Resource Locator (URL) and contains parameters including variables to be applied for configuring a load balancing scheme implemented by said load balancer;
- computer readable program code configured to wait for a reply from said next one of said plurality of servers;
- computer readable program code configured to receive either said corresponding configuration file formatted into a markup language supported by the load balancer or an error message from said next one of said plurality of servers;
- and
- computer readable program code configured to validate parameters in said corresponding configuration file if received;
- and
- computer readable program code configured to configure a load balancing algorithm by said load balancer in accordance with said parameters that were read out of each corresponding configuration file.
A computing apparatus for performing load balancing of client requests in a server farm comprising:
- means for initializing a load balancer by identifying to said load balancer, address information for a plurality of servers in a server farm;
- means for interfacing to a network to receive client requests directed to one of said plurality of servers via said network;
- means for individually polling each of the plurality of servers by the load balancer so as to obtain a configuration file from each polled server if available, wherein:
- each obtained configuration file contains the parameters necessary to configure the load balancer for bringing the associated polled server on-line;
- and
- polling is implemented by repeating for each of said plurality of servers:
- means for selecting by said load balancer, a next one of said plurality of servers;
- means for sending a request across a corresponding network from said load balancer to said next one of said plurality of servers for a corresponding configuration file by specifying a predefined Uniform Resource Locator (URL) using a standard network protocol request, wherein the corresponding configuration file is stored in a local memory of said next one of said plurality of servers identified by the predefined Uniform Resource Locator (URL) and contains parameters including variables to be applied for configuring a load balancing scheme implemented by said load balancer, and said load balancer waits for a reply from said next one of said plurality of servers;
- means for receiving either said corresponding configuration file formatted into a markup language supported by the load balancer or an error message from said next one of said plurality of servers;
- and
- means for validating parameters in said corresponding configuration file if received;
- means for configuring said load balancer to dispatch client requests among said plurality of servers based on a load balancing algorithm defined by said parameters including said variables obtained from said configuration files;
- and
- means for dispatching requests received via said network to said plurality of servers in accordance with said algorithm.
Dependencies are inferred from the claim text.