Load balancers
Load balancing distributes workload across multiple computing resources, such as servers, CPUs, hard drives, and network links, to achieve optimal resource utilization, maximize throughput, minimize response time, and avoid overload. Figure 4.5 shows a load balancer connected to clients on one end and a pool of server machines on the other end.
Figure 4.5: Load balancer
The following are some key points about load balancing:
- It allows the spread of a huge amount of traffic across multiple servers so that no single server gets overloaded.
- It improves fault tolerance by failing over (i.e., retrying the failed requests from failed or slowed-down servers to functioning servers).
- It increases overall service availability since requests can still be serviced by the functioning servers even if some servers fail.
- It can enable a graceful degradation of performance during periods of high load instead of a complete failure of the...