Skip to main content

Load Balancer and Load balancing Algorithms


What is Load Balancer?

Load balancer is a virtual or physical device which distributes network traffic to clustered servers. It improves responsiveness and increases availability of applications.

Load balancer is an interface between client and server which acts as an advisor for the client network and request traffic. Passes the requests to the right server by using various load balancing algorithms.
Which reduces the load on single server and prevents any one application server from becoming a single point of failure. It results applications availability and response time.



Load balancer and Algos


Load Balancing Algorithms

There are lots of techniques and methods for load balancing algorithms. In a smart way handling the request and sending it to the right server. some might be complex algorithms. It is dependent what kind of system architecture you have.
Here are the few techniques.

Round Robin :Round robin passes the request to load balancer by one by one.

Example: if there are 3 load balancer they will get requests one by one. All they will be equally distributed to all servers.

Weighted Round Robin: It is similar as the round robin but servers get rating and as per the ratings servers get requests.
Smart load balancing calculates the load on the server and passes to the right server as per the load.

Least Connections: Servers with the least connection requests gets the next request.

Weighted Least Connections : Servers get rated with numerical value and when both servers have same number of connections rated one gets the priority.

Weighted Response Time: Load balancer calculates the health check response time to determine the fastest response time. At heavy load request are not sent to the particular server. Goes to the next server in the pool.


if you any questions or concerns regarding the blog let me know on aniketkarne@hotmail.com.


Happy Learning.. 😊

Comments

Popular posts from this blog

Auto Scaling DynamoDB

Those of you who have worked with the DynamoDB long enough, will be aware of the tricky scaling policies of DynamoDB. It allows user to explicitly set requests per second (units per second, but for simplicity we will just say request per second). User can do so for read as well as write operations. Anytime user can increase or decrease the provision capacity from DynamoDB web console and it will reflect immediately. Sounds all good....... Or not? What if you set provisioned capacity to 50 req per second but load on the server crosses 100 req per second? Requests gets throttled!! Mostly times out. What's worse? This can cause requests getting queued up in your web server. Which can potentially bring your entire server down. What if you set provisioned capacity to 1000 req per second but load on the server is only 100 req per second through out the day? You lose your hard earned money for remaining 900 req per second. What if you set it to 1000 req per sec and then realis

StackDriver Integration with AWS Elastic Beanstalk - Part 1

Stack Driver Setup Step 1: Create stackdriver project Navigate to https://stackdriver.com  After logging in you will be redirected to project creation page. To manage multiple environments of your application its advisable that you create just two projects. One for production env and other one for non-prod. Even though you might have multiple non-production environments, but having one stackdriver project per application-env is overkill. So, lets start with production project. For this tutorial, I'll create CodeHooDoo-Prod project. Once the project is created, StackDriver will ask you to link your AWS account resources to it for monitoring.  But as AWS CloudWatch has good monitoring and alerting support you can skip this one. Keep clicking continue until you get to monitoring console. Click on the logging. This is where you will get all the logs from your application server. Step 2: Download authentication key Navigate backt to https://stackdriver.com .