2017-07-04 5 views
0

Wir planen, Service Fabric Actor Modell für einen unserer Benutzerdienste zu verwenden. Wir haben Tausende von Benutzern und sie haben ihre eigenen Profildaten. Durch das Lesen der Materialien behält das Service-Fabric-Actor-Modell seine Zustände mit seinem Service-Fabric-Cluster bei. Ich konnte kein klares Bild von Disaster Recovery/geplanten Shutdown-Szenarien/Offline-Datenzugriff bekommen. Ist es in solchen Fällen erforderlich, die Datenseite dieses Akteursdienstes beizubehalten?Service Stoff Akteure Status

Was passiert mit den Daten, wenn wir beschlossen haben, den ganzen Service-Fabric-Cluster eines Tages herunterzufahren und einige Tage später wieder zu aktivieren?

Antwort

3

In einem SF-Cluster in Azure werden die Daten auf dem temporären Laufwerk gespeichert. Es gibt keine guarantee, dass ein Knoten, der heruntergefahren wird, das temporäre Laufwerk beibehält. Wenn also alle Knoten gleichzeitig heruntergefahren werden, führt dies zu Datenverlust.

Um dies zu vermeiden, sollten Sie regelmäßig Backups Ihrer (Actor) Services erstellen. Zum Beispiel durch Verwendung von Nuget-Paket. Speichern Sie die resultierenden Dateien außerhalb des Clusters.

Die Cluster-Technologie hilft Ihnen, Ihre Daten bei Fehlern von Knoten, z. In einem 5-Knoten-Cluster können 4 verbleibende gesunde Knoten die Arbeit eines ausgefallenen Knotens übernehmen. Daten werden redundant gespeichert, damit Ihre Dienste weiterhin verfügbar sind. Dieselbe Funktionalität ermöglicht auch rollende Upgrades von Diensten/Akteuren.

Here's ein Artikel über DR.

0

Ich hatte eine große Enterprise-Anwendung in Service-Fabric mit dem Actor-Modell für die Verwaltung von Aufträgen implementiert. Nur wenige Dinge, die helfen können, während eine Strategie für die Datensicherung und Wiederherstellung

  1. Als Paket https://github.com/loekd/ServiceFabric.BackupRestore Wahl ist nicht vollwertiges und Sie müssen von einigen des Szenarios kümmern. Beispiel: Während der Bereitstellung wurden die Aktorpartitionen auf andere Knoten verschoben. Wenn Sie versuchen, inkrementelle Backups zu erstellen, ist dies mit FabricMissingFullBackupException nicht möglich, da auf diesem Knoten die Vollsicherung nicht ausgeführt wurde und das Problem manuell behoben werden muss . Wie wir das Wiederholungsmuster hinzugefügt haben, um dieses Problem zu beheben, ist nicht Gegenstand dieser Frage.
  2. Inkrementelle Sicherungen wurden nicht immer während des Wiederherstellungsvorgangs wiederhergestellt.
  3. Einige Zeit Inkrementelle Sicherungserstellung fehlgeschlagen, auch wenn Sie die logTrunctationIntervalInMinutes ordnungsgemäß festlegen.
  4. Einige Entwickler versehentlich den Dienst oder die Anwendung gelöscht, werden Sie alle Ihre Daten verlieren.
  5. wenn Ihr System stark abhängig von Reminders war, was in unserem Fall war. Während der Wiederherstellung werden alle Erinnerungen zurückgesetzt.

gute Lösung: Überschreiben Sie die Standard KvsActorStateProvider mit Ihrer eigenen Implementierung, die die Daten in DocumentDB, MongoDB, Cassandra oder Azure SQL speichert, wenn Sie die Leistung BI für einige Analysen verwenden möchten.