Skip to main content
More in Learn

What Is a Load Balancer?

A load balancer is a device or software function that distributes network or application traffic across a cluster of servers. Its primary goal is to optimize resource use, maximize throughput, minimize response time, and avoid overload of any single server.

By balancing client requests across multiple servers, a load balancer reduces individual server load and prevents one server from becoming a bottleneck, increasing overall service reliability and availability.

Load balancers can be either hardware-based or software-based. While hardware-based solutions are known for their performance, they can be expensive and lack flexibility. On the other hand, software-based solutions are more cost-effective and offer greater flexibility in terms of deployment and scalability.

A load balancer operates at various layers of the Open Systems Interconnection (OSI) model, a conceptual framework that standardizes the functions of a communication system into abstract layers. Load balancers that function at Layer 4 (Transport Layer) distribute traffic based on network information such as IP address and TCP port, while those operating at Layer 7 (Application Layer) distribute requests based on content type, such as distributing video and image requests to different servers.

The two main types of load balancing are:

  1. Distributive Load Balancing. Here, the load balancer disseminates incoming requests uniformly across all servers in a pool. The decision is typically based on a round-robin system, where each server is selected in rotation.
  2. Dynamic Load Balancing. In this method, the load balancer makes decisions based on the system's current state, such as the existing load on each server. This requires real-time communication between the load balancer and the server pool.

Load balancers use a variety of algorithms to determine which server should handle a given request. Some of these include round-robin, least connections, and IP hash.

A load balancer also performs health checks on the servers in its pool to ensure they are responsive and capable of handling requests. If a server fails to respond to a health check, the load balancer will stop sending it new traffic until it becomes responsive.

People showing thumbs up

Need further assistance?

Ask the Crystallize team or other enthusiasts in our slack community.

Join our slack community