## Name

Load Balance — Balances message processing among a number of nodes

## Usage

The Load Balance pattern uses a specified algorithm for balancing the processing load among a number of processors.

The Load Balance pattern can appear anywhere in the body of a route. It should be connected to one or more identical processors across which processing can be spread.

| Note
Though the Inherit Error Handler property appears in the Properties editor for almost every EIP, its use is appropriate with the Load Balance pattern only.

## Properties

Table 15 describes the properties you can specify using the properties editor.

Table 15. Load Balance Properties

Name | Description
--- | ---
Ref | Deprecated Specifies a reference to the bean implementing the load balancing strategy.
Load Balancer Type | Specifies and configures the load balancing strategy. Selections include: failover—rotates through a list of endpoints in case of an endpoint failure. random—randomly selects an endpoint. custom—use a custom load balancing strategy. This replaces the ref property. roundRobin—selects the target endpoint using the well known round robin strategy. sticky—uses an expression to calculate a correlation key that is used to select target endpoints. topic—uses a topic that sends messages to all of the specified endpoints. weighted—uses a specified distribution ratio to spread load among the endpoints.
Inherit Error Handler | Specifies whether the node should use the error handler configured for the route. The default is `Disabled`.
Id | Specifies a unique identifier for the endpoint. The Id can be used to refer to the endpoint in the Camel XML file.
Description | Specifies a text description for the node. This description is included in the generated XML file, but it is informational only. It is not used by Apache Camel.

## Failover configuration

Table 16 describes the properties needed to configure a failover load balancer.

Table 16. Failover Load Balance Properties

Name | Description
--- | ---
Exceptions | Specifies the exceptions that cause a failover. All other exceptions will cause a failure.
Maximum Failover Attempts | Specifies the maximum number of attempts before giving up. `-1` specifies unlimited attempts.

## Custom configuration

Table 17 describes the properties needed to configure a custom load balancer.

Table 17. Custom Load Balance Properties

Name | Description
--- | ---
Ref | Specifies a reference to the bean implementing the load balancing strategy.

## Sticky configuration

Table 18 describes the properties needed to configure a sticky load balancer.

Table 18. Sticky Load Balance Properties

Name | Description
--- | ---
Correlation Expression | Specifies the expression used to generate the correlation key used by the load blancer.

## Weighted configuration

Table 19 describes the properties needed to configure a Weighted load balancer.

Table 19. Weighted Load Balance Properties

Name | Description
--- | ---
Distribution Ratio | Specifies a delimited list of positive integers determining the relative weight for each endpoint. The number of entries in the list must match the number of endpoints available for load balancing.
Distribution Ratio Delimiter | Specifies the character used to delimit the entries in the distribution ratio list.

## Related topics

Adding beans and configuration