Class ClusterSingletonManagerSettings

  • All Implemented Interfaces:
    NoSerializationVerificationNeeded

    public final class ClusterSingletonManagerSettings
    extends java.lang.Object
    implements NoSerializationVerificationNeeded
    param: singletonName The actor name of the child singleton actor.

    param: role Singleton among the nodes tagged with specified role. If the role is not specified it's a singleton among all nodes in the cluster.

    param: removalMargin Margin until the singleton instance that belonged to a downed/removed partition is created in surviving partition. The purpose of this margin is that in case of a network partition the singleton actors in the non-surviving partitions must be stopped before corresponding actors are started somewhere else. This is especially important for persistent actors.

    param: handOverRetryInterval When a node is becoming oldest it sends hand-over request to previous oldest, that might be leaving the cluster. This is retried with this interval until the previous oldest confirms that the hand over has started or the previous oldest member is removed from the cluster (+ removalMargin).

    param: leaseSettings LeaseSettings for acquiring before creating the singleton actor. Note that if you define a custom lease name and have several singletons each one must have a unique lease name. If the lease name is undefined it will be derived from ActorSystem name and singleton actor path, but that may result in too long lease names.

    • Constructor Detail

      • ClusterSingletonManagerSettings

        public ClusterSingletonManagerSettings​(java.lang.String singletonName,
                                               scala.Option<java.lang.String> role,
                                               scala.concurrent.duration.FiniteDuration removalMargin,
                                               scala.concurrent.duration.FiniteDuration handOverRetryInterval,
                                               scala.Option<LeaseUsageSettings> leaseSettings)
      • ClusterSingletonManagerSettings

        public ClusterSingletonManagerSettings​(java.lang.String singletonName,
                                               scala.Option<java.lang.String> role,
                                               scala.concurrent.duration.FiniteDuration removalMargin,
                                               scala.concurrent.duration.FiniteDuration handOverRetryInterval)
    • Method Detail

      • apply

        public static ClusterSingletonManagerSettings apply​(com.typesafe.config.Config config)
        Create settings from a configuration with the same layout as the default configuration akka.cluster.singleton.
      • create

        public static ClusterSingletonManagerSettings create​(com.typesafe.config.Config config)
        Java API: Create settings from a configuration with the same layout as the default configuration akka.cluster.singleton.
      • singletonName

        public java.lang.String singletonName()
      • role

        public scala.Option<java.lang.String> role()
      • removalMargin

        public scala.concurrent.duration.FiniteDuration removalMargin()
      • handOverRetryInterval

        public scala.concurrent.duration.FiniteDuration handOverRetryInterval()
      • withLeaseSettings

        public ClusterSingletonManagerSettings withLeaseSettings​(LeaseUsageSettings leaseSettings)
        Note that if you define a custom lease name and have several singletons each one must have a unique lease name. If the lease name is undefined it will be derived from ActorSystem name and singleton actor path, but that may result in too long lease names.