Class StickyLoadBalancer
java.lang.Object
org.apache.camel.support.service.BaseService
org.apache.camel.support.service.ServiceSupport
org.apache.camel.support.AsyncProcessorSupport
org.apache.camel.processor.loadbalancer.LoadBalancerSupport
org.apache.camel.processor.loadbalancer.QueueLoadBalancer
org.apache.camel.processor.loadbalancer.StickyLoadBalancer
- All Implemented Interfaces:
AutoCloseable
,org.apache.camel.AsyncProcessor
,org.apache.camel.Navigate<org.apache.camel.Processor>
,org.apache.camel.Processor
,LoadBalancer
,org.apache.camel.Service
,org.apache.camel.ShutdownableService
,org.apache.camel.spi.HasId
,org.apache.camel.spi.IdAware
,org.apache.camel.spi.RouteIdAware
,org.apache.camel.StatefulService
,org.apache.camel.SuspendableService
Implements a sticky load balancer using an
Expression
to calculate a correlation key to perform the sticky
load balancing; rather like jsessionid in the web or JMSXGroupID in JMS.-
Field Summary
Fields inherited from class org.apache.camel.support.service.BaseService
BUILT, FAILED, INITIALIZED, INITIALIZING, lock, NEW, SHUTDOWN, SHUTTING_DOWN, STARTED, STARTING, status, STOPPED, STOPPING, SUSPENDED, SUSPENDING
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected org.apache.camel.AsyncProcessor
chooseProcessor
(org.apache.camel.AsyncProcessor[] processors, org.apache.camel.Exchange exchange) org.apache.camel.Expression
int
int
protected Object
getStickyKey
(Object value) A strategy to create the key for the sticky load balancing map.void
removeProcessor
(org.apache.camel.AsyncProcessor processor) Removes the given processor from the load balancervoid
setNumberOfHashGroups
(int numberOfHashGroups) Methods inherited from class org.apache.camel.processor.loadbalancer.QueueLoadBalancer
process
Methods inherited from class org.apache.camel.processor.loadbalancer.LoadBalancerSupport
addProcessor, doGetProcessors, doInit, doShutdown, doStart, doStop, getId, getProcessors, getRouteId, hasNext, next, setId, setRouteId, toString
Methods inherited from class org.apache.camel.support.AsyncProcessorSupport
process, processAsync
Methods inherited from class org.apache.camel.support.service.BaseService
build, doBuild, doFail, doLifecycleChange, doResume, doSuspend, fail, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.camel.AsyncProcessor
processAsync
Methods inherited from interface org.apache.camel.spi.IdAware
setGeneratedId
Methods inherited from interface org.apache.camel.Processor
process
Methods inherited from interface org.apache.camel.Service
build, close, init, start, stop
Methods inherited from interface org.apache.camel.ShutdownableService
shutdown
Methods inherited from interface org.apache.camel.StatefulService
getStatus, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspending
Methods inherited from interface org.apache.camel.SuspendableService
isSuspended, resume, suspend
-
Constructor Details
-
StickyLoadBalancer
public StickyLoadBalancer(org.apache.camel.Expression correlationExpression)
-
-
Method Details
-
chooseProcessor
protected org.apache.camel.AsyncProcessor chooseProcessor(org.apache.camel.AsyncProcessor[] processors, org.apache.camel.Exchange exchange) - Specified by:
chooseProcessor
in classQueueLoadBalancer
-
removeProcessor
public void removeProcessor(org.apache.camel.AsyncProcessor processor) Description copied from interface:LoadBalancer
Removes the given processor from the load balancer- Specified by:
removeProcessor
in interfaceLoadBalancer
- Overrides:
removeProcessor
in classLoadBalancerSupport
- Parameters:
processor
- the processor to be removed from the load balancer
-
getLastChosenProcessorIndex
public int getLastChosenProcessorIndex() -
getCorrelationExpression
public org.apache.camel.Expression getCorrelationExpression() -
getNumberOfHashGroups
public int getNumberOfHashGroups() -
setNumberOfHashGroups
public void setNumberOfHashGroups(int numberOfHashGroups) -
getStickyKey
A strategy to create the key for the sticky load balancing map. The default implementation uses the hash code of the value then modulos by the numberOfHashGroups to avoid the sticky map getting too big- Parameters:
value
- the correlation value- Returns:
- the key to be used in the sticky map
-