VolatileActorStateProvider Klasse
- java.
lang. Object - StateProviderReplica
- ActorStateProvider
- microsoft.
servicefabric. actors. runtime. VolatileActorStateProvider
- microsoft.
public class VolatileActorStateProvider implements ActorStateProvider,StateProvider
ActorStateProvider-Implementierung für volatile Persistenz, d. h. der Actor-Zustand wird nur im Arbeitsspeicher beibehalten.
Zusammenfassung zum Konstruktor
Konstruktor | Beschreibung |
---|---|
VolatileActorStateProvider() |
Erstellt eine Instanz von VolatileActorStateProvider. |
VolatileActorStateProvider(ReplicatorSettings replicatorSettings) |
Erstellt eine instance von VolatileActorStateProvider mit angegebenen Replikationseinstellungen. |
Methodenzusammenfassung
Modifizierer und Typ | Methode und Beschreibung |
---|---|
void |
abort()
Beenden Sie das Zustandsanbieterreplikat erzwungen.
Bemerkungen:Dies tritt in der Regel auf, wenn ein dauerhafter Fehler auf dem Knoten erkannt wird oder wenn Service Fabric den Lebenszyklus des Replikats aufgrund interner Fehler nicht zuverlässig verwalten kann. |
CompletableFuture<?> |
actorActivatedAsync(ActorId actorId, CancellationToken cancellationToken)
Diese Methode wird im Rahmen des Aktivierungsprozesses des Akteurs mit der angegebenen ID aufgerufen. |
CompletableFuture<?> |
backupAsync(BackupOption option, Duration timeout, CancellationToken cancellationToken, BiFunction<BackupInfo, CancellationToken, CompletableFuture<Boolean>> backupCallback)
Führt eine vollständige Sicherung des Zustands aus, der von diesem Akteurstatusanbieter verwaltet wird.
Bemerkungen:Sicherung/Wiederherstellung wird von VolatileActorStateProvidernicht unterstützt. |
CompletableFuture<?> |
backupAsync(BiFunction<BackupInfo, CancellationToken, CompletableFuture<Boolean>> backupCallback)
Führt eine vollständige Sicherung des Zustands aus, der von diesem Akteurstatusanbieter verwaltet wird.
Bemerkungen:Sicherung/Wiederherstellung wird von VolatileActorStateProvidernicht unterstützt. |
CompletableFuture<?> |
changeRoleAsync(ReplicaRole newRole, CancellationToken cancellationToken)
Benachrichtigen Sie das Zustandsanbieterreplikat, dass sich seine Rolle ändert, z. B. in "Primär" oder "Sekundär". |
CompletableFuture<?> |
closeAsync(CancellationToken cancellationToken)
Schließen Sie das Zustandsanbieterreplikat ordnungsgemäß.
Bemerkungen:Dies tritt in der Regel auf, wenn der Code des Replikats aktualisiert wird, das Replikat aufgrund eines Lastenausgleichs verschoben wird oder ein vorübergehender Fehler erkannt wird. |
CompletableFuture<Boolean> |
containsStateAsync(ActorId actorId, String stateName, CancellationToken cancellationToken)
Überprüft, ob der Akteurstatusanbieter einen Akteurstatus mit dem angegebenen Statusnamen enthält. |
Replica |
currentReplicaRole() |
CompletableFuture<?> |
deleteReminderAsync(ActorId actorId, String reminderName, CancellationToken cancellationToken)
Löscht die angegebene Actor-Erinnerung, sofern vorhanden. |
CompletableFuture<?> |
deleteRemindersAsync(Map<ActorId, Collection<String>> reminderNames, CancellationToken cancellationToken)
Löscht den angegebenen Erinnerungssatz. |
CompletableFuture<List<String>> |
enumerateStateNamesAsync(ActorId actorId, CancellationToken cancellationToken)
Erstellt eine Aufzählung aller Zustandsnamen, die dem angegebenen Akteur zugeordnet sind.
Bemerkungen:Der vom Akteurstatusanbieter zurückgegebene Enumerator kann sicher gleichzeitig mit Lese- und Schreibvorgängen an den Zustandsanbieter verwendet werden. Sie stellt eine Momentaufnahme konsistente Ansicht des Zustandsanbieters dar. |
CompletableFuture<Paged |
getActorsAsync(int itemsCount, ContinuationToken continuationToken, CancellationToken cancellationToken)
Ruft ActorIds vom Zustandsanbieter ab.
Bemerkungen: Das |
Operation |
getCopyContext()
Ruft den Kontext für ein sekundäres Replikat ab, nachdem es erstellt und geöffnet wurde, um Kontext an das primäre Replikat zu senden.
Bemerkungen:Das primäre Replikat analysiert den Kontext und sendet den Zustand über getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext)zurück. getCopyContext() wird für neu erstellte, im Leerlauf befindliche sekundäre Replikate aufgerufen und bietet einen Mechanismus zum asynchronen Einrichten einer bidirektionalen Konversation mit dem primären Replikat. Das sekundäre Replikat sendet OperationData Objekte, mit denen das primäre Replikat den Fortschritt der Erfassung des Kontexts für das sekundäre Replikat bestimmen kann. Das primäre Replikat antwortet, indem es den erforderlichen Zustand zurück sendet. Weitere Informationen finden Sie getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext) unter Primäres Replikat für die andere Hälfte des Austauschs. Für In-Memory-Dienste wird die getCopyContext() -Methode nicht aufgerufen, da der Status der sekundären Replikate bekannt ist (sie sind leer und erfordern den gesamten Zustand). |
Operation |
getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext)
Ruft den Zustand eines primären Replikats ab, das zum Erstellen eines sekundären Replikats erforderlich ist.
Bemerkungen:Ebenso wie getCopyContext() das sekundäre Replikat ermöglicht, Kontext über ein OperationDataStreaman das primäre Replikat zu senden, getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext) kann das primäre Replikat mit einer OperationDataStreamreagieren. Der Stream enthält Objekte, die über die -Methode der -Klasse an das getCopyStream()FabricReplicator sekundäre Replikat übermittelt werden. Die -Objekte implementieren Operation und enthalten die angegebenen Daten. Wenn das primäre Replikat diesen Aufruf empfängt, sollte es ein weiteres OperationDataStream erstellen und zurückgeben, das enthält OperationData. OperationData stellt die Daten/den Zustand des sekundären Replikats dar. |
long |
getLastCommittedSequenceNumber()
Ruft die letzte Sequenznummer ab, die vom Dienst committet wurde.
Bemerkungen:Diese Methode wird für einen Dienst aufgerufen, wenn er zum ersten Mal gestartet wird, falls ein persistenter Zustand vorliegt und ein Datenverlust vermutet wird. Wenn ein zustandsbehaftetes Dienstreplikat gestartet wird, hat es die Möglichkeit, alle Daten wiederherzustellen, die bei früheren Updates möglicherweise beibehalten wurden. Wenn ein Zustand auf diese Weise wiederhergestellt wird, ist der aktuelle Status die letzte geschriebene Sequenznummer für diese Daten. Ein flüchtiger Dienst kann einfach 0 zurückgeben. Beachten Sie, dass diese Methode nicht aufgerufen wird, um eine neue Primäre Wahl während eines Failovers zu bestimmen, da der aktuelle Commitfortschritt zu diesem Zeitpunkt bereits von der FabricReplicator -Klasse bekannt ist. |
void |
initialize(ActorTypeInformation actorTypeInformation)
Initialisiert den Akteurzustandsanbieter mit Typinformationen des zugeordneten Akteurtyps. |
void |
initialize(StatefulServiceInitializationParameters initializationParameters)
Initialisieren Sie das Zustandsanbieterreplikat mithilfe der Dienstinitialisierungsinformationen.
Bemerkungen:Während der Initialisierung sollte keine komplexe Verarbeitung durchgeführt werden. In OpenAsync sollte eine teure oder lang andauernde Initialisierung durchgeführt werden. |
CompletableFuture<Actor |
loadRemindersAsync(CancellationToken cancellationToken)
Lädt alle Erinnerungen, die im Akteurzustandsanbieter enthalten sind. |
<T> CompletableFuture<T> |
loadStateAsync(ActorId actorId, String stateName, CancellationToken cancellationToken)
Lädt den Akteurstatus, der dem angegebenen Statusnamen zugeordnet ist. |
CompletableFuture<Boolean> |
onDataLossAsync(CancellationToken cancellationToken)
Gibt an, dass ein Schreibquorum von Replikaten in diesem Replikatsatz verloren gegangen ist und dass daher datenverluste aufgetreten sein können. Die Replikatmenge besteht aus einer Mehrheit von Replikaten, einschließlich des primären Replikats.
Bemerkungen:Wenn die Service Fabric-Runtime den Fehler eines Quorums von Replikaten beobachtet, das das primäre Replikat enthält, wählt sie ein neues primäres Replikat aus und ruft diese Methode sofort für das neue primäre Replikat auf. Ein primäres Replikat, das über einen möglichen Datenverlust informiert ist, kann seinen Zustand aus einer externen Datenquelle wiederherstellen oder mit dem aktuellen Zustand weiter ausgeführt werden. Wenn der Dienst weiterhin mit seinem aktuellen Zustand ausgeführt wird, sollte er false von dieser Methode zurückgeben, was angibt, dass keine Zustandsänderung vorgenommen wurde. Wenn der Zustand wiederhergestellt oder geändert wurde, z. B. ein Rollback unvollständiger Arbeit, sollte true zurückgegeben werden. Wenn true zurückgegeben wird, muss davon ausgegangen werden, dass der Zustand in anderen Replikaten falsch ist. Daher entfernt die Service Fabric-Runtime die anderen Replikate aus dem Replikatsatz und erstellt sie neu. |
CompletableFuture<?> | onSnapshotAsync(Duration currentLogicalTime) |
CompletableFuture<Replicator> |
openAsync(ReplicaOpenMode openMode, StatefulServicePartition partition, CancellationToken cancellationToken)
Öffnen Sie das Zustandsanbieterreplikat zur Verwendung.
Bemerkungen:Initialisierungstasks für erweiterte Zustandsanbieter können zu diesem Zeitpunkt gestartet werden. |
CompletableFuture<?> |
reminderCallbackCompletedAsync(ActorId actorId, ActorReminder reminder, CancellationToken cancellationToken)
Wird aufgerufen, wenn eine Erinnerung ausgelöst wird und die Ausführung des Rückrufs receiveReminderAsync(String reminderName, byte[] context, Duration timeSpan, Duration period) erfolgreich abgeschlossen wird |
CompletableFuture<?> |
removeActorAsync(ActorId actorId, CancellationToken cancellationToken)
Entfernt alle vorhandenen Zustände und Erinnerungen, die dem angegebenen Akteur atomar zugeordnet sind. |
CompletableFuture<?> |
restoreAsync(String backupFolderPath)
Wiederherstellen einer Sicherung von microsoft.servicefabric.data.StateProviderReplica#backupAsync(BiFunction) oder microsoft.servicefabric.data.StateProviderReplica#backupAsync(BackupOption, Duration, CancellationToken, BiFunction)Hinweise:Sicherung/Wiederherstellung wird von VolatileActorStateProvidernicht unterstützt. |
CompletableFuture<?> |
restoreAsync(String backupFolderPath, RestorePolicy restorePolicy, Duration timeout, CancellationToken cancellationToken)
Wiederherstellen einer Sicherung von microsoft.servicefabric.data.StateProviderReplica#backupAsync(BiFunction) oder microsoft.servicefabric.data.StateProviderReplica#backupAsync(BackupOption, Duration, CancellationToken, BiFunction)Hinweise:Sicherung/Wiederherstellung wird von VolatileActorStateProvidernicht unterstützt. |
CompletableFuture<?> |
saveReminderAsync(ActorId actorId, ActorReminder reminder, CancellationToken cancellationToken)
Speichert die angegebene Akteurerinnerung. Wenn eine Akteurerinnerung mit dem angegebenen Namen nicht vorhanden ist, wird die Akteurerinnerung hinzugefügt, andernfalls wird eine vorhandene Akteurerinnerung mit demselben Namen aktualisiert. |
CompletableFuture<?> |
saveStateAsync(ActorId actorId, List<ActorStateChange> stateChanges, CancellationToken cancellationToken)
Speichert den angegebenen Satz von Akteurzustandsänderungen atomar. |
void |
setOnDataLossCallback(Function<CancellationToken, CompletableFuture<Boolean>> onDataLossAsync)
Funktion, die bei vermuteten Datenverlusten aufgerufen wird |
String | traceId() |
String | traceType() |
Duration | transientErrorRetryDelay() |
CompletableFuture<?> |
updateEpochAsync(Epoch epoch, SequenceNumber previousEpochLastSequenceNumber, CancellationToken cancellationToken)
Gibt für ein Replikat an, dass die Konfiguration einer Replikatmenge aufgrund einer Änderung oder versuchten Änderung am primären Replikat geändert wurde. Die Änderung tritt aufgrund eines Fehlers oder Lastenausgleichs des vorherigen primären Replikats auf. Epochenänderungen dienen als Barriere, indem Vorgänge in die genauen Konfigurationsperioden unterteilt werden, in denen sie von einem bestimmten primären Replikat gesendet wurden.
Bemerkungen:Diese Methode wird aufgerufen, weil sich das primäre Replikat der Replikatmenge geändert hat oder eine Änderung versucht wurde. Sekundäre Replikate erhalten diese Methode entweder, wenn sie das neue primäre Replikat werden, oder, wenn sie nicht das neue primäre Replikat sind, erhalten sie es, wenn sie versuchen, den ersten Vorgang aus dem neuen primären Replikat aus dem Replikationsdatenstrom abzurufen. Primäre Replikate erhalten diese Methode gelegentlich, wenn versucht wird, das primäre Replikat zu tauschen, was fehlschlägt. Die Informationen in der updateEpochAsync(Epoch epoch, SequenceNumber previousEpochLastSequenceNumber, CancellationToken cancellationToken) -Methode ermöglichen es dem Dienst, einen Fortschrittsvektor beizubehalten, bei dem es sich um eine Liste der vom Replikat empfangenen Epochen und der maximalen LSN handelt, die darin enthalten sind. Die Statusvektordaten zusammen mit der aktuell angewendeten maximalen LSN sind nützlich für ein sekundäres Replikat, das während des Kopiervorgangs gesendet werden soll, um zu beschreiben, wie weit der Vorgang fortgeschritten ist. Beim Vergleichen von Statusvektoren, die während des Kopiervorgangs von sekundären Replikaten empfangen werden, können primäre Replikate bestimmen, ob das sekundäre Replikat aktuell ist, welcher Zustand an das sekundäre Replikat gesendet werden muss und ob das sekundäre Replikat einen falschen Fortschritt erzielt hat. Falscher Fortschritt bedeutet, dass ein LSN in einer früheren Epoche größer war als die LSN, die das primäre Replikat empfängt. |
Details zum Konstruktor
VolatileActorStateProvider
public VolatileActorStateProvider()
Erstellt eine Instanz von VolatileActorStateProvider.
VolatileActorStateProvider
public VolatileActorStateProvider(ReplicatorSettings replicatorSettings)
Erstellt eine instance von VolatileActorStateProvider mit angegebenen Replikationseinstellungen.
Parameter:
Details zur Methode
abort
public void abort()
Beenden Sie das Zustandsanbieterreplikat erzwungen.
Bemerkungen:Dies tritt in der Regel auf, wenn ein dauerhafter Fehler auf dem Knoten erkannt wird oder wenn Service Fabric den Lebenszyklus des Replikats aufgrund interner Fehler nicht zuverlässig verwalten kann.
Überschreibt:
VolatileActorStateProvider.abort()actorActivatedAsync
public CompletableFuture actorActivatedAsync(ActorId actorId, CancellationToken cancellationToken)
Diese Methode wird im Rahmen des Aktivierungsprozesses des Akteurs mit der angegebenen ID aufgerufen.
Überschreibt:
VolatileActorStateProvider.actorActivatedAsync(ActorId actorId, CancellationToken cancellationToken)Parameter:
CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.
Gibt zurück:
backupAsync
public CompletableFuture backupAsync(BackupOption option, Duration timeout, CancellationToken cancellationToken, BiFunction
Führt eine vollständige Sicherung des Zustands aus, der von diesem Akteurstatusanbieter verwaltet wird.
Bemerkungen:Sicherung/Wiederherstellung wird von VolatileActorStateProvidernicht unterstützt.
Überschreibt:
VolatileActorStateProvider.backupAsync(BackupOption option, Duration timeout, CancellationToken cancellationToken, BiFunction<BackupInfo, CancellationToken, CompletableFuture<Boolean>> backupCallback)Parameter:
BackupOption für den Rückruf
java.time.Duration , das das Timeout für die Sicherung beschreibt
Gibt zurück:
Löst aus:
backupAsync
public CompletableFuture backupAsync(BiFunction
Führt eine vollständige Sicherung des Zustands aus, der von diesem Akteurstatusanbieter verwaltet wird.
Bemerkungen:Sicherung/Wiederherstellung wird von VolatileActorStateProvidernicht unterstützt.
Überschreibt:
VolatileActorStateProvider.backupAsync(BiFunction<BackupInfo, CancellationToken, CompletableFuture<Boolean>> backupCallback)Parameter:
Gibt zurück:
Löst aus:
changeRoleAsync
public CompletableFuture changeRoleAsync(ReplicaRole newRole, CancellationToken cancellationToken)
Benachrichtigen Sie das Zustandsanbieterreplikat, dass sich seine Rolle ändert, z. B. in "Primär" oder "Sekundär".
Überschreibt:
VolatileActorStateProvider.changeRoleAsync(ReplicaRole newRole, CancellationToken cancellationToken)Parameter:
CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.
Gibt zurück:
closeAsync
public CompletableFuture closeAsync(CancellationToken cancellationToken)
Schließen Sie das Zustandsanbieterreplikat ordnungsgemäß.
Bemerkungen:Dies tritt in der Regel auf, wenn der Code des Replikats aktualisiert wird, das Replikat aufgrund eines Lastenausgleichs verschoben wird oder ein vorübergehender Fehler erkannt wird.
Überschreibt:
VolatileActorStateProvider.closeAsync(CancellationToken cancellationToken)Parameter:
CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.
Gibt zurück:
containsStateAsync
public CompletableFuture
Überprüft, ob der Akteurstatusanbieter einen Akteurstatus mit dem angegebenen Statusnamen enthält.
Überschreibt:
VolatileActorStateProvider.containsStateAsync(ActorId actorId, String stateName, CancellationToken cancellationToken)Parameter:
CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.
Gibt zurück:
currentReplicaRole
public ReplicaRole currentReplicaRole()
deleteReminderAsync
public CompletableFuture deleteReminderAsync(ActorId actorId, String reminderName, CancellationToken cancellationToken)
Löscht die angegebene Actor-Erinnerung, sofern vorhanden.
Überschreibt:
VolatileActorStateProvider.deleteReminderAsync(ActorId actorId, String reminderName, CancellationToken cancellationToken)Parameter:
CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.
Gibt zurück:
deleteRemindersAsync
public CompletableFuture deleteRemindersAsync(Map
Löscht den angegebenen Erinnerungssatz.
Überschreibt:
VolatileActorStateProvider.deleteRemindersAsync(Map<ActorId, Collection<String>> reminderNames, CancellationToken cancellationToken)Parameter:
CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.
Gibt zurück:
enumerateStateNamesAsync
public CompletableFuture> enumerateStateNamesAsync(ActorId actorId, CancellationToken cancellationToken)
Erstellt eine Aufzählung aller Zustandsnamen, die dem angegebenen Akteur zugeordnet sind.
Bemerkungen:Der vom Akteurstatusanbieter zurückgegebene Enumerator kann sicher gleichzeitig mit Lese- und Schreibvorgängen an den Zustandsanbieter verwendet werden. Sie stellt eine Momentaufnahme konsistente Ansicht des Zustandsanbieters dar.
Überschreibt:
VolatileActorStateProvider.enumerateStateNamesAsync(ActorId actorId, CancellationToken cancellationToken)Parameter:
CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.
Gibt zurück:
getActorsAsync
public CompletableFuture
Ruft ActorIds vom Zustandsanbieter ab.
Bemerkungen: Das
Überschreibt:
VolatileActorStateProvider.getActorsAsync(int itemsCount, ContinuationToken continuationToken, CancellationToken cancellationToken)Parameter:
CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.
Gibt zurück:
getCopyContext
public OperationDataStream getCopyContext()
Ruft den Kontext für ein sekundäres Replikat ab, nachdem es erstellt und geöffnet wurde, um Kontext an das primäre Replikat zu senden.
Bemerkungen:Das primäre Replikat analysiert den Kontext und sendet den Zustand über getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext)zurück. getCopyContext() wird für neu erstellte, im Leerlauf befindliche sekundäre Replikate aufgerufen und bietet einen Mechanismus zum asynchronen Einrichten einer bidirektionalen Konversation mit dem primären Replikat. Das sekundäre Replikat sendet OperationData Objekte, mit denen das primäre Replikat den Fortschritt der Erfassung des Kontexts für das sekundäre Replikat bestimmen kann. Das primäre Replikat antwortet, indem es den erforderlichen Zustand zurück sendet. Weitere Informationen finden Sie getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext) unter Primäres Replikat für die andere Hälfte des Austauschs. Für In-Memory-Dienste wird die getCopyContext() -Methode nicht aufgerufen, da der Status der sekundären Replikate bekannt ist (sie sind leer und erfordern den gesamten Zustand).
Überschreibt:
VolatileActorStateProvider.getCopyContext()Gibt zurück:
getCopyState
public OperationDataStream getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext)
Ruft den Zustand eines primären Replikats ab, das zum Erstellen eines sekundären Replikats erforderlich ist.
Bemerkungen:Ebenso wie getCopyContext() das sekundäre Replikat ermöglicht, Kontext über ein OperationDataStreaman das primäre Replikat zu senden, getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext) kann das primäre Replikat mit einer OperationDataStreamreagieren. Der Stream enthält Objekte, die über die -Methode der -Klasse an das getCopyStream()FabricReplicator sekundäre Replikat übermittelt werden. Die -Objekte implementieren Operation und enthalten die angegebenen Daten. Wenn das primäre Replikat diesen Aufruf empfängt, sollte es ein weiteres OperationDataStream erstellen und zurückgeben, das enthält OperationData. OperationData stellt die Daten/den Zustand des sekundären Replikats dar.
Überschreibt:
VolatileActorStateProvider.getCopyState(SequenceNumber upToSequenceNumber, OperationDataStream copyContext)Parameter:
Gibt zurück:
Löst aus:
getLastCommittedSequenceNumber
public long getLastCommittedSequenceNumber()
Ruft die letzte Sequenznummer ab, die vom Dienst committet wurde.
Bemerkungen:Diese Methode wird für einen Dienst aufgerufen, wenn er zum ersten Mal gestartet wird, falls ein persistenter Zustand vorliegt und ein Datenverlust vermutet wird. Wenn ein zustandsbehaftetes Dienstreplikat gestartet wird, hat es die Möglichkeit, alle Daten wiederherzustellen, die bei früheren Updates möglicherweise beibehalten wurden. Wenn ein Zustand auf diese Weise wiederhergestellt wird, ist der aktuelle Status die letzte geschriebene Sequenznummer für diese Daten. Ein flüchtiger Dienst kann einfach 0 zurückgeben. Beachten Sie, dass diese Methode nicht aufgerufen wird, um eine neue Primäre Wahl während eines Failovers zu bestimmen, da der aktuelle Commitfortschritt zu diesem Zeitpunkt bereits von der FabricReplicator -Klasse bekannt ist.
Überschreibt:
VolatileActorStateProvider.getLastCommittedSequenceNumber()Gibt zurück:
initialize
public void initialize(ActorTypeInformation actorTypeInformation)
Initialisiert den Akteurzustandsanbieter mit Typinformationen des zugeordneten Akteurtyps.
Überschreibt:
VolatileActorStateProvider.initialize(ActorTypeInformation actorTypeInformation)Parameter:
ActorTypeInformation Geben Sie Informationen der Actor-Klasse ein.
initialize
public void initialize(StatefulServiceInitializationParameters initializationParameters)
Initialisieren Sie das Zustandsanbieterreplikat mithilfe der Dienstinitialisierungsinformationen.
Bemerkungen:Während der Initialisierung sollte keine komplexe Verarbeitung durchgeführt werden. In OpenAsync sollte eine teure oder lang andauernde Initialisierung durchgeführt werden.
Überschreibt:
VolatileActorStateProvider.initialize(StatefulServiceInitializationParameters initializationParameters)Parameter:
StatefulServiceInitializationParameters z. B. Dienstname, Partitions-ID, Replikat-ID und Codepaketinformationen.
loadRemindersAsync
public CompletableFuture
Lädt alle Erinnerungen, die im Akteurzustandsanbieter enthalten sind.
Überschreibt:
VolatileActorStateProvider.loadRemindersAsync(CancellationToken cancellationToken)Parameter:
CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.
Gibt zurück:
loadStateAsync
public
Lädt den Akteurstatus, der dem angegebenen Statusnamen zugeordnet ist.
Überschreibt:
VolatileActorStateProvider.loadStateAsync(ActorId actorId, String stateName, CancellationToken cancellationToken)Parameter:
CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.
Gibt zurück:
Löst aus:
onDataLossAsync
public CompletableFuture
Gibt an, dass ein Schreibquorum von Replikaten in diesem Replikatsatz verloren gegangen ist und dass daher datenverluste aufgetreten sein können. Die Replikatmenge besteht aus einer Mehrheit von Replikaten, einschließlich des primären Replikats.
Bemerkungen:Wenn die Service Fabric-Runtime den Fehler eines Quorums von Replikaten beobachtet, das das primäre Replikat enthält, wählt sie ein neues primäres Replikat aus und ruft diese Methode sofort für das neue primäre Replikat auf. Ein primäres Replikat, das über einen möglichen Datenverlust informiert ist, kann seinen Zustand aus einer externen Datenquelle wiederherstellen oder mit dem aktuellen Zustand weiter ausgeführt werden. Wenn der Dienst weiterhin mit seinem aktuellen Zustand ausgeführt wird, sollte er false von dieser Methode zurückgeben, was angibt, dass keine Zustandsänderung vorgenommen wurde. Wenn der Zustand wiederhergestellt oder geändert wurde, z. B. ein Rollback unvollständiger Arbeit, sollte true zurückgegeben werden. Wenn true zurückgegeben wird, muss davon ausgegangen werden, dass der Zustand in anderen Replikaten falsch ist. Daher entfernt die Service Fabric-Runtime die anderen Replikate aus dem Replikatsatz und erstellt sie neu.
Überschreibt:
VolatileActorStateProvider.onDataLossAsync(CancellationToken cancellationToken)Parameter:
CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.
Gibt zurück:
onSnapshotAsync
public CompletableFuture onSnapshotAsync(Duration currentLogicalTime)
Parameter:
openAsync
public CompletableFuture
Öffnen Sie das Zustandsanbieterreplikat zur Verwendung.
Bemerkungen:Initialisierungstasks für erweiterte Zustandsanbieter können zu diesem Zeitpunkt gestartet werden.
Überschreibt:
VolatileActorStateProvider.openAsync(ReplicaOpenMode openMode, StatefulServicePartition partition, CancellationToken cancellationToken)Parameter:
CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.
Gibt zurück:
reminderCallbackCompletedAsync
public CompletableFuture reminderCallbackCompletedAsync(ActorId actorId, ActorReminder reminder, CancellationToken cancellationToken)
Wird aufgerufen, wenn eine Erinnerung ausgelöst wird und die Ausführung des Rückrufs receiveReminderAsync(String reminderName, byte[] context, Duration timeSpan, Duration period) erfolgreich abgeschlossen wird
Überschreibt:
VolatileActorStateProvider.reminderCallbackCompletedAsync(ActorId actorId, ActorReminder reminder, CancellationToken cancellationToken)Parameter:
Gibt zurück:
removeActorAsync
public CompletableFuture removeActorAsync(ActorId actorId, CancellationToken cancellationToken)
Entfernt alle vorhandenen Zustände und Erinnerungen, die dem angegebenen Akteur atomar zugeordnet sind.
Überschreibt:
VolatileActorStateProvider.removeActorAsync(ActorId actorId, CancellationToken cancellationToken)Parameter:
CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.
Gibt zurück:
restoreAsync
public CompletableFuture restoreAsync(String backupFolderPath)
Wiederherstellen einer Sicherung von microsoft.servicefabric.data.StateProviderReplica#backupAsync(BiFunction) oder microsoft.servicefabric.data.StateProviderReplica#backupAsync(BackupOption, Duration, CancellationToken, BiFunction)Hinweise:Sicherung/Wiederherstellung wird von VolatileActorStateProvidernicht unterstützt.
Überschreibt:
VolatileActorStateProvider.restoreAsync(String backupFolderPath)Parameter:
Gibt zurück:
Löst aus:
restoreAsync
public CompletableFuture restoreAsync(String backupFolderPath, RestorePolicy restorePolicy, Duration timeout, CancellationToken cancellationToken)
Wiederherstellen einer Sicherung von microsoft.servicefabric.data.StateProviderReplica#backupAsync(BiFunction) oder microsoft.servicefabric.data.StateProviderReplica#backupAsync(BackupOption, Duration, CancellationToken, BiFunction)Hinweise:Sicherung/Wiederherstellung wird von VolatileActorStateProvidernicht unterstützt.
Überschreibt:
VolatileActorStateProvider.restoreAsync(String backupFolderPath, RestorePolicy restorePolicy, Duration timeout, CancellationToken cancellationToken)Parameter:
Gibt zurück:
Löst aus:
saveReminderAsync
public CompletableFuture saveReminderAsync(ActorId actorId, ActorReminder reminder, CancellationToken cancellationToken)
Speichert die angegebene Akteurerinnerung. Wenn eine Akteurerinnerung mit dem angegebenen Namen nicht vorhanden ist, wird die Akteurerinnerung hinzugefügt, andernfalls wird eine vorhandene Akteurerinnerung mit demselben Namen aktualisiert.
Überschreibt:
VolatileActorStateProvider.saveReminderAsync(ActorId actorId, ActorReminder reminder, CancellationToken cancellationToken)Parameter:
CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.
Gibt zurück:
saveStateAsync
public CompletableFuture saveStateAsync(ActorId actorId, List
Speichert den angegebenen Satz von Akteurzustandsänderungen atomar.
Überschreibt:
VolatileActorStateProvider.saveStateAsync(ActorId actorId, List<ActorStateChange> stateChanges, CancellationToken cancellationToken)Parameter:
CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.
Gibt zurück:
setOnDataLossCallback
public void setOnDataLossCallback(Function
Funktion, die bei vermuteten Datenverlusten aufgerufen wird
Überschreibt:
VolatileActorStateProvider.setOnDataLossCallback(Function<CancellationToken, CompletableFuture<Boolean>> onDataLossAsync)Parameter:
traceId
public String traceId()
traceType
public String traceType()
transientErrorRetryDelay
public Duration transientErrorRetryDelay()
updateEpochAsync
public CompletableFuture updateEpochAsync(Epoch epoch, SequenceNumber previousEpochLastSequenceNumber, CancellationToken cancellationToken)
Gibt für ein Replikat an, dass die Konfiguration einer Replikatmenge aufgrund einer Änderung oder versuchten Änderung am primären Replikat geändert wurde. Die Änderung tritt aufgrund eines Fehlers oder Lastenausgleichs des vorherigen primären Replikats auf. Epochenänderungen dienen als Barriere, indem Vorgänge in die genauen Konfigurationsperioden unterteilt werden, in denen sie von einem bestimmten primären Replikat gesendet wurden.
Bemerkungen:Diese Methode wird aufgerufen, weil sich das primäre Replikat der Replikatmenge geändert hat oder eine Änderung versucht wurde. Sekundäre Replikate erhalten diese Methode entweder, wenn sie das neue primäre Replikat werden, oder, wenn sie nicht das neue primäre Replikat sind, erhalten sie es, wenn sie versuchen, den ersten Vorgang aus dem neuen primären Replikat aus dem Replikationsdatenstrom abzurufen. Primäre Replikate erhalten diese Methode gelegentlich, wenn versucht wird, das primäre Replikat zu tauschen, was fehlschlägt. Die Informationen in der updateEpochAsync(Epoch epoch, SequenceNumber previousEpochLastSequenceNumber, CancellationToken cancellationToken) -Methode ermöglichen es dem Dienst, einen Fortschrittsvektor beizubehalten, bei dem es sich um eine Liste der vom Replikat empfangenen Epochen und der maximalen LSN handelt, die darin enthalten sind. Die Statusvektordaten zusammen mit der aktuell angewendeten maximalen LSN sind nützlich für ein sekundäres Replikat, das während des Kopiervorgangs gesendet werden soll, um zu beschreiben, wie weit der Vorgang fortgeschritten ist. Beim Vergleichen von Statusvektoren, die während des Kopiervorgangs von sekundären Replikaten empfangen werden, können primäre Replikate bestimmen, ob das sekundäre Replikat aktuell ist, welcher Zustand an das sekundäre Replikat gesendet werden muss und ob das sekundäre Replikat einen falschen Fortschritt erzielt hat. Falscher Fortschritt bedeutet, dass ein LSN in einer früheren Epoche größer war als die LSN, die das primäre Replikat empfängt.
Überschreibt:
VolatileActorStateProvider.updateEpochAsync(Epoch epoch, SequenceNumber previousEpochLastSequenceNumber, CancellationToken cancellationToken)Parameter:
CancellationToken-Objekt, um den Abbruch status des Vorgangs anzugeben.
Gibt zurück:
Gilt für:
Azure SDK for Java