Mastering Load Balancing: 5 Core Strategies and How to Choose the Right One
This article explains what load balancing is, compares it to navigation routing, and details five common strategies—round‑robin, weighted round‑robin, least connections, fastest response, and hash‑based—along with their pros, use‑cases, and health‑check mechanisms for achieving high availability.
What Is Load Balancing?
Load balancing is the process of using a single unified entry point to collect traffic and then redistribute it, similar to a navigation app that selects a limited number of optimal routes to spread vehicle flow.
In software systems, a load balancer prevents uneven traffic distribution and overloaded nodes by acting as a “traffic navigator”, but unlike navigation it makes routing decisions automatically based on defined strategies.
Common Load‑Balancing Strategies
1. Round‑Robin
Distributes requests evenly in a cyclic order. Example code is illustrated in the image below.
2. Weighted Round‑Robin
Extends round‑robin by assigning a weight to each server, allowing more powerful nodes to receive more traffic. The image demonstrates the algorithm and its weight‑based selection process.
The following diagram shows the weight calculation and selection flow.
3. Least Connections
Selects the server with the fewest active connections at the moment, providing dynamic balancing based on real‑time load.
4. Fastest Response
Routes traffic to servers that have responded most quickly in recent measurements, effectively a weighted approach based on response time.
5. Hash‑Based
Uses a hash of a client identifier (commonly the source IP) to consistently map a client to a particular server, ensuring session affinity. The simple modulo hash is shown below.
Pros, Cons, and Use‑Cases
Each algorithm balances simplicity against performance. Simple methods are easy to implement, while more sophisticated combinations or data‑driven predictions can achieve better results at the cost of complexity.
Health Checks for High Availability
To keep a load balancer reliable, health‑checking mechanisms remove unhealthy nodes from the pool. Common checks include:
HTTP probing : Send GET/POST to a fixed URL and evaluate status code or response content.
TCP probing : Perform a TCP three‑way handshake and immediately reset the connection to release resources.
UDP probing : Send a UDP packet and consider the service healthy if no error response is received.
Conclusion
Load balancing distributes requests across multiple units according to defined rules, enabling horizontal scaling and higher availability while improving resource utilization.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Java Backend Technology
Focus on Java-related technologies: SSM, Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading. Occasionally cover DevOps tools like Jenkins, Nexus, Docker, and ELK. Also share technical insights from time to time, committed to Java full-stack development!
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
