Load balancing (computing)

Edit · View history

Load balancing (computing)

Load balancing is a technique used to distribute workloads across multiple computing resources, such as servers, network links, or storage devices. The primary goal is to optimize resource use, maximize throughput, minimize response time, and avoid overloading any single resource. Load balancing is a core component of high availability and scalability in modern distributed systems.

A load balancer typically sits between client devices and backend servers, accepting incoming network traffic and distributing it according to a set of rules or algorithms. Common load-balancing algorithms include round robin, least connections, IP hash, and weighted distribution. Load balancers can be implemented as hardware appliances, software solutions, or cloud-based services (e.g., AWS Elastic Load Balancing, Azure Load Balancer).

Features

History

Load balancing emerged in the 1990s as the World Wide Web grew and early web servers became overwhelmed by traffic. Early solutions were simple DNS round-robin techniques, which distributed requests by cycling through a list of IP addresses but lacked health checking or session awareness. By the late 1990s, dedicated hardware load balancers from companies like F5 Networks and Citrix (with its NetScaler product line) became popular in data centers. In the 2000s, software load balancers such as HAProxy, NGINX, and Linux Virtual Server (LVS) gained widespread adoption, offering flexibility at lower cost. The rise of cloud computing and microservices has led to a proliferation of cloud-native load balancers and service mesh sidecars (e.g., Envoy Proxy), which integrate closely with container orchestration platforms like Kubernetes.