Posted by Kashif Manzoor on April 30th, 2013
What is a Load Balancer?
Hardware or software which assigns workload to a set of servers in order to optimally use computing resources A server load balancer intercepts traffic destined for a site/application, and redirects it to various machines in the cluster as per method load-balancing. This optimizes use of system resources, resulting in higher performance, availability and scalability. Load balancers are recommended for mission-critical enterprise deployments of web-based applications such as Oracle E-Business Suite.
A load balancer consists of a virtual server which comprises an IP address and port. This virtual server is bound to a number of physical services in a server farm. A client sends a request to the virtual server, which then selects a server in the server farm and directs this request to the selected physical server.
We can outline the major functions of a server load balancer:
- Intercepts network traffic destined for a site.
- Splits the traffic into individual requests and decides which machines in the cluster are to receive these requests.
- Maintains a watch on the available machines, ensuring that they are responding to the traffic; if they are not, they are taken out from the load-balancing pool so that traffic can be routed to the machines that are available.
- Provides redundancy by employing more than one machine for fail-over scenarios.
- Provides context-aware load distribution, so that applications that need to maintain session-persistent connections do not fail. This feature of load balancer is very important for Oracle E-Business Suite as the various modules require session-persistent connections. To support this feature, the load balancer reads the cookies set on each request made by the client, and, based on the information in the cookie, it can rewrite the header information, then send the request to the appropriate machine in the cluster, where its session is maintained.
When is a Load Balancer required?
When we experience increase in user volumes- max utilization, need to add more resources to effectively service users.
When you wish to implement scalability and fault tolerance
A load balancer is essential when you have more than one application tier in an instance where at least 2 of the application tiers share a common entry point. You can have multiple application tiers without a load balancer but they must have an independent entry point.
What are the different types of Load Balancers?
- Hardware HTTP load balancers (recommended)
- DNS load balancers – network layer (Limitations include: unpredictable load distribution, DNS caching issues by the browser, lack of fault tolerance. Requires OC4J clustering)
- Software HTTP load balancers (not recommended)–(Limitations include: Most software packages cannot handle large sites or complex networks. Packages that will support larger systems require an abundant amount of hardware.)