Junior — Middle
Kas saaksite selgitada Least Connection koormuse tasakaalustamise algoritmi tööpõhimõtet?
sobes.tech AI
Vastus AI-lt
Least Connection load balancing algorithm distributes incoming requests to servers by selecting the server with the fewest active connections at the moment.
Working principle:
- The load balancer tracks the number of current active connections on each server.
- When a new request arrives, it selects the server with the least number of active connections.
- The request is sent to this server, and the active connection counter increases.
- After the request is processed, the counter decreases.
This allows for an even distribution of load, especially when request processing times vary, and prevents overloading individual servers.
Simple example in Go:
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("Selected server: %s with %d active connections\n", server.Address, server.ActiveConnections)
}