Class CommandRedistributor
java.lang.Object
io.camunda.zeebe.engine.processing.distribution.CommandRedistributor
- All Implemented Interfaces:
StreamProcessorLifecycleAware
The Command Redistributor provides a mechanism to retry sending
CommandDistributionRecord
s to other partitions. This is needed because the communication between
partitions is unreliable.
A simple exponential backoff is used for retrying these pending distributions. This
exponential backoff is statically configured to start of at 10 seconds COMMAND_REDISTRIBUTION_INTERVAL
until it reaches a maximum of 5 minutes RETRY_MAX_BACKOFF_DURATION
, doubling every time. This backoff is tracked for each pending
distribution individually.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final Duration
Specifies how often this redistributor runs, i.e. -
Constructor Summary
ConstructorDescriptionCommandRedistributor
(DistributionState distributionState, InterPartitionCommandSender commandSender) -
Method Summary
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.camunda.zeebe.stream.api.StreamProcessorLifecycleAware
onClose, onFailed, onPaused, onResumed
-
Field Details
-
COMMAND_REDISTRIBUTION_INTERVAL
Specifies how often this redistributor runs, i.e. the fixed delay between runs. It is also used to specify the initial interval for retrying a specific pending distribution.
-
-
Constructor Details
-
CommandRedistributor
public CommandRedistributor(DistributionState distributionState, InterPartitionCommandSender commandSender)
-
-
Method Details
-
onRecovered
- Specified by:
onRecovered
in interfaceStreamProcessorLifecycleAware
-