Round-robin — первый алгоритм балансировки, который встречается почти в любом учебнике и в дефолтном конфиге nginx. Он звучит справедливо: раздать запросы по очереди, каждому бэкенду поровну. Проблема в том, что «поровну по числу запросов» и «поровну по нагрузке» — это два разных обещания, и round-robin выполняет только первое. Разберём, почему честность по счётчику не спасает от перекоса, и какие алгоритмы закрывают эту дыру.
Подробнее →