Ответ
L3-балансировщик работает на сетевом уровне (Layer 3 модели OSI), распределяя трафик между серверами на основе IP-адресов. В отличие от L7, он не анализирует содержимое запросов (HTTP-заголовки, cookies и т.д.).
Пример в Go с использованием net:
func handleConnection(conn net.Conn, backend string) {
backendConn, _ := net.Dial("tcp", backend)
go io.Copy(backendConn, conn)
io.Copy(conn, backendConn)
defer conn.Close()
defer backendConn.Close()
}
Ключевые особенности:
- Быстрее L7 за счет меньшего анализа трафика
- Подходит для TCP/UDP-трафика
- Не поддерживает продвинутые функции (A/B-тестирование, sticky sessions)
- Часто используется в связке с DNS (Round Robin)