Load balancers are used to increase capacity (concurrent users) and reliability of applications. They improve the overall performance of applications by decreasing the burden on servers associated with managing and maintaining application and network sessions, as well as by performing application-specific tasks.
Basically, a load balancer is a device that acts as a reverse proxy and distributes network or application traffic across a number of servers.
Load balancers are generally grouped into two categories:
1. Layer 4 and
2. Layer 7.
Layer 4 load balancers act upon data found in network and transport layer protocols (IP, TCP, FTP, UDP).
Layer 7 load balancers distribute requests based upon data found in application layer protocols such as HTTP.
Requests are received by both types of load balancers and they are distributed to a particular server based on a configured algorithm. Some industry standard algorithms are:
- Round robin
- Weighted round robin
- Least connections
- Least response time
Layer 7 load balancers can further distribute requests based on application specific data such as HTTP headers, cookies, or data within the application message itself, such as the value of a specific parameter.
Load balancers ensure reliability and availability by monitoring the “health” of applications and only sending requests to servers and applications that can respond in a timely manner.
Open Source Tools
Ultra Monkey
Ultra Monkey is a project to create load balanced and highly available network services. For example a cluster of web servers that appear as a single web server to end-users. The service may be for end-users across the world connected via the internet, or for enterprise users connected via an intranet.
More Details: http://www.ultramonkey.org/
Red Hat Cluster Suite
It is a high availability cluster software implementation from Linux leader Red Hat. It provide two type services:
- Application / Service Failover – Create n-node server clusters for failover of key applications and services
- IP Load Balancing – Load balance incoming IP network requests across a farm of servers
More Details:- http://www.redhat.com/cluster_suite/
Linux Virtual Server (LVS)
LVS is ultimate open source Linux load sharing and balancing software. You can easily build a high-performance and highly available server for Linux using this software.
More Details:- http://www.linux-vs.org/
The High Availability Linux Project
Linux-HA provides sophisticated high-availability (failover) capabilities on a wide range of platforms, supporting several tens of thousands of mission critical sites.
More Details: http://www.linux-ha.org/.