akka.management.cluster.bootstrap

Members list

Type members

Classlikes

This is public with the purpose to document the used markers and properties of log events. No guarantee that it will remain binary compatible, but the marker names and properties are considered public API and will not be changed without notice.

This is public with the purpose to document the used markers and properties of log events. No guarantee that it will remain binary compatible, but the marker names and properties are considered public API and will not be changed without notice.

Attributes

Source
BootstrapLogMarker.scala
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Companion
object
Source
ClusterBootstrap.scala
Supertypes
trait Extension
class Object
trait Matchable
class Any

Attributes

Companion
class
Source
ClusterBootstrap.scala
Supertypes
class Object
trait Matchable
class Any
Self type
final class ClusterBootstrapSettings(config: Config, log: LoggingAdapter)

Attributes

Companion
object
Source
ClusterBootstrapSettings.scala
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
class
Source
ClusterBootstrapSettings.scala
Supertypes
class Object
trait Matchable
class Any
Self type
trait JoinDecider

The decisions of joining existing seed-nodes or join self to form new cluster is performed by the JoinDecider and the implementation is defined in configuration so support different strategies.

The decisions of joining existing seed-nodes or join self to form new cluster is performed by the JoinDecider and the implementation is defined in configuration so support different strategies.

Attributes

Source
JoinDecider.scala
Supertypes
class Object
trait Matchable
class Any
sealed trait JoinDecision

Attributes

Source
JoinDecider.scala
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object JoinSelf.type
object KeepProbing.type
final case class JoinOtherSeedNodes(seedNodes: Set[Address]) extends JoinDecision

Join existing cluster.

Join existing cluster.

The self Address will be removed from the returned seedNodes to be sure that it's never joining itself via this decision.

Attributes

Source
JoinDecider.scala
Supertypes
trait Serializable
trait Product
trait Equals
trait JoinDecision
class Object
trait Matchable
class Any
Show all
case object JoinSelf extends JoinDecision

There is no existing cluster running and this node decided to form a new cluster by joining itself. Other nodes should discover this and join the same.

There is no existing cluster running and this node decided to form a new cluster by joining itself. Other nodes should discover this and join the same.

Attributes

Source
JoinDecider.scala
Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
trait JoinDecision
class Object
trait Matchable
class Any
Show all
Self type
JoinSelf.type
case object KeepProbing extends JoinDecision

Not ready to join yet, continue discovering contact points and retrieve seed nodes.

Not ready to join yet, continue discovering contact points and retrieve seed nodes.

Attributes

Source
JoinDecider.scala
Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
trait JoinDecision
class Object
trait Matchable
class Any
Show all
Self type

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.

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".

Attributes

Source
LowestAddressJoinDecider.scala
Supertypes
trait JoinDecider
class Object
trait Matchable
class Any
final class SeedNodesInformation(val currentTime: LocalDateTime, val contactPointsChangedAt: LocalDateTime, val contactPoints: Set[ResolvedTarget], val seedNodesObservations: Set[SeedNodesObservation])

Full information about discovered contact points and found seed nodes.

Full information about discovered contact points and found seed nodes.

contactPoints contains all nodes that were returned from the discovery (e.g. DNS lookup).

seedNodesObservations contains the replies from those contact points when probing them with the HTTP call. It only contains entries for the contact points that actually replied, i.e. were reachable and running. Each such SeedNodesObservation entry has the seedNodes (Akka Cluster addresses) that were returned from that contact point. That Set will be empty if the node replied but is not part of an existing cluster yet, i.e. it hasn't joined.

There are also some timestamps that can be interesting. Note that currentTime is passed in to facilitate calculation of durations.

contactPointsChangedAt is when the discovered contact points were last changed (e.g. via DNS lookup), e.g. 5 seconds ago means that subsequent lookup attempts (1 per second) after that were successful and returned the same set.

SeedNodesObservation.observedAt was when that reply was received from that contact point. The entry is removed if no reply was received within the probing-failure-timeout meaning that it is unreachable or not running.

Attributes

Source
JoinDecider.scala
Supertypes
class Object
trait Matchable
class Any
final class SeedNodesObservation(val observedAt: LocalDateTime, val contactPoint: ResolvedTarget, val sourceAddress: Address, val seedNodes: Set[Address])

Attributes

Source
JoinDecider.scala
Supertypes
class Object
trait Matchable
class Any