class LowestAddressJoinDecider extends SelfAwareJoinDecider
The decision of joining "self" is made by deterministically sorting the discovered services and picking the *lowest* address. Only the node with lowest address joins itself.
If any of the contact-points returns a list of seed nodes it joins the existing cluster immediately.
Joining "self" is only done when enough number of contact points have been discovered (required-contact-point-nr
)
and there have been no changes to the discovered contact points during the stable-margin
.
There must also be seed node observations from all discovered contact points before joining "self".
- Alphabetic
- By Inheritance
- LowestAddressJoinDecider
- SelfAwareJoinDecider
- JoinDecider
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new LowestAddressJoinDecider(system: ActorSystem, settings: ClusterBootstrapSettings)
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def contactPointString(contactPoint: ResolvedTarget): String
- Attributes
- protected
- Definition Classes
- SelfAwareJoinDecider
- def contactPointString(contactPoint: (String, Int)): String
Returns the current
selfContactPoints
as a String for logging, e.g.Returns the current
selfContactPoints
as a String for logging, e.g. [127.0.0.1:64714].- Attributes
- protected
- Definition Classes
- SelfAwareJoinDecider
- def decide(info: SeedNodesInformation): Future[JoinDecision]
Decide if and how to join based on the gathered SeedNodesInformation.
Decide if and how to join based on the gathered SeedNodesInformation. The returned
JoinDecision
can be KeepProbing, JoinSelf or JoinOtherSeedNodes.- Definition Classes
- LowestAddressJoinDecider → JoinDecider
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hasEnoughContactPoints(info: SeedNodesInformation): Boolean
May be overridden by subclass to decide if enough contact points have been discovered.
May be overridden by subclass to decide if enough contact points have been discovered.
info.contactPoints.size
is the number of discovered (e.g. via DNS lookup) contact points andinfo.seedNodesObservations.size
is the number that has been confirmed that they are reachable and running.- Attributes
- protected
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hostMatches(host: String, target: ResolvedTarget): Boolean
Checks for both host name and IP address for discovery mechanisms that return both.
Checks for both host name and IP address for discovery mechanisms that return both.
- Attributes
- protected
- Definition Classes
- SelfAwareJoinDecider
- def isConfirmedCommunicationWithAllContactPointsRequired(info: SeedNodesInformation): Boolean
May be overridden by subclass to allow joining self even though some of the discovered contact points have not been confirmed (unreachable or not running).
May be overridden by subclass to allow joining self even though some of the discovered contact points have not been confirmed (unreachable or not running).
hasEnoughContactPoints
andisPastStableMargin
must still be fulfilled.- Attributes
- protected
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isPastStableMargin(info: SeedNodesInformation): Boolean
May be overridden by subclass to decide if the set of discovered contact points is stable.
May be overridden by subclass to decide if the set of discovered contact points is stable.
info.contactPointsChangedAt
was the time when the discovered contact points were changed last time. Subsequent lookup attempts after that returned the same contact points.- Attributes
- protected
- def joinOtherSeedNodes(info: SeedNodesInformation): Set[Address]
May be overridden by subclass to extract the nodes to use as seed nodes when joining existing cluster.
May be overridden by subclass to extract the nodes to use as seed nodes when joining existing cluster.
info.allSeedNodes
contains all existing nodes. If the returnedSet
is empty it will continue probing.- Attributes
- protected
- val log: MarkerLoggingAdapter
- Attributes
- protected
- Definition Classes
- SelfAwareJoinDecider
- def lowestAddressContactPoint(info: SeedNodesInformation): Option[ResolvedTarget]
Contact point with the "lowest" contact point address, it is expected to join itself if no other cluster is found in the deployment.
Contact point with the "lowest" contact point address, it is expected to join itself if no other cluster is found in the deployment.
May be overridden by subclass for example if another sort order is desired.
- Attributes
- protected
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()