Load Balancing

The concept of load balancing is that load is balanced over two or more available systems.

In the simplest example, 50% of traffic is sent to one server, 50% is sent to the other.

The load balancer decides where to send each request based on random selection, a round-robin technique, or more intelligent load balancing techniques.

Load Balancing Web Applications

For a website that provides static content only, normal load balancing works well. However, with a web based application, sessions are often used to maintain user state. This adds complexity when considering load balancing, because session state can be lost if the user is directed to a different server than the one where their session information is kept.

For a comparison of different techniques used to handle this problem, see Application Load Balancing.

High Availability (HA) and Failover in a Load Balanced Cluster

Naturally, companies want their servers to be available 24/7/365.

With 2 or more systems available, companies therefore often look for ways to use these extra resources to increase availability of their systems. The first thought is often "I have two servers, so if one goes down, can't the other one take over?".

Load balancing itself, does not imply any failover capability. It's purpose is simply to balance load. There is often confusion about the relation between HA and load balancing, because they are often considered at the same time.

Load balancing without failover, actually decreases availability. The reason is that extra points of failure are added to the system. For example, if your system uses a single load-balancer device, and 2 servers, 50% of traffic is sent to each server. If one server goes offline, 50% of your users can no longer be serviced.

For a comparison of different techniques used to provide high availability in web applications, see Application Failover.

metawerx specific

referring pages