Class ClusterConfigurationManagerImpl
- All Implemented Interfaces:
ClusterConfigurationManager
On startup, ClusterConfigurationManager initializes the configuration using ClusterConfigurationInitializers. The initialized configuration is gossiped to other members.
When a configuration is received via gossip, it is merged with the local configuration. The merge operation ensures that any concurrent update to the configuration is not lost.
Making configuration changes
Only a coordinator can start a configuration change. The steps to make a configuration change
are added to the ClusterConfiguration. To make a configuration change, the coordinator
update the configuration with a list of operations that needs to be executed to achieve the
target configuration and gossip the updated configuration. These operations are expected to be
executed in the order given.
When a member receives a configuration with pending changes, it applies the change if it is
applicable to the member. Only a member can make changes to its own state in the configuration.
See ConfigurationChangeAppliers to see how a change is applied locally.
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.camunda.zeebe.dynamic.config.ClusterConfigurationManager
ClusterConfigurationManager.InconsistentConfigurationListener -
Method Summary
Modifier and TypeMethodDescriptionvoidsetConfigurationGossiper(Consumer<ClusterConfiguration> configurationGossiper) updateClusterConfiguration(UnaryOperator<ClusterConfiguration> configUpdater)
-
Method Details
-
getClusterConfiguration
- Specified by:
getClusterConfigurationin interfaceClusterConfigurationManager
-
updateClusterConfiguration
public ActorFuture<ClusterConfiguration> updateClusterConfiguration(UnaryOperator<ClusterConfiguration> configUpdater) - Specified by:
updateClusterConfigurationin interfaceClusterConfigurationManager
-
setConfigurationGossiper
-