Topics

Weighted Round Robin (WRR) is an extension of standard round robin load balancing algo. It assigns requests to servers in a cyclical fashion (like vanilla round robin), but disproportionately based on a server’s assigned weight.

It is a static load balancing method; distribution pattern determined by weights, not real-time server metrics. Useful when server capacities are known and relatively stable.

Each server in the pool is given numerical weight: reflects server’s processing capacity or capability to handle connections. Server with higher weight receives proportionally more requests than server with lower weight.

Purpose of weights: To send more traffic to powerful servers and less traffic to weaker ones, resulting in better resource utilization across server pool.

Example: Servers A (weight 3), B (weight 1), C (weight 2). Request distribution sequence could be A, A, A, B, C, C, then repeat.

Advantages

  • Distributes load according to server capacity
  • Simple to implement and understand
  • Effective for steady loads

Disadvantages

  • Requires manual (static) assignment/updating of weights
  • Doesn’t account for current server load (connections, CPU usage) only theoretical capacity
  • Can lead to imbalance if weights are not accurately set or server conditions change dynamically