Why Your Load Balancer Still Sends Traffic to Dead Backends
a day ago
- #system-reliability
- #health-checking
- #load-balancing
- Health checking is crucial for detecting and reacting to system failures, with mechanisms differing between client-side and server-side load balancing.
- Server-side load balancing uses a central proxy for health checks, providing a consistent view but with potential latency in failure detection.
- Client-side load balancing distributes health checking to clients, allowing faster failure detection but with increased complexity and inconsistency.
- Active health checks in client-side involve periodic probes by each client, leading to high probe traffic.
- Passive health checks in client-side monitor real request outcomes for immediate failure detection but require at least one failed request.
- Server-side load balancing is simpler and ideal for modest scale, while client-side excels in high-scale, low-latency scenarios.
- Many large systems use both models: server-side for external clients and client-side for internal service-to-service communication.