Class FileLockClusterService
java.lang.Object
org.apache.camel.support.service.BaseService
org.apache.camel.support.service.ServiceSupport
org.apache.camel.support.cluster.AbstractCamelClusterService<FileLockClusterView>
org.apache.camel.component.file.cluster.FileLockClusterService
- All Implemented Interfaces:
AutoCloseable,org.apache.camel.CamelContextAware,org.apache.camel.cluster.CamelClusterService,org.apache.camel.Ordered,org.apache.camel.Service,org.apache.camel.ShutdownableService,org.apache.camel.spi.HasCamelContext,org.apache.camel.spi.HasId,org.apache.camel.spi.IdAware,org.apache.camel.StatefulService,org.apache.camel.SuspendableService
@Metadata(label="bean",
description="A file based cluster locking (read documentation to understand limitations)",
annotations="interfaceName=org.apache.camel.cluster.CamelClusterService")
@Configurer(metadataOnly=true)
public class FileLockClusterService
extends org.apache.camel.support.cluster.AbstractCamelClusterService<FileLockClusterView>
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.camel.cluster.CamelClusterService
org.apache.camel.cluster.CamelClusterService.Selector -
Field Summary
Fields inherited from class org.apache.camel.support.service.BaseService
BUILT, FAILED, INITIALIZED, INITIALIZING, NEW, SHUTDOWN, SHUTTING_DOWN, STARTED, STARTING, status, STOPPED, STOPPING, SUSPENDED, SUSPENDINGFields inherited from interface org.apache.camel.Ordered
HIGHEST, LOWEST -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected FileLockClusterViewcreateView(String namespace) protected voiddoStop()longlongintlongintgetRoot()voidsetAcquireLockDelay(long acquireLockDelay) The time to wait before starting to try to acquire the cluster lock.voidsetAcquireLockDelay(long pollDelay, TimeUnit pollDelayUnit) voidsetAcquireLockDelayUnit(TimeUnit acquireLockDelayUnit) The time unit for the acquireLockDelay, default to TimeUnit.SECONDS.voidsetAcquireLockInterval(long acquireLockInterval) The time to wait between attempts to try to acquire the cluster lock evaluated using wall-clock time.voidsetAcquireLockInterval(long pollInterval, TimeUnit pollIntervalUnit) voidsetAcquireLockIntervalUnit(TimeUnit acquireLockIntervalUnit) The time unit for the acquireLockInterval, default to TimeUnit.SECONDS.voidsetClusterDataTaskMaxAttempts(int clusterDataTaskMaxAttempts) Sets how many times a cluster data task will run, counting both the first execution and subsequent retries in case of failure or timeout.voidsetClusterDataTaskTimeout(long clusterDataTaskTimeout) Sets the timeout for a cluster data task (reading or writing cluster data).voidsetClusterDataTaskTimeout(long clusterDataTaskTimeout, TimeUnit clusterDataTaskTimeoutUnit) Sets the timeout for a cluster data task (reading or writing cluster data).voidsetClusterDataTaskTimeoutUnit(TimeUnit clusterDataTaskTimeoutUnit) The time unit for the clusterDataTaskTimeoutUnit, default to TimeUnit.SECONDS.voidsetHeartbeatTimeoutMultiplier(int heartbeatTimeoutMultiplier) Multiplier applied to the cluster leaderacquireLockIntervalto determine how long followers should wait before considering the leader "stale".voidSets the root path.Methods inherited from class org.apache.camel.support.cluster.AbstractCamelClusterService
doStart, getAttributes, getCamelContext, getId, getNamespaces, getOrder, getView, isLeader, releaseView, setAttribute, setAttributes, setCamelContext, setId, setOrder, startView, stopViewMethods inherited from class org.apache.camel.support.service.BaseService
build, doBuild, doFail, doInit, doLifecycleChange, doResume, doShutdown, 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, toString, wait, wait, waitMethods inherited from interface org.apache.camel.cluster.CamelClusterService
unwrapMethods inherited from interface org.apache.camel.spi.IdAware
setGeneratedIdMethods 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
-
FileLockClusterService
public FileLockClusterService()
-
-
Method Details
-
createView
- Specified by:
createViewin classorg.apache.camel.support.cluster.AbstractCamelClusterService<FileLockClusterView>- Throws:
Exception
-
getRoot
-
setRoot
Sets the root path. -
getAcquireLockDelay
public long getAcquireLockDelay() -
setAcquireLockDelay
public void setAcquireLockDelay(long acquireLockDelay) The time to wait before starting to try to acquire the cluster lock. Note that if FileLockClusterService determines no cluster members are running or cannot reliably determine the cluster state, the initial delay is computed from the acquireLockInterval, default 1. -
setAcquireLockDelay
-
getAcquireLockDelayUnit
-
setAcquireLockDelayUnit
The time unit for the acquireLockDelay, default to TimeUnit.SECONDS. -
getAcquireLockInterval
public long getAcquireLockInterval() -
setAcquireLockInterval
public void setAcquireLockInterval(long acquireLockInterval) The time to wait between attempts to try to acquire the cluster lock evaluated using wall-clock time. All cluster members must use the same value so leadership checks and leader liveness detection remain consistent, default 10. -
setAcquireLockInterval
-
getAcquireLockIntervalUnit
-
setAcquireLockIntervalUnit
The time unit for the acquireLockInterval, default to TimeUnit.SECONDS. -
setHeartbeatTimeoutMultiplier
public void setHeartbeatTimeoutMultiplier(int heartbeatTimeoutMultiplier) Multiplier applied to the cluster leaderacquireLockIntervalto determine how long followers should wait before considering the leader "stale".For example, if the leader updates its heartbeat every 2 seconds and the
heartbeatTimeoutMultiplieris 3, followers will tolerate up to2s * 3 = 6sof silence before declaring the leader unavailable. -
getHeartbeatTimeoutMultiplier
public int getHeartbeatTimeoutMultiplier() -
setClusterDataTaskMaxAttempts
public void setClusterDataTaskMaxAttempts(int clusterDataTaskMaxAttempts) Sets how many times a cluster data task will run, counting both the first execution and subsequent retries in case of failure or timeout. The default is 5 attempts.This can be useful when the cluster data root is on network based file storage, where I/O operations may occasionally block for long or unpredictable periods.
-
getClusterDataTaskMaxAttempts
public int getClusterDataTaskMaxAttempts() -
setClusterDataTaskTimeout
public void setClusterDataTaskTimeout(long clusterDataTaskTimeout) Sets the timeout for a cluster data task (reading or writing cluster data). The default is 10 seconds.Timeouts are useful when the cluster data root is on network storage, where I/O operations may occasionally block for long or unpredictable periods.
-
getClusterDataTaskTimeout
public long getClusterDataTaskTimeout() -
setClusterDataTaskTimeoutUnit
The time unit for the clusterDataTaskTimeoutUnit, default to TimeUnit.SECONDS. -
getClusterDataTaskTimeoutUnit
-
setClusterDataTaskTimeout
public void setClusterDataTaskTimeout(long clusterDataTaskTimeout, TimeUnit clusterDataTaskTimeoutUnit) Sets the timeout for a cluster data task (reading or writing cluster data). The default is 10 seconds.Timeouts are useful when the cluster data root is on network storage, where I/O operations may occasionally block for long or unpredictable periods.
-
doStop
- Overrides:
doStopin classorg.apache.camel.support.cluster.AbstractCamelClusterService<FileLockClusterView>- Throws:
Exception
-