Skip to navigation

The routing algorithm decides which backend receives each request. Set it as the Routing algorithm in the Routing and health section when you create a load balancer. Backend weights apply on top of every algorithm — a backend with weight 200 receives twice the share of one with weight 100.

Available algorithms

AlgorithmHow it worksBest for
Round robin (round_robin) (default)Cycles through backends in orderEvenly sized backends serving uniform requests
Least request (least_request)Sends each request to the backend with the fewest active requestsMixed request durations — keeps slow requests from piling onto one backend
Random (random)Picks a backend at randomLarge backend pools where per-request state isn’t worth tracking
Consistent hash (consistent_hash)Hashes the request so the same client keys map to the same backendCache-friendly workloads where repeat hits should land on the same backend

Sticky sessions

On Layer 7 load balancers, enable Sticky sessions to pin a client to one backend across requests. Affinity is header-based: requests carrying the same value in the Sticky header name header (default X-User-ID) always route to the same backend.

Use sticky sessions when your application keeps per-user state in memory. Prefer stateless backends where possible — stickiness reduces how evenly load spreads.

Weights

Every backend has a Weight from 1 to 1000 (default 100). Use uneven weights to:

  • Split traffic between versions (e.g. 90 / 10 canary)
  • Send more traffic to larger instances in a mixed pool

Weights are set when you create the load balancer. A load balancer cannot be edited in place — to change weights, delete it and create a new one with the new values.