public abstract class SplitBrainResolverBase
extends java.lang.Object
implements akka.actor.Actor, akka.actor.ActorLogging, akka.actor.Stash
The implementation is split into two classes SplitBrainResolver and SplitBrainResolverBase to be able to unit test the logic without running cluster.
| Constructor and Description |
|---|
SplitBrainResolverBase(scala.concurrent.duration.FiniteDuration stableAfter,
SplitBrainResolver.Strategy strategy) |
| Modifier and Type | Method and Description |
|---|---|
scala.collection.immutable.Set<akka.cluster.UniqueAddress> |
actOnDecision(SplitBrainResolver.Decision decision) |
void |
addJoining(akka.cluster.Member m) |
void |
addUp(akka.cluster.Member m) |
void |
addWeaklyUp(akka.cluster.Member m) |
abstract void |
down(akka.actor.Address node) |
scala.concurrent.duration.FiniteDuration |
downAllWhenUnstable() |
boolean |
isResponsible() |
void |
leader_$eq(boolean x$1) |
boolean |
leader() |
void |
leaving(akka.cluster.Member m) |
void |
mutateMemberInfo(boolean resetStable,
scala.Function0<scala.runtime.BoxedUnit> f)
Helper to wrap updates to strategy info with, so that stable-after timer is reset and information is logged about state change
|
void |
mutateResponsibilityInfo(scala.Function0<scala.runtime.BoxedUnit> f)
Helper to wrap updates to `leader` and `selfMemberAdded` to log changes in responsibility status
|
protected scala.concurrent.duration.Deadline |
newStableDeadline() |
void |
postStop() |
void |
reachabilityChanged(akka.cluster.Reachability r) |
void |
reachableDataCenter(java.lang.String dc) |
void |
reachableMember(akka.cluster.Member m) |
scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> |
receive() |
void |
remove(akka.cluster.Member m) |
void |
resetStableDeadline() |
void |
seenChanged(scala.collection.immutable.Set<akka.actor.Address> seenBy) |
abstract java.lang.String |
selfDc() |
void |
selfMemberAdded_$eq(boolean x$1) |
boolean |
selfMemberAdded() |
abstract akka.cluster.UniqueAddress |
selfUniqueAddress() |
void |
stableDeadline_$eq(scala.concurrent.duration.Deadline x$1) |
scala.concurrent.duration.Deadline |
stableDeadline() |
scala.concurrent.duration.FiniteDuration |
tickInterval() |
akka.actor.Cancellable |
tickTask() |
void |
unreachableDataCenter(java.lang.String dc) |
void |
unreachableMember(akka.cluster.Member m) |
scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> |
waitingForLease(SplitBrainResolver.Decision decision) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitakka$actor$ActorLogging$$_log_$eq, akka$actor$ActorLogging$$_log, logakka$actor$Actor$_setter_$context_$eq, akka$actor$Actor$_setter_$self_$eq, aroundPostRestart, aroundPostStop, aroundPreRestart, aroundPreStart, aroundReceive, context, postRestart, preStart, self, sender, supervisorStrategy, unhandledakka$actor$StashSupport$_setter_$akka$actor$StashSupport$$capacity_$eq, akka$actor$StashSupport$_setter_$mailbox_$eq, akka$actor$StashSupport$$capacity, akka$actor$StashSupport$$theStash_$eq, akka$actor$StashSupport$$theStash, clearStash, context, mailbox, prepend, self, stash, unstash, unstashAll, unstashAllpublic SplitBrainResolverBase(scala.concurrent.duration.FiniteDuration stableAfter,
SplitBrainResolver.Strategy strategy)
public scala.collection.immutable.Set<akka.cluster.UniqueAddress> actOnDecision(SplitBrainResolver.Decision decision)
decision - (undocumented)public void addJoining(akka.cluster.Member m)
public void addUp(akka.cluster.Member m)
public void addWeaklyUp(akka.cluster.Member m)
public abstract void down(akka.actor.Address node)
public scala.concurrent.duration.FiniteDuration downAllWhenUnstable()
public boolean isResponsible()
public boolean leader()
public void leader_$eq(boolean x$1)
public void leaving(akka.cluster.Member m)
public void mutateMemberInfo(boolean resetStable,
scala.Function0<scala.runtime.BoxedUnit> f)
public void mutateResponsibilityInfo(scala.Function0<scala.runtime.BoxedUnit> f)
protected scala.concurrent.duration.Deadline newStableDeadline()
public void postStop()
postStop in interface akka.actor.ActorpostStop in interface akka.actor.UnrestrictedStashpublic void reachabilityChanged(akka.cluster.Reachability r)
public void reachableDataCenter(java.lang.String dc)
public void reachableMember(akka.cluster.Member m)
public scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> receive()
receive in interface akka.actor.Actorpublic void remove(akka.cluster.Member m)
public void resetStableDeadline()
public void seenChanged(scala.collection.immutable.Set<akka.actor.Address> seenBy)
public abstract java.lang.String selfDc()
public boolean selfMemberAdded()
public void selfMemberAdded_$eq(boolean x$1)
public abstract akka.cluster.UniqueAddress selfUniqueAddress()
public scala.concurrent.duration.Deadline stableDeadline()
public void stableDeadline_$eq(scala.concurrent.duration.Deadline x$1)
public scala.concurrent.duration.FiniteDuration tickInterval()
public akka.actor.Cancellable tickTask()
public void unreachableDataCenter(java.lang.String dc)
public void unreachableMember(akka.cluster.Member m)
public scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> waitingForLease(SplitBrainResolver.Decision decision)