The load balancer sends each request to a server picked at random. It keeps no turn order and no counts, so it needs no shared state, and any number of load balancers can do it at once without coordinating. Even on average, it is uneven over short stretches. Below, compare it with round robin on exactly the same requests.
Each server drawn stands for one of your servers, and each dot for 100 real requests. Only the speed is slowed, so you can follow single requests. The random picks come from their own seeded stream, so switching the algorithm replays exactly the same requests, and Reset replays the same picks.
Busiest hour vs the daily average. The book's estimate uses 2x.
Measured by load testing one server until it cannot go faster.
Headroom for spikes and for random unevenness. 50 to 70% is common.
1. Average requests per second
2. Peak requests per second
3. Servers needed n
4. Load on each server, on average
5. How uneven random is
6. What that means for headroom
Steps 1 and 2 are the estimation method from the back-of-the-envelope chapter of Alex Xu's System Design Interview, Vol. 1, including its 2x peak. Step 5 is standard probability: the number of requests a server receives in a fixed time, when each lands on it with chance 1 / n, has a standard deviation of sqrt(m (1 - 1/n)), so the relative swing is sqrt((1 - 1/n) / m): close to 1 / sqrt(m) with many servers, and zero with one.
All three offer it, two of them with a twist.
random, "a request is passed to a randomly selected server, taking into account weights of servers." Its optional two parameter picks two servers at random and sends the request to the better one, by default the one with fewer active connections: power of two choices, the next page.All are the projects' and vendor's own documentation (primary sources). Quoted phrases are short attributed quotations; everything else is described in our words. Check the pages for current behaviour.