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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected org.apache.camel.AsyncProcessorchooseProcessor(org.apache.camel.AsyncProcessor[] processors, org.apache.camel.Exchange exchange) org.apache.camel.Expressionintintprotected ObjectgetStickyKey(Object value) A strategy to create the key for the sticky load balancing map.voidremoveProcessor(org.apache.camel.AsyncProcessor processor) Removes the given processor from the load balancervoidsetNumberOfHashGroups(int numberOfHashGroups) Methods inherited from class org.apache.camel.processor.loadbalancer.QueueLoadBalancer
processMethods inherited from class org.apache.camel.processor.loadbalancer.LoadBalancerSupport
addProcessor, doGetProcessors, doInit, doShutdown, doStart, doStop, getId, getProcessors, getRouteId, hasNext, next, setId, setRouteId, toStringMethods inherited from class org.apache.camel.support.AsyncProcessorSupport
process, processAsyncMethods inherited from class org.apache.camel.support.service.BaseService
build, doBuild, doFail, doLifecycleChange, doResume, doSuspend, fail, getInternalLock, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspendMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.camel.AsyncProcessor
processAsyncMethods inherited from interface org.apache.camel.spi.IdAware
setGeneratedIdMethods inherited from interface org.apache.camel.Processor
processMethods inherited from interface org.apache.camel.Service
build, close, init, start, stopMethods inherited from interface org.apache.camel.ShutdownableService
shutdownMethods inherited from interface org.apache.camel.StatefulService
getStatus, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspendingMethods 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:
chooseProcessorin classQueueLoadBalancer
-
removeProcessor
public void removeProcessor(org.apache.camel.AsyncProcessor processor) Description copied from interface:LoadBalancerRemoves the given processor from the load balancer- Specified by:
removeProcessorin interfaceLoadBalancer- Overrides:
removeProcessorin 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
-