2017-11-04 2 views
1

Ich habe ein ziemlich einfaches Akka.NET-System, das den Speicherstatus verfolgt, aber nur abgeleitete Daten enthält. So kann jeder Akteur beim Start seinen aktuellen Status von einer Backend-Datenbank laden und dann Nachrichten empfangen und seinen Status von dort beibehalten. So kann ich Schauspieler einfach auslassen und den Prozess neu starten, wann immer ich will. Es wird sich neu aufbauen. Aber ... Ich würde gerne über mehrere Knoten (meist für die Speicheranforderungen) laufen und ich würde gerne die Anzahl der Knoten nach Bedarf erhöhen/verringern. Auch für die Freigabe einer neuen Version ohne Ausfallzeiten. Was wäre das (hinsichtlich der Persistenz) leichteste Setup von Clustering, um dies zu erreichen? Können Sie Clustering ohne Persistenz ausführen?Wie installiere ich einen Akka.NET-Cluster, wenn ich nicht wirklich Persistenz brauche?

Antwort

2

Dies ist nicht eine einzige Frage, so lassen Sie mich eins nach dem anderen antworten:

  1. So kann ich nur scheitern Schauspieler lassen und den Prozess neu zu starten, wenn ich wollen - ja, aber denken Sie daran, dass Hard-Reset des Prozesses ist viel teurer als eine ordnungsgemäße Herunterfahren. Wenn Ihr Knoten in verteilten Systemen herunterfährt, ist es besser, dass er dies den anderen Knoten vorher mitteilt, als dass er den toten Knoten erkennen muss - dies ist ein Teil der Erkennung von Knotenfehlern und kann einige Zeit dauern (sogar unter Minute).
  2. Ich möchte die Anzahl der Knoten je nach Bedarf erhöhen/verringern - das ist ein Standardverhalten des Clusters. Im Fall von Akka.NET, abhängig davon, welchen Feature-Set Sie verwenden werden, müssen Sie manchmal eine obere Grenze der Clustergröße angeben.
  3. Auch für die Freigabe einer neuen Version ohne Ausfallzeiten. - Die meisten Cluster-Features können mithilfe von sogenannten Rollen auf bestimmte Knoten verteilt werden. Jeder Knoten kann seine verschiedenen Rollen haben, die verwendet werden können, welche Dienste er bereitstellt und erkennen, ob andere Knoten die erforderlichen Fähigkeiten haben. Aus diesem Grund können Sie Rollen für Dinge wie die Versionsverwaltung verwenden.
  4. Können Sie Clustering ohne Persistenz ausführen? - Ja, und dies ist eine Standardkonfiguration (in Akka müssen Cluster-Knoten keine Form von persistentem Backend verwenden, um zu funktionieren).
+1

Vielen Dank für diese detaillierte Antwort. Du hast mir sehr geholfen. –