Junior — Middle
Pode explicar o princípio de funcionamento do algoritmo de balanceamento de carga Menor Conexão?
sobes.tech IA
Resposta da IA
O algoritmo de balanceamento de carga Least Connection distribui as solicitações de entrada para os servidores, escolhendo aquele servidor que, neste momento, tem o menor número de conexões ativas.
Princípio de funcionamento:
- O balanceador acompanha o número de conexões ativas atuais em cada servidor.
- Quando uma nova solicitação chega, é selecionado o servidor com o menor número de conexões ativas.
- A solicitação é enviada para esse servidor, e o contador de conexões ativas aumenta.
- Após a conclusão da solicitação, o contador diminui.
Isso permite distribuir a carga de forma uniforme, especialmente quando os tempos de processamento das solicitações variam, e evita sobrecarregar servidores individuais.
Exemplo em Go (simplificado):
package main
import "fmt"
type Server struct {
Address string
ActiveConnections int
}
func leastConnection(servers []Server) *Server {
var selected *Server
for i := range servers {
if selected == nil || servers[i].ActiveConnections < selected.ActiveConnections {
selected = &servers[i]
}
}
return selected
}
func main() {
servers := []Server{
{Address: "server1", ActiveConnections: 5},
{Address: "server2", ActiveConnections: 2},
{Address: "server3", ActiveConnections: 3},
}
server := leastConnection(servers)
fmt.Printf("Servidor selecionado: %s com %d conexões ativas\n", server.Address, server.ActiveConnections)
}