Weighted

Weighted mode for Load Balancer EIP. With this policy in case of failures the exchange will be tried on the next endpoint.

Options

The Weighted eip supports 3 options, which are listed below.

Name Description Default Type

distributionRatio

Required The distribution ratio is a delimited String consisting on integer weights separated by delimiters for example 2,3,5. The distributionRatio must match the number of endpoints and/or processors specified in the load balancer list.

String

distributionRatioDelimiter

Delimiter used to specify the distribution ratio. The default value is , (comma).

,

String

roundRobin

To enable round robin mode. By default the weighted distribution mode is used. The default value is false.

false

Boolean

Examples

In this example we want to send the most message to the first endpoint, then the second, and only a few to the last.

The distribution ratio is 7 = 4 + 2 + 1. This means that for every 7 message then 4 goes to the 1st, 2 for the 2nd, and 1 for the last.

from("direct:start")
    .loadBalance().weighted(false, "4,2,1")
        .to("seda:x")
        .to("seda:y")
        .to("seda:z")
    .end();

In XML you’ll have a route like this:

<route>
    <from uri="direct:start"/>
      <loadBalance>
        <weighted distributionRatio="4 2 1"/>
        <to uri="seda:x"/>
        <to uri="seda:y"/>
        <to uri="seda:z"/>
      </loadBalance>
</route>