Architecture

📖 2 min read 📄 Part 3 of 10

Load Balancer - Architecture

High-Level Architecture

👥 Clients 🌍 DNS / Anycast Routing ⚖️ LB 1 (Active) L4 TCP/UDP ⚖️ LB 2 (Active) L4 TCP/UDP ⚖️ LB N (Active) L4 TCP/UDP 🔀 L7 Load Balancer (HTTP/HTTPS) Round Robin • Least Connections • Weighted ❤️ Health Checks 🖥️ Server 1 Healthy ✓ 🖥️ Server 2 Healthy ✓ 🖥️ Server 3 Healthy ✓ 🖥️ Server N Healthy ✓ Algorithms: Round Robin | Least Connections | Weighted | IP Hash | Consistent Hashing
Load Balancer — Multi-tier Architecture with Health Checks

Load Balancer Components

  • Connection Handler: Accept client connections
  • Request Parser: Parse HTTP/TCP requests
  • Algorithm Engine: Select backend server
  • Health Checker: Monitor backend health
  • Connection Pool: Maintain backend connections
  • Metrics Collector: Track performance metrics

Load Balancing Algorithms

Round-Robin

  • Distribute requests evenly
  • Simple, no state needed
  • Good for homogeneous backends

Least Connections

  • Route to server with fewest connections
  • Better for long-lived connections
  • Requires connection tracking

Weighted Round-Robin

  • Assign weights to servers
  • More powerful servers get more traffic
  • Flexible capacity management

IP Hash

  • Hash client IP to select server
  • Session persistence
  • Consistent routing per client

Least Response Time

  • Route to fastest server
  • Requires latency tracking
  • Optimal performance

Health Checking

Health Check Process:
1. Send probe to backend (every 5s)
2. Wait for response (timeout: 2s)
3. Mark healthy if success
4. Mark unhealthy after 3 failures
5. Remove from pool if unhealthy
6. Re-add when healthy again

Session Persistence

  • Cookie-Based: Insert cookie with server ID
  • IP-Based: Hash client IP
  • Header-Based: Use custom header
  • TTL: Session timeout (default: 1 hour)

Connection Draining

Graceful Shutdown:
1. Mark server as draining
2. Stop sending new connections
3. Wait for existing connections to complete
4. Timeout after 5 minutes
5. Force close remaining connections
6. Remove server from pool

This architecture provides high-performance, reliable load balancing for distributed systems.