Name |
Description |
AutoDown |
INTERNAL API An unreachable member will be downed by this actor if it remains unreachable for the specified duration and this actor is running on the leader node in the cluster. The implementation is split into two classes AutoDown and AutoDownBase to be able to unit test the logic without running cluster. |
AutoDown.UnreachableTimeout |
|
AutoDownBase |
|
ClusterActorRefProvider |
INTERNAL API The `ClusterActorRefProvider` will load the Cluster extension, i.e. the cluster will automatically be started when the `ClusterActorRefProvider` is used. |
ClusterDeployer |
INTERNAL API Deployer of cluster-aware routers |
ClusterDomainEventPublisher |
|
ClusterEvent |
Domain events published to the event bus. Subscribe with: {{{ Cluster(system).subscribe(actorRef, classOf[ClusterDomainEvent]) }}} |
ClusterEvent.ClusterMetricsChanged |
Current snapshot of cluster node metrics. Published to subscribers. |
ClusterEvent.ClusterShuttingDown |
|
ClusterEvent.CurrentClusterState |
|
ClusterEvent.CurrentInternalStats |
|
ClusterEvent.LeaderChanged |
Leader of the cluster members changed. Published when the state change is first seen on a node. |
ClusterEvent.MemberExited |
Member status changed to Akka.Cluster.MemberStatus.Exiting and will be removed when all members have seen the `Exiting` status. |
ClusterEvent.MemberRemoved |
Member completely removed from the cluster. When `previousStatus` is `MemberStatus.Down` the node was removed after being detected as unreachable and downed. When `previousStatus` is `MemberStatus.Exiting` the node was removed after graceful leaving and exiting. |
ClusterEvent.MemberStatusChange |
|
ClusterEvent.MemberUp |
Member status changed to Up. |
ClusterEvent.ReachabilityChanged |
|
ClusterEvent.ReachabilityEvent |
|
ClusterEvent.ReachableMember |
A member is considered as reachable by the failure detector after having been unreachable. Akka.Cluster.ClusterEvent.UnreachableMember |
ClusterEvent.RoleLeaderChanged |
First member (leader) of the members within a role set changed. Published when the state change is first seen on a node. |
ClusterEvent.SeenChanged |
The nodes that have seen current version of the Gossip. |
ClusterEvent.UnreachableMember |
A member is considered as unreachable by the failure detector. |
ClusterHeartbeatReceiver |
INTERNAL API Receives ClusterHeartbeatSender.Heartbeat messages and replies. |
ClusterHeartbeatSender |
INTERNAL API |
ClusterHeartbeatSender.ExpectedFirstHeartbeat |
|
ClusterHeartbeatSender.Heartbeat |
Sent at regular intervals for failure detection |
ClusterHeartbeatSender.HeartbeatRsp |
Sends replies to Heartbeat messages |
ClusterHeartbeatSenderState |
INTERNAL API State of ClusterHeartbeatSender. Encapsulated to facilitate unit testing. It is immutable, but it updates the failure detector. |
ClusterMetricsCollector |
INTERNAL API Cluster metrics is primarily for load-balancing of nodes. It controls metrics sampling at a regular frequency, prepares highly variable data for further analysis by other entities, and publishes the latest cluster metrics data around the node ring and local eventStream to assist in determining the need to redirect traffic to the least-loaded nodes. Metrics sampling is delegated to the IMetricsCollector. Smoothing of the data for each monitored process is delegated to the EWMA for exponential weighted moving average. |
ClusterReadView |
INTERNAL API Read view of the cluster's state, updated via subscription of cluster events published on the EventBus{TEvent,TClassifier,TSubscriber}. |
ClusterReadView.EventBusListener |
actor that subscribers to cluster eventBus to update current read view state |
ClusterRemoteWatcher |
Specialization of Akka.Remote.RemoteWatcher that keeps track of cluster member nodes and is responsible for watchees on cluster nodes. Akka.Actor.AddressTerminated is published when a node is removed from cluster `RemoteWatcher` handles non-cluster nodes. `ClusterRemoteWatcher` will take over responsibility from `RemoteWatcher` if a watch is added before a node is member of the cluster and then later becomes cluster member. |
ClusterScope |
This class represents a binding of an actor deployment to a cluster-aware system. |
ClusterSettings |
|
EWMA |
The exponentially weighted moving average (EWMA) approach captures short-term movements in volatility for a conditional volatility forecasting model. By virtue of its alpha, or decay factor, this provides a statistical streaming data model that is exponentially biased towards newer entries. http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average An EWMA only needs the most recent forecast value to be kept, as opposed to a standard moving average model. INTERNAL API @param alpha decay factor, sets how quickly the exponential weighting decays for past data compared to new data, see http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average @param value the current exponentially weighted moving average, e.g. Y(n - 1), or, the sampled value resulting from the previous smoothing iteration. This value is always used as the previous EWMA to calculate the new EWMA. |
Gossip |
Represents the state of the cluster; cluster ring membership, ring convergence - all versioned by a vector clock. When a node is joining the `Member`, with status `Joining`, is added to `members`. If the joining node was downed it is moved from `overview.unreachable` (status `Down`) to `members` (status `Joining`). It cannot rejoin if not first downed. When convergence is reached the leader change status of `members` from `Joining` to `Up`. When failure detector consider a node as unavailable it will be moved from `members` to `overview.unreachable`. When a node is downed, either manually or automatically, its status is changed to `Down`. It is also removed from `overview.seen` table. The node will reside as `Down` in the `overview.unreachable` set until joining again and it will then go through the normal joining procedure. When a `Gossip` is received the version (vector clock) is used to determine if the received `Gossip` is newer or older than the current local `Gossip`. The received `Gossip` and local `Gossip` is merged in case of conflicting version, i.e. vector clocks without same history. When a node is told by the user to leave the cluster the leader will move it to `Leaving` and then rebalance and repartition the cluster and start hand-off by migrating the actors from the leaving node to the new partitions. Once this process is complete the leader will move the node to the `Exiting` state and once a convergence is complete move the node to `Removed` by removing it from the `members` set and sending a `Removed` command to the removed node telling it to shut itself down. |
GossipEnvelope |
Envelope adding a sender and receiver address to the gossip. The reason for including the receiver address is to be able to ignore messages that were intended for a previous incarnation of the node with same host:port. The `uid` in the `UniqueAddress` is different in that case. |
GossipOverview |
Represents the overview of the cluster, holds the cluster convergence table and set with unreachable nodes. |
GossipStatus |
When there are no known changes to the node ring a `GossipStatus` initiates a gossip chat between two members. If the receiver has a newer version it replies with a `GossipEnvelope`. If receiver has older version it replies with its `GossipStatus`. Same versions ends the chat immediately. |
HeartbeatNodeRing |
INTERNAL API Data structure for picking heartbeat receivers. The node ring is shuffled by deterministic hashing to avoid picking physically co-located neighbors. It is immutable, i.e. the methods all return new instances. |
Metric |
Metrics key/value Equality of metric based on its name |
MetricNumericConverter |
INTERNAL API Encapsulates evaluation of validity of metric values, conversion of an actual metric value to an Metric for consumption by subscribed cluster entities. |
MetricsCollector |
INTERNAL API Factory to create a configured IMetricsCollector. |
MetricsGossip |
INTERNAL API |
MetricsGossipEnvelope |
INTERNAL API Envelope adding a sender address to the gossip. |
NodeMetrics |
The snapshot of current sampled health metrics for any monitored process. Collected and gossiped at regular intervals for dynamic cluster management strategies. Equality of NodeMetrics is based on its Address. |
PerformanceCounterMetricsCollector |
Loads Windows system metrics through Windows Performance Counters |
Reachability |
Immutable data structure that holds the reachability status of subject nodes as seen from observer nodes. Failure detector for the subject nodes exist on the observer nodes. Changes (reachable, unreachable, terminated) are only performed by observer nodes to its own records. Each change bumps the version number of the record, and thereby it is always possible to determine which record is newest merging two instances. Aggregated status of a subject node is defined as (in this order): - Terminated if any observer node considers it as Terminated - Unreachable if any observer node considers it as Unreachable - Reachable otherwise, i.e. no observer node considers it as Unreachable |
Reachability.Cache |
|
Reachability.Record |
|
StandardMetrics |
Definitions of the built-in standard metrics The following extractors and data structures make it easy to consume the NodeMetrics in for example load balancers. |
StandardMetrics.Cpu |
|
StandardMetrics.SystemMemory |
|