Class ClusterSingletonManager
Manages singleton actor instance among all cluster nodes or a group of nodes tagged with a specific role. At most one singleton instance is running at any point in time.
The ClusterSingletonManager is supposed to be started on all nodes, or all nodes with specified role,
in the cluster with ActorOf(Props, String). The actual singleton is started on the oldest node
by creating a child actor from the supplied singletonProps
.
The singleton actor is always running on the oldest member with specified role. The oldest member is determined by IsOlderThan(Member). This can change when removing members. A graceful hand over can normally be performed when current oldest node is leaving the cluster. Be aware that there is a short time period when there is no active singleton during the hand-over process.
The cluster failure detector will notice when oldest node becomes unreachable due to things like CLR crash, hard shut down, or network failure. When the crashed node has been removed (via down) from the cluster then a new oldest node will take over and a new singleton actor is created.For these failure scenarios there will not be a graceful hand-over, but more than one active singletons is prevented by all reasonable means. Some corner cases are eventually resolved by configurable timeouts.
You access the singleton actor with ClusterSingletonProxy. Alternatively the singleton actor may broadcast its existence when it is started.
Use one of the factory methods ClusterSingletonManager.Props to create the Props for the actor.
Inheritance
Inherited Members
Namespace: Akka.Cluster.Tools.Singleton
Assembly: Akka.Cluster.Tools.dll
Syntax
public sealed class ClusterSingletonManager : FSM<ClusterSingletonState, IClusterSingletonData>, IInternalActor, IListeners, IInternalSupportsTestFSMRef<ClusterSingletonState, IClusterSingletonData>
Constructors
| Improve this Doc View SourceClusterSingletonManager(Props, Object, ClusterSingletonManagerSettings)
Declaration
public ClusterSingletonManager(Props singletonProps, object terminationMessage, ClusterSingletonManagerSettings settings)
Parameters
Type | Name | Description |
---|---|---|
Props | singletonProps | |
Object | terminationMessage | |
ClusterSingletonManagerSettings | settings |
Methods
| Improve this Doc View SourceDefaultConfig()
Returns default HOCON configuration for the cluster singleton.
Declaration
[Obsolete("Deprecated and will be removed in v1.6, please use ClusterSingleton.DefaultConfig() instead. Since 1.5.32.")]
public static Config DefaultConfig()
Returns
Type | Description |
---|---|
Config | TBD |
PostStop()
User overridable callback.
Is called asynchronously after 'actor.stop()' is invoked. Empty default implementation.
Declaration
protected override void PostStop()
Overrides
PreStart()
User overridable callback.
Is called when an Actor is started. Actors are automatically started asynchronously when created. Empty default implementation.
Declaration
protected override void PreStart()
Overrides
| Improve this Doc View SourceProps(Props, ClusterSingletonManagerSettings)
Creates props for the current cluster singleton manager using PoisonPill as the default termination message.
Declaration
public static Props Props(Props singletonProps, ClusterSingletonManagerSettings settings)
Parameters
Type | Name | Description |
---|---|---|
Props | singletonProps | Props of the singleton actor instance. |
ClusterSingletonManagerSettings | settings | Cluster singleton manager settings. |
Returns
Type | Description |
---|---|
Props | Props for the ClusterSingletonManager. |
Props(Props, Object, ClusterSingletonManagerSettings)
Creates props for the current cluster singleton manager.
Declaration
public static Props Props(Props singletonProps, object terminationMessage, ClusterSingletonManagerSettings settings)
Parameters
Type | Name | Description |
---|---|---|
Props | singletonProps | Props of the singleton actor instance. |
Object | terminationMessage | When handing over to a new oldest node this |
ClusterSingletonManagerSettings | settings | Cluster singleton manager settings. |
Returns
Type | Description |
---|---|
Props | Props for the ClusterSingletonManager. |