Load Sharing and BalancingLoad Sharing and Balancing
- Saravanan Mathialagan- Saravanan Mathialagan
Masters in Computer ScienceMasters in Computer Science
Georgia State UniversityGeorgia State University
AgendaAgenda
IntroductionIntroduction Basic conceptsBasic concepts Advanced concepts of server Advanced concepts of server
Load BalancingLoad Balancing Application - Global server load Application - Global server load
balancing (GSLB)balancing (GSLB) Application – Web CachingApplication – Web Caching Load balancing in JavaLoad balancing in Java
IntroductionIntroduction
In computer networking, load In computer networking, load balancing is a technique to balancing is a technique to distributed work between many distributed work between many computers, processes, hard disks computers, processes, hard disks or other resources in order to get or other resources in order to get optimal resource utilization and optimal resource utilization and decrease computing time [3].decrease computing time [3].
The function is performed by the The function is performed by the load balancers.load balancers.
Introduction – Understanding the Introduction – Understanding the Load BalancerLoad Balancer
Fig 1.1 Server Farm with a loadFig 1.1 Server Farm with a loadbalancer [2]balancer [2]
Introduction – Understanding the Introduction – Understanding the Load BalancerLoad Balancer
An easy example – Router in a call center serverAn easy example – Router in a call center server
Load Balancer – Software & hardwareLoad Balancer – Software & hardware
Various other functions likeVarious other functions like • • Server load balancing Server load balancing
• • Firewall load balancing Firewall load balancing • • Transparent cache switching Transparent cache switching • • Server protectionServer protection• • Fault ToleranceFault Tolerance
Load Balancer does not works in the application levelLoad Balancer does not works in the application level
Advanced Concepts Advanced Concepts
Session PersistenceSession Persistence
The mega proxy problemThe mega proxy problem
Delayed bindingDelayed binding
Cookie switchingCookie switching
Advanced Concepts - Session Advanced Concepts - Session PersistencePersistence How application that runs on top of TCP/IP protocol How application that runs on top of TCP/IP protocol
affects the function of load balancer – affects the function of load balancer – Maintain Maintain Session[2]Session[2]
Advanced Concepts – the Advanced Concepts – the mega proxy problemmega proxy problem Situations where the source IP is not a reliable way to Situations where the source IP is not a reliable way to
identify a user, due to a proxy server is known as the identify a user, due to a proxy server is known as the megaproxy problemmegaproxy problem
Advanced ConceptsAdvanced Concepts
Delayed BindingDelayed Binding Delayed binding is this process of delaying theDelayed binding is this process of delaying the
binding of a TCP connection to a server untilbinding of a TCP connection to a server until
after the application request is received.after the application request is received.
Cookie SwitchingCookie SwitchingReading the cookie information to solve theReading the cookie information to solve the
Mega proxy problemMega proxy problem
Application - Global Server Application - Global Server Load BalancingLoad Balancing Domain Naming ServiceDomain Naming Service
Positioning the GSLBPositioning the GSLB• Not to affect the existing flowNot to affect the existing flow• Site selectionSite selection
Application - GSLBApplication - GSLB
Site selection based on the following [2]Site selection based on the following [2] Site health conditionsSite health conditions Site response timeSite response time Site Loading timeSite Loading time
Application – Web CachingApplication – Web Caching
Caches can be installed and utilized with the Load Caches can be installed and utilized with the Load balancers in the following ways [2]balancers in the following ways [2]
Forward proxy for client Forward proxy for client accelerationacceleration
Transparent proxy for client Transparent proxy for client accelerationacceleration
Reverse proxy for server Reverse proxy for server accelerationacceleration
Transparent reverse proxy for Transparent reverse proxy for server acceleration server acceleration
Application – Web CachingApplication – Web Caching
Transparent reverse proxy for Transparent reverse proxy for server acceleration [2]server acceleration [2]
Load Balancing in JavaLoad Balancing in Java
Load Balancing for Servlets and Load Balancing for Servlets and JSPs JSPs
Load Balancing for EJBs and RMI Load Balancing for EJBs and RMI Objects Objects
Load Balancing for JDBC Load Balancing for JDBC Connections Connections
Load balancing in Java – Load balancing in Java – Servlets and JSPsServlets and JSPs Load Balancing with a Proxy Plug-inLoad Balancing with a Proxy Plug-in
Weblogic proxy plug-in maintains as list of Weblogic proxy plug-in maintains as list of web logic servlet and JSP instancesweb logic servlet and JSP instances
Forwards the HTTP request to those Forwards the HTTP request to those cached instances in round-robin methodcached instances in round-robin method
Some webservers and associated proxiesSome webservers and associated proxies Weblogic server & HTTPClusterServletWeblogic server & HTTPClusterServlet Apache with Apache proxy plug-insApache with Apache proxy plug-ins Microsoft IIS with IIS pluginsMicrosoft IIS with IIS plugins
Load balancing in Java – Load balancing in Java – EJB’s and RMI’sEJB’s and RMI’s
The Object instances stored in the stubs The Object instances stored in the stubs [1][1]
TechniquesTechniques Round Robin Load Balancing Round Robin Load Balancing Weight-Based Load Balancing Weight-Based Load Balancing Random Load BalancingRandom Load Balancing
Load balancing in Java – Load balancing in Java – EJB’s and RMI’sEJB’s and RMI’s Round Robin Load Balancing Round Robin Load Balancing
Server instances called in orderServer instances called in order Simple and cheap are the advantagesSimple and cheap are the advantages If one is slow others will be affectedIf one is slow others will be affected
Weight based load balancingWeight based load balancing Weighted in scale of 1-100 depending on the load Weighted in scale of 1-100 depending on the load
managed by servermanaged by server Load distributed accordinglyLoad distributed accordingly
Random Load Balancing Random Load Balancing Does not discrete difference in processing and Does not discrete difference in processing and
assumes homogenous systemsassumes homogenous systems Overhead in generating random numberOverhead in generating random number simplesimple
Load balancing in Java – Load balancing in Java – JDBC ConnectionJDBC Connection
Load balancing of JDBC connection Load balancing of JDBC connection requires the use of a multipool configured requires the use of a multipool configured for load balancing. Load balancing support for load balancing. Load balancing support is an option you can choose when is an option you can choose when configuring a multipool [1]. configuring a multipool [1].
Multipool has an ordered lit of connection Multipool has an ordered lit of connection pool that routes the connectionpool that routes the connection
Default the first connection pool if not run in Default the first connection pool if not run in load balancing modeload balancing mode
ReferencesReferences
o Load Balancing in Java [1]Load Balancing in Java [1]
http://e-docs.bea.com/wls/docs81/cluster/http://e-docs.bea.com/wls/docs81/cluster/load_balancing.html#1043771load_balancing.html#1043771
o Other references on load balancing from [2]Other references on load balancing from [2]
Load Balancing Servers,Firewalls, and Caches by Load Balancing Servers,Firewalls, and Caches by Chandra Kopparapu Chandra Kopparapu
o Wiki – Load Balancing [3]Wiki – Load Balancing [3]
http://en.wikipedia.org/wiki/Load_balancinghttp://en.wikipedia.org/wiki/Load_balancing