package bootstrap
- Alphabetic
- Public
- Protected
Package Members
- package contactpoint
Type Members
- final class ClusterBootstrap extends Extension with ManagementRouteProvider
- final class ClusterBootstrapSettings extends AnyRef
- trait JoinDecider extends AnyRef
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. - sealed trait JoinDecision extends AnyRef
- final case class JoinOtherSeedNodes(seedNodes: Set[Address]) extends JoinDecision with Product with Serializable
Join existing cluster.
Join existing cluster.
The self
Address
will be removed from the returnedseedNodes
to be sure that it's never joining itself via this decision. - class LowestAddressJoinDecider extends SelfAwareJoinDecider
The decision of joining "self" is made by deterministically sorting the discovered services and picking the *lowest* address.
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 thestable-margin
.There must also be seed node observations from all discovered contact points before joining "self".
- final class SeedNodesInformation extends AnyRef
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 suchSeedNodesObservation
entry has theseedNodes
(Pekko Cluster addresses) that were returned from that contact point. ThatSet
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 theprobing-failure-timeout
meaning that it is unreachable or not running. - final class SeedNodesObservation extends AnyRef
Value Members
- object BootstrapLogMarker
This is public with the purpose to document the used markers and properties of log events.
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.
- Annotations
- @ApiMayChange()
- object ClusterBootstrap extends ExtensionId[ClusterBootstrap] with ExtensionIdProvider
- object ClusterBootstrapSettings
- case object JoinSelf extends JoinDecision with Product with Serializable
There is no existing cluster running and this node decided to form a new cluster by joining itself.
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.
- case object KeepProbing extends JoinDecision with Product with Serializable
Not ready to join yet, continue discovering contact points and retrieve seed nodes.