Distributes requests across a set of backend nodes. Nodes are grouped into one or more clusters, and the configured dispatching strategy picks a node for each request, defaulting to round-robin. Failover is always on: the remaining nodes are added as fallback destinations, so a request retries the next node when one fails. When a sessionIdExtractor is configured, requests carrying a known session are pinned to the node that first served it (sticky sessions). On dispatch the chosen node is stored on the exchange and its statistics are updated when the response returns; if no node is available the request is answered with 503. Can only be used inside an api or serviceProxy. See the examples under examples/loadbalancing.
Dispatches each request to a node that has fewer than maxNumberOfThreadsPerEndpoint requests in flight, capping concurrency per node. When every node is at capacity it waits retryTimeOnBusy milliseconds and retries, up to five times, then fails the request with an error.
Selects a node by ascending priority, then health. Nodes are grouped by their priority value (lower means higher priority); the first group that contains at least one node currently up is used, and if it holds several up nodes one is picked at random. Lower-priority groups are only used once all higher-priority nodes are down. If no node is up anywhere, it falls back to the first node in priority order. Set each node's priority attribute to control the order.
Dispatches requests to the available nodes in rotation, one after another. It ignores sessions and node load; only nodes currently up take part. This is the balancer's default strategy when none is configured.
Extracts a session ID from requests and responses to enable sticky sessions. Requests carrying a known session are routed back to the node that first handled it, until that node goes down.