C# (CSharp) Akka.Cluster Namespace

Nested Namespaces

Akka.Cluster.Sharding
Akka.Cluster.TestKit
Akka.Cluster.Tests
Akka.Cluster.Tools
Akka.Cluster.Utility

Classes

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