Round-robin - поочередная выдача запросов по списку бэкендов. Least connections - выбор бэкенда с наименьшим числом активных соединений. Weighted round-robin - с весами. IP hash - один клиент всегда на один бэкенд (sticky). В Go при реализации клиентского балансера хранят список адресов и индекс (atomic для round-robin) или счетчики соединений.
var idx uint32
next := atomic.AddUint32(&idx, 1)
backend := backends[next%uint32(len(backends))]