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]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 14 describes the properties you can specify using the properties editor.

Table 14. Load Balance Properties

NameDescription
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.

  • circuitBreaker—a stateful pattern that uses specified exceptions, a threshold, and a timeout period to gate load to the endpoints.

DescriptionSpecifies 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.
Id

Specifies a unique identifier for the endpoint.

The tooling automatically generates an id for a node when it is created, but you can remove that id or replace it with your own. The Camel debugger requires all nodes with a breakpoint set to have a unique id.

You can use the id to refer to endpoints in your Camel XML file.

Inherit Error HandlerSpecifies whether the node should use the error handler configured for the route. The default is Disabled.

Failover configuration

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

Table 15. Failover Load Balance Properties

NameDescription
ExceptionsSpecifies the exceptions that cause a failover. All other exceptions will cause a failure.
Maximum Failover AttemptsSpecifies the maximum number of attempts before giving up. -1 specifies unlimited attempts.
Round RobinEnables/disables round robin mode. Default is Disabled.

Custom configuration

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

Table 16. Custom Load Balance Properties

NameDescription
RefSpecifies a reference to the bean implementing the load balancing strategy.

Sticky configuration

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

Table 17. Sticky Load Balance Properties

NameDescription
Correlation ExpressionSpecifies the expression used to generate the correlation key used by the load blancer.

Weighted configuration

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

Table 18. Weighted Load Balance Properties

NameDescription
Distribution RatioSpecifies 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 DelimiterSpecifies the character used to delimit the entries in the distribution ratio list.
Round RobinEnables/disables round robin mode. Default is Disabled.

circuitBreaker configuration

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

Table 19. Circuit Breaker Load Balance Properties

NameDescription
ExceptionsSpecifies the exceptions that cause a failure.
Helf Open AfterSpecifies the time, in milliseconds, to wait after reaching the threshold limit before the circuitBreaker allows a new message to pass. Depending on the success status of the new message, the circuitBreaker either passes or blocks subsequent messages.
ThresholdSpecifies the maximum number of failures allowed before the circuitBreaker blocks all subsequent messages.

Related topics

Adding beans and configuration